PayPal API Генерирует кнопку, которая будет вызывать свой API через paypal.standard.ipn
.
Для интеграции с API вы должны выполнить следующие шаги:
Установить django-paypal
:
pip install django-paypal
Обновление settings.py file:
INSTALLED_APPS = [
'paypal.standard.ipn',
]
PAYPAL_RECEIVER_EMAIL = 'XXXXX'
PAYPAL_TEST = True
Написать адрес электронной почты получателя. PAYPAL_TEST = True
означает, что вы хотите оплатить тестовый API. Вы можете написать «Ложь» для Оригинального платежного API.
Команда запуска:
python manage.py migrate
В urls.py :
url(r'^paypal/', include('paypal.standard.ipn.urls')),
url(r'^payment_process/$', api_views.payment_process, name='payment_process' ),
url(r'^payment_done/$', TemplateView.as_view(template_name= "pets/payment_done.html"), name='payment_done'),
url(r'^payment_canceled/$', TemplateView.as_view(template_name= "pets/payment_canceled.html"), name='payment_canceled'),*
В views.py :
from django.conf import settings
from django.urls import reverse
from django.shortcuts import render, get_object_or_404
from paypal.standard.forms import PayPalPaymentsForm
def payment_process(request):
host = request.get_host()
paypal_dict = {
'business': settings.PAYPAL_RECEIVER_EMAIL,
'amount': '100',
'item_name': 'Item_Name_xyz',
'invoice': 'Test Payment Invoice',
'currency_code': 'USD',
'notify_url': 'http://{}{}'.format(host, reverse('paypal-ipn')),
'return_url': 'http://{}{}'.format(host, reverse('payment_done')),
'cancel_return': 'http://{}{}'.format(host, reverse('payment_canceled')),
}
form = PayPalPaymentsForm(initial=paypal_dict)
return render(request, 'pets/payment_process.html', {'form': form})
Следуйте видеоруководству по django-коду, указанному в ссылке.
В payment_process.html :
{{ form.render }}
Для вызова API у вас есть запрос на /payment_process/
. Он сгенерирует кнопку в HTML, которая вызывает API PayPal для транзакции. Дальнейший процесс будет выполнен в конце PayPal, при входе в систему или при оплате картой.