Я пытаюсь разработать план подписки с использованием PayPal .NET SDK.
У меня уже есть код, успешно работающий на производстве и в «песочнице», для обработки обычных разовых платежей в магазине, чтобы показать, что я выполняюнастроить учетную запись и работать.
Код моей подписки основан на примерах, приведенных в SDK, по адресу https://github.com/paypal/PayPal-NET-SDK/tree/develop/Samples/Source, в частности BillingAgreementCreateAndExecute.aspx.cs и BillingPlanCreate
Основы:
var apiContext = PayPal.Sample.Configuration.GetAPIContext();
string token = Request.Params["token"];
if (string.IsNullOrEmpty(token))
{
var guid = Convert.ToString((new Random()).Next(100000));
var plan = SBP.CreatePlanObject(HttpContext.Current, monthlyAmount);
var createdPlan = plan.Create(apiContext);
Я получаю сообщение об ошибке в строке выше, plan.Create (apiContext)
Другие соответствующие коды в моем SBPКласс в основном взят из приведенных выше примеров:
public static Plan CreatePlanObject(HttpContext httpContext, Currency monthlyAmount)
{
// ### Create the Billing Plan
var shippingChargeModel = new ChargeModel()
{
type = "SHIPPING",
amount = GetCurrency("0")
};
// Define the plan and attach the payment definitions and merchant preferences.
return new Plan
{
name = "Monthly Subscription to our org",
description = "Monthly subscription to our org",
type = "fixed",
// Define the merchant preferences.
merchant_preferences = new MerchantPreferences()
{
setup_fee = GetCurrency("0"),
return_url = httpContext.Request.Url.ToString(),
cancel_url = httpContext.Request.Url.ToString()+ "?cancel",
auto_bill_amount = "YES",
initial_fail_amount_action = "CONTINUE",
max_fail_attempts = "0"
},
payment_definitions = new List<PaymentDefinition>
{
// Define the standard payment plan.
new PaymentDefinition
{
name = "Monthly Sub",
type = "REGULAR",
frequency = "MONTH",
frequency_interval = "1",
amount = monthlyAmount,
cycles = "0",
charge_models = new List<ChargeModel>
{
new ChargeModel
{
type = "TAX",
amount = GetCurrency("0")
},
shippingChargeModel
}
}
}
};
}
Любая помощь с благодарностью.Я был в этом часами.Я проверил настройки API в разработчике PayPal, и он настроен на прием платежей и подписок.
Я посмотрел на вызовы API песочницы в PayPal Developer, они показывают такую попытку: HTTP Status: (!) - восклицательный знак в оранжевом кружке
URL: / v1 / payment / billing-plan
Идентификатор отладки PayPal: xxxxxx
Дата вызова API: 13 декабря 2018 12:59: 57
Мне кажется странным, что ID отладки - это строка xxxxxx?Спасибо.