Использование DjangoPaypal для подписок не работает - PullRequest
1 голос
/ 13 июля 2020

Я использовал Django -PayPal для одноразовой оплаты, и его работа хорошо. Теперь я хочу преобразовать его в подписку, которая автоматически повторно подпишет пакет в тот же день следующего месяца или в следующем году. Это код единовременного платежа, который работает нормально:

 
paypal_dict = {
                    'business': mailpaypal,
                    'amount':  request.POST.get('amount'),
                    'item_name': 'Order {}'.format(pack.packagename),
                    'invoice': 'Package'+str(request.POST.get("package_id"))+str(genralsetting_views.systemtimezone(request)),
                    'custom': str(transactionid)+"_Package_"+str(request.POST.get("package_id"))+'_'+str(genralsetting_views.systemtimezone(request))+'_'+str(endtime)+ '_' + str(viddd)+'_'+str(request.session['id'])+'_'+str(request.session['currency']),
                    'currency_code': GeneralSetting.objects.get(userid__usertype="superadmin").currency,
                     "notify_url": request.build_absolute_uri('/') + 'SubscriptionPaypalIPN',
                    "return": request.build_absolute_uri('/') + 'index',
                    "cancel_return": request.build_absolute_uri('/') + 'RegistrationPackages',
                }


                form = PayPalPaymentsForm(initial=paypal_dict)
                return render(request, 'Vendor/Packages/RegistrationPackages/paypalpayment.html', {'cur':GeneralSetting.objects.get(userid__usertype="superadmin").currency,"session": request.session, 'form': form,"Data":data})

В документации Django -Paypal они показали способ подписки, как показано ниже:


paypal_dict = {
    "cmd": "_xclick-subscriptions",
    "business": 'receiver_email@example.com',
    "a3": "9.99",                      # monthly price
    "p3": 1,                           # duration of each unit (depends on unit)
    "t3": "M",                         # duration unit ("M for Month")
    "src": "1",                        # make payments recur
    "sra": "1",                        # reattempt payment on payment error
    "no_note": "1",                    # remove extra notes (optional)
    "item_name": "my cool subscription",
    "notify_url": "http://www.example.com/your-ipn-location/",
    "return": "http://www.example.com/your-return-location/",
    "cancel_return": "http://www.example.com/your-cancel-location/",
}

# Create the instance.
form = PayPalPaymentsForm(initial=paypal_dict, button_type="subscribe")

# Output the button.
form.render()

Я написал тот же код, что и в документации


paypal_dict = {
                    "cmd": "_xclick-subscriptions",
                    "business": mailpaypal,
                    "a3": "9.99",  # monthly price
                    "p3": 1,  # duration of each unit (depends on unit)
                    "t3": "M",  # duration unit ("M for Month")
                    "src": "1",  # make payments recur
                    "sra": "1",  # reattempt payment on payment error
                    "no_note": "1",  # remove extra notes (optional)
                    "item_name": "my cool subscription",
                         "notify_url": request.build_absolute_uri('/') + 'SubscriptionPaypalIPN',
                    "return": request.build_absolute_uri('/') + 'index',
                    "cancel_return": request.build_absolute_uri('/') + 'RegistrationPackages',
                }
                form = PayPalPaymentsForm(initial=paypal_dict, button_type="subscribe")

                return render(request, 'Vendor/Packages/RegistrationPackages/paypalpayment.html', {'cur':GeneralSetting.objects.get(userid__usertype="superadmin").currency,"session": request.session, 'form': form,"Data":data})

Но когда я нажимаю кнопку подписки, PayPal говорит: «В данный момент ничего не работает. Повторите попытку позже».

когда я нажимаю кнопку подписки, он перенаправляет на эту ссылку «https://www.sandbox.paypal.com/cgi-bin/webscr», а при однократном платеже перенаправляет на эту ссылку «https://www.sandbox.paypal.com/webapps/hermes?token=8F359638A8728725A&useraction=commit&mfid=159438098_a982* 3bb48»

Кто-нибудь может сказать мне решение, как сделать подписку с PayPal- django?

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