PayPL. NET SDK ошибка 403 запрещено на план. Создать (apiContext) - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь разработать план подписки с использованием 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?Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...