Python SDK

Pre-requisites #

  • Create an account on Payunit as a merchant. Click to create an account.
  • Get the merchant Api User, merchant API key, and merchant API Password from the merchant dashboard under the credentials section.

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 information :
    • Card Number: 4242 4224 2424 2424 or 2223 0000 4840 0011

  • To test PayPal in the Sandbox environment use the following credential :
AttributeDescriptionMandatory
apiUsernameMerchant Api Username gotten from merchant dashboard under credentials sectionyes
apiPasswordMerchant Api Password  gotten from merchant dashboard under credentials sectionyes
api_keyMerchant Api Key gotten from merchant dashboard under credentials sectionyes
modeThe current mode operation. Can either be “test” when testing in sandbox or “live” when ready for production.yes
return_urlThe url or endpoint to be called upon payment completionyes
notify_urlThe url or endpoint to submit a transaction response to. 

This url or endpoint accepts a POST request of format:
{
“transaction_id:”6465464”,
“transaction_amount”:”5000″,
“transaction_status”:”SUCCESS”,
“error”:null,
“message”:”Transaction of 5000 XAF was successfully completed”
}
no
purchaseRefA reference which you can give from your end to a particular transactionno
total_amountThe amount or price of the product/products to be paid for.yes
descriptionA description you can give to this type of  transactionno
nameName of the merchantyes
currencyCan be XAF, USD or any currently supported currencyyes
transaction_idid that uniquely identifies the transaction and I must be unique for a transaction. This id should be alpha numeric and less than 20 charactersyes

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 github here

https://gitlab.com/sevencommonfactor/payunit-python_demo.git

Updated on 23 April 2021