Online payment gateways wrapper library.
Project description
Online payment gateways wrapper library. 💳
Supported Gateways
(Iran)
- AsanPardakht
- IranKish
- Mellat
- Pay.ir
- Zarinpal
- Parsian (PECCO)
- Bahamta
Install
pip install payit
Usage
from payit import ( GatewayManager, gateways, Transaction, TransactionAlreadyPaidError ) # Configure: config = { 'mellat': { 'terminal_id': '1234', 'username': 'demo', 'password': 'demo', 'callback_url': 'http://localhost/callback/mellat' }, 'zarinpal1': { 'merchant': '534534534532225234234', 'description': '', 'callback_url': 'http://localhost/callback/zarinpal1' }, 'zarinpal2': { 'merchant': '33333333532225234234', 'description': '', 'callback_url': 'http://localhost/callback/zarinpal2' } } manager = GatewayManager() manager.register('mellat', gateways.MellatGateway) manager.register('zarinpal1', gateways.ZarinpalGateway) manager.register('zarinpal2', gateways.ZarinpalGateway) manager.configure(config) # Make Transaction: my_database = {} selected_gateway = 'zarinpal1' try: transaction = Transaction(amount=1500, order_id=11002) transaction = manager.request(selected_gateway, transaction) # Store `transaction.id` on your database my_database['transaction_id'] = transaction.id # Get redirection details redirection = manager.get_redirection(selected_gateway, transaction) # Now redirect your client to gateway by redirection details except PayitException: print('Something wrong on payment') raise # Callback # Now user backs from gateway to complete payment procedure selected_gateway = 'zarinpal1' try: callback_data = { 'Authority': 101 } transaction = manager.validate(selected_gateway, callback_data) if not transaction.validate_status: raise RuntimeError('Transaction is not valid') # Check `transaction.id` exist on your database if transaction.id not in my_database: raise RuntimeError('Transaction is not exists') # Now verify transaction manager.verify(selected_gateway, callback_data) except TransactionAlreadyPaidError: print('Transaction Already Paid') raise except PayitException: print('Something wrong on payment') raise # Payment succeed! 🎉
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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size payit-0.8.3-py3-none-any.whl (31.3 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size payit-0.8.3.tar.gz (17.6 kB) | File type Source | Python version None | Upload date | Hashes View |