Я делаю приложение рыночного типа для продавцов и покупателей и пытаюсь интегрировать API PayPal как средство оплаты между пользователями.
Мне нужно иметь возможность отправить имя пользователя продавца (на моем веб-сайте) в качестве параметра в API PayPal и вернуть его после успешной оплаты, чтобы я мог уведомить продавца о том, что ему заплатили. Как это можно сделать?
from paypalrestsdk import Payment
from django.http import HttpResponseRedirect
def payment_page(request):
if request.method == 'POST':
approval_url = 'http://127.0.0.1:8000/'
paypalrestsdk.configure({
"mode": "sandbox", # sandbox or live
"client_id": "client_id",
"client_secret": "client_secret"})
payment = paypalrestsdk.Payment({
"intent": "sale",
"payer": {
"payment_method": "paypal"},
"redirect_urls": {
"return_url": "http://localhost:8000/success",
"cancel_url": "http://localhost:8000/fail"},
"transactions": [{
"item_list": {
"items": [{
"name": "item",
"sku": "item",
"price": "5.00",
"currency": "USD",
"quantity": 1}]},
"amount": {
"total": "5.00",
"currency": "USD"},
"description": "This is the payment transaction description."}]})
if payment.create():
print("Payment created successfully")
for link in payment.links:
if link.rel == "approval_url":
# Convert to str to avoid Google App Engine Unicode issue
# https://github.com/paypal/rest-api-sdk-python/pull/58
approval_url = str(link.href)
print("Redirect for approval: %s" % (approval_url))
return HttpResponseRedirect(approval_url)
else:
print(payment.error)
else:
print('loading page')
return render(request, 'app/payment.html')
def success(request):
//Here I also want to capture seller username and buyer username
payment_id = request.GET.get('paymentId')
payer_id = request.GET.get('PayerID')
# Payment ID obtained when creating the payment (following redirect)
payment = Payment.find(payment_id)
# Execute payment with the payer ID from the create payment call (following redirect)
if payment.execute({"payer_id": payer_id}):
print("Payment[%s] execute successfully" % (payment.id))
else:
print(payment.error)
return render(request, 'app/success.html')
шаблон моего платежа.html
<html>
<head>
</head>
<body>
<h3>Seller username:foo1 Buyer username:foo2</h3>
<form action='{% url "app:payment_page" %}' method='post'>
{% csrf_token %}
<input type='submit' value='pay'>
</form>
</body>
</html>