28👍
You might want to try django-paypal, there’s even a tutorial right there on the front page.
13👍
paypal.standard.ipn
PayPal API Generates a Button which will call its API through paypal.standard.ipn
.
For API Integration you have to follow below given steps:
Install django-paypal
:
pip install django-paypal
Update settings.py file:
INSTALLED_APPS = [
'paypal.standard.ipn',
]
PAYPAL_RECEIVER_EMAIL = 'XXXXX'
PAYPAL_TEST = True
Write Email address of Receiver. PAYPAL_TEST = True
means you want a Test API payment. You can write “False” for Original payment API.
Run command:
python manage.py migrate
In 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'),*
In 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})
Follow video tutorial for django-code given in reference.
In payment_process.html:
{{ form.render }}
For calling API you have request for /payment_process/
. It will generate a button on HTML which calls PayPal API for transaction. Further process will be done on PayPal end, Login or Card Payment.
- [Django]-Django error: needs to have a value for field "…" before this many-to-many relationship can be used
- [Django]-How to aggregate (min/max etc.) over Django JSONField data?
- [Django]-How do I filter ForeignKey choices in a Django ModelForm?
3👍
Did you look at pypaypal? You could create a view that connects to PayPal and submit your payment commands.
- [Django]-Django directory structure?
- [Django]-Django BooleanField as radio buttons?
- [Django]-Django, ModelChoiceField() and initial value
- [Django]-How to save pillow image object to Django ImageField?
- [Django]-How can I access environment variables directly in a Django template?
- [Django]-Connect with Facebook in Django Rest Framework + Django Social Auth
0👍
This tutorial guides how to accept Paypal apps payment via sandbox ClientId
& SecretKey
without any third party library.
You can also send payment tracking id as custom_id
in purchase_units
list’s dictionary object to create_order.request_body
function.
As shown below:
create_order.request_body (
{
"intent": "CAPTURE",
"purchase_units": [
{
"custom_id": "YOUR_TRACKING_ID",
"amount": {
"currency_code": "USD",
"value": course.price,
"breakdown": {
"item_total": {
"currency_code": "USD",
"value": course.price
}
},
},
}
]
}
)
- [Django]-Displaying graphs/charts in Django
- [Django]-Django Rest Framework – Read nested data, write integer
- [Django]-How to make Django slugify work properly with Unicode strings?