PayTM Integration based on Django REST Framework
Project description
PayTM | Django REST Framework
A package for PayTM integration in Django REST Framework
PayTM | Django REST Framework is a Django packaged app that provides necessary views based in Django REST Framework.
It enables easy integration of PayTM Payment Gateway with Web/Mobile Application with a RESTful API based server.
Contributors: WE'RE LOOKING FOR SOMEONE WHO CAN CONTRIBUTE IN DOCS
- Civil Machines Technologies Private Limited: For providing me platform and
funds for research work. This project is hosted currently with
CMTonly. - Himanshu Shankar: Himanshu Shankar has initiated this project and worked on this project to collect useful functions and classes that are being used in various projects.
Installation
- Download and Install via
pip
pip install drf_paytm
or
Download and Install via easy_install
easy_install drf_paytm
- Add, if wanted,
drfaddonsinINSTALLED_APPS(This is although not required!)
INSTALLED_APPS = [
...
'drf_paytm',
...
]
- Also add other dependencies in
INSTALLED_APPS
INSTALLED_APPS = [
...
'drfaddons',
...
]
- Include urls of
drf_paytminurls.py
urlpatterns = [
...
path('api/paytm/', include('drf_paytm.urls')),
...
]
# or
urlpatterns = [
...
url(r'^api/paytm/', include('drf_paytm.urls')),
...
]
- Run migrate command:
python manage.py migrate
Frontend API Integration Guideline
- Prepare
jsondata to post onrequest/view:{"oid": "ORDER_ID", "amount": "200", "callback_url": "FRONT_END APP URL"} callback_url: FrontEnd URL to open when payment is successful. Must not have any queryset as?oid=ORDER_IDis appended.- Post to
request/and parse response to prepare a HTML form as per code shown below. - Don't add
<input>for empty andnullfields from json response ofrequest/API. - Set
CALLBACK_URLin HTML frompaytm_callback_urlof JSON. - Once the payment is done, user is redirected to
response/view which will verify payment. - If payment is verified by Django Backend, user is redirected to
http://callback_url?oid=ORDER_ID. - Access
order/ORDER_ID/API to getis_completedstatus. If it'sfalse, checklast_payment_status.
Note: In case of critical failure, server's JSON response is shown.
Sample HTML Code to be generated by FrontEnd App(from PayTM)
<html>
<head>
<title>Merchant Check Out Page</title>
</head>
<body>
<center><h1>Please do not refresh this page...</h1></center>
<form method="post" action="https://securegw-stage.paytm.in/theia/processTransaction" name="f1">
<table border="1">
<tbody>
<input type="hidden" name="MID" value="rxazcv89315285244163">
<input type="hidden" name="WEBSITE" value="WEBSTAGING">
<input type="hidden" name="ORDER_ID" value="order1">
<input type="hidden" name="CUST_ID" value="cust123">
<input type="hidden" name="MOBILE_NO" value="7777777777">
<input type="hidden" name="EMAIL" value="username@emailprovider.com">
<input type="hidden" name="INDUSTRY_TYPE_ID" value="Retail">
<input type="hidden" name="CHANNEL_ID" value="WEB">
<input type="hidden" name="TXN_AMOUNT" value="100.12">
<input type="hidden" name="CALLBACK_URL" value="https://Merchant_Response_URL>">
<input type="hidden" name="CHECKSUMHASH" value="ZWdMJOr1yGiFh1nns2U8sDC9VzgUDHVnQpG
pVnHyrrPb6bthwro1Z8AREUKdUR/K46x3XvFs6Xv7EnoSOLZT29qbZJKXXvyEuEWQIJGkw=">
</tbody>
</table>
<script type="text/javascript">
document.f1.submit();
</script>
</form>
</body>
</html>
MODELS
The application has three models:
PayTMConfiguration: You need to define your PayTM configurations in this model. Only one object can haveis_activeset toTruewhich will be used with PayTM API.TransactionRequest: This will contain all the PayTM Transaction Request that one will create with PayTM.TransactionResponse: This will contain all the responses received from PayTM API against transaction.
VIEWS
The application has following views:
ListAddTransactionRequestView: All payment request should be made on this view. Requires a logged in user. It'll provide user with required data, includingchecksum hashthat will be used with PayTM API.AddTransactionResponseView: Response from PayTM is posted on this view. URL for this view should go asCALLBACK_URL. This view then redirects user to FrontEnd app withOIDas queryset parameter.PayNowTransaction: This view is for testing w/o a frontend client. It will open PayTM payment page.
URLS
request/: All payment request to be made via this URL.response/: All response from PayTM is posted on this URL.order/OID/: Retrieve specific payment request data.now/: For immediate testing of API, open this url.
Quickstart Guide
- Complete
Installation Steps(mentioned above) - Create a configuration via
Django AdmininPayTM Configuration. - Provide
base_urlof your Backend Server. - Set
is_activetoTrue - Note: Use sandbox mode credential at first
- Test API by accessing
/api/paytm/now/endpoint - Use
PayTM Testing Credential:
Mobile: 7777777777
OTP: 489871
Password: Paytm12345
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file drf_paytm-0.0.3.tar.gz.
File metadata
- Download URL: drf_paytm-0.0.3.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91826dea19a4a70e453f916e38604fe961f3896004153d92a95f112e77c8beb2
|
|
| MD5 |
b801824da77516cfa3b0ef8ab709fc36
|
|
| BLAKE2b-256 |
edbac30c773dbda4b7a83b7d19b8b4175a3bea0c21fed32b7b21e3f828a4cdd6
|
File details
Details for the file drf_paytm-0.0.3-py3-none-any.whl.
File metadata
- Download URL: drf_paytm-0.0.3-py3-none-any.whl
- Upload date:
- Size: 31.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3ec9c831312ecd48847f43080608054b271e7407bbac1950020e6af7b5f233b
|
|
| MD5 |
3792031512b7bc151639afe2309fee16
|
|
| BLAKE2b-256 |
8ad0f34f182ccfd75629391bfa4a80dd597b94b3e2d7a7e92a8d5db94a2d71dd
|