Skip to content

About An API wrapper for MobileMoney written in Python.

License

Notifications You must be signed in to change notification settings

rewriteapi/mobilemoney.py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

# 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:

$ git clone https://github.com/rewriteapi/mobilemoney.py
$ cd mobilemoney.py
$ python3 -m pip install -U .

Quick Example

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

Releases

No releases published

Packages

No packages published

Languages