Pre-requisites
- Create an account on Payunit as a merchant. Click to create an account (opens in a new tab).
- Get the merchant Api user, merchant API key and merchant API password from the merchant dashboard in the API CREDENTIALS tab of the user settings.
Installation
pip install payunit
Usage
Now, proceed to creating a payment instance with payUnit()
.
from payUnit import payUnit
from flask import Flask,render_template,request
app = Flask(__name__)
payment = payUnit({
"apiUsername":'',
"apiPassword":'',
"api_key":'',
"return_url": "",
"notify_url":"",
"mode": "",
"name": "",
"description": "",
"purchaseRef": "",
"currency": "",
"transaction_id": ""
})
# main driver function
if __name__ == '__main__':
app.run()
That set, payments can now be done by using makePayment()
method, with the transaction amount as parameter.
payment.makePayment(5000)
Configuration
To test Visa/Master Card in the Sandbox environment use the following
Card Number
4242 4224 2424 2424
or 2223 0000 4840 0011
To test PayPal in the Sandbox environment use the following credential :
Email: [email protected]
password: ehQ5\_)dA
Attribute | Description | Mandatory |
---|---|---|
api_username | Merchant Api Username gotten from merchant dashboard under credentials section | yes |
api_password | Merchant Api Password gotten from merchant dashboard under credentials section | yes |
api_key | Merchant Api Key gotten from merchant dashboard under credentials section | yes |
mode | The current mode operation. Can either be "test" when testing in sandbox or "live" when ready for production. | yes |
return_url | The url or endpoint to be called upon payment completion | yes |
notify_url | The url or endpoint to submit a transaction response to. | |
purchaseRef | A reference which you can give from your end to a particular transaction | no |
total_amount | The amount or price of the product/products to be paid for. | yes |
description | A description you can give to this type of transaction | no |
name | Name of the merchant | yes |
currency | Can be XAF, USD or any currently supported currency | yes |
transactionId | id that uniquely identifies the transaction and I must be unique for a transaction. This id should be alpha numeric and less than 20 characters | yes |
If everything is put in place, a call to the PayUnit API will be made and if the request turns out successful, you will be redirected to the PayUnit payment interface. The interface is shown below.
Recommendations
For security concerns, make sure you read your API key
, API password
and API user
from a config file.
Consider saving your API credentials in environment variables for an extra layer of security. You can find a Flask demo app using payunit on gitlab (opens in a new tab)