https://github.com/rewriteapi/mobilemoney.py
About An API wrapper for MobileMoney written in Python.
https://github.com/rewriteapi/mobilemoney.py
mobilemoney mobilemoney-py momo-payment momoapi mtn mtnmomo mtnopenapi python3
Last synced: 5 months ago
JSON representation
About An API wrapper for MobileMoney written in Python.
- Host: GitHub
- URL: https://github.com/rewriteapi/mobilemoney.py
- Owner: rewriteapi
- License: mit
- Created: 2022-10-19T20:59:29.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-10-30T15:15:53.000Z (over 3 years ago)
- Last Synced: 2025-08-18T21:02:54.823Z (10 months ago)
- Topics: mobilemoney, mobilemoney-py, momo-payment, momoapi, mtn, mtnmomo, mtnopenapi, python3
- Language: Python
- Homepage:
- Size: 23.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
mobilemoney.py
==========
A modern, easy to use, feature-rich, and async ready API wrapper for MobileMoney written in Python.
Use method and function simplified for the MTN MOMO API
Key Features
-------------
- Modern Pythonic API using ``async`` and ``await``.
- Optimised in both speed and memory.
Installing
----------
**Python 3.8 or higher is required**
To install the library, you can just run the following command:
.. code:: sh
# Linux/macOS
python3 -m pip install -U mobilemoney.py
# Windows
py -3 -m pip install -U mobilemoney.py
To install from github repository, do the following:
.. code:: sh
$ git clone https://github.com/rewriteapi/mobilemoney.py
$ cd mobilemoney.py
$ python3 -m pip install -U .
Quick Example
--------------
.. code:: py
import mobilemoney
import asyncio
#NOTICE : the library is working in both side (Production and Sandbox),
#for Production environement don't use the is_sandbox() method and
#make sure to replace credential correctly
async def main():
subsciption_key = 'COLLECTION_OR_DISBURSEMENT_CREDENTIAL_MAKE_SURE_TO_REPLACE_IT_CORRECTLY'
user = mobilemoney.Client()
#switchh to sandbox env
user.is_sandbox()
#Creating user and getting Key in sandbox env using Collection credential
uuid = user.get_reference_id()
print(uuid)
api_user = await user.create_api_user(uuid, subsciption_key)
print('-------- creating api user----------')
print(api_user)
resp, api_user_details = await user.get_api_user(uuid, subsciption_key)
print('-----------getting api user------------')
print(api_user_details)
resp, api_key = await user.create_api_key(uuid, subsciption_key)
print('---------api key-----------')
print(type(api_key))
print(api_key)
basic_auth = user.basic_token(uuid, api_key["apiKey"])
print('------------Basic auth---------')
print(basic_auth)
#Initialising Collection product
collect = user.collection(subsciption_key)
#creating access token
resp, access_token = await collect.create_access_token(basic_auth)
print('---------creating access token-----------')
print(access_token)
#convert it to bearer token
bearer_token = user.bearer_token(access_token['access_token'])
#request to pay
body = {
"amount": "5",
"currency": "EUR",
"externalId": "45464546454",
"payer": {
"partyIdType": "MSISDN",
"partyId": "87937389"
},
"payerMessage": "BUY THING",
"payeeNote": "THANKS"
}
resp, req_to_pay = await collect.request_to_pay(bearer_token, user.get_reference_id(), api_user_details['targetEnvironment'], body)
print('-----------------Request to pay-----------------')
print(resp)
print(req_to_pay)
if resp:
print('Successfull')
else:
print('Not worked')
#withdraw
resp, with_req = await collect.withdraw(bearer_token, user.get_reference_id(), api_user_details['targetEnvironment'], body)
print('--------------req to withdraw------------------------')
print(resp)
print(with_req)
asyncio.run(main())
Links
------
- `Documentation `_
.. - `Official Discord Server `_
- `Website `_