Skip to main content

Mvola is a light open source module for your Mvola API.

Project description



A light Python module for your API Mvola .

Documentation | Report bugs | Contribute

INSTALLATION

You can consult the link on pypi.org here for mode documentation.

pip install mvola==1.0.1

USAGE

Check the demo file here

Start the API

Create your account here. After you create application , you should have Consummer_key and Consummer_secret.

# Import the module mvola
from mvola import Mvola

# Initiate the api => API(Consummer_key, Consummer_secret)
api = Mvola("{consummer_key}","{consummer_secret}")

Generate token

Check the documentation here

res = api.generate_token()
if res.success :
    api.token = res
    print(res)
else :
    print(f"Status_code[{res.status_code}] \n {res.error}")
OUTPUT

Success

    {
        "Success": true,
        "Error": null,
        "Status code": 200,
        "Value": {
            "access_token": "eyJ4NXQiOiJPRE5tWkRFMll6UTRNVEkxTVRZME1tSmhaR00yTUdWa1lUZGhOall5TWpnM01XTmpNalJqWWpnMll6bGpNRGRsWWpZd05ERmhZVGd6WkRoa1lUVm1OZyIsImtpZCI6Ik9ETm1aREUyWXpRNE1USTFNVFkwTW1KaFpHTTJNR1ZrWVRkaE5qWXlNamczTVdOak1qUmpZamcyWXpsak1EZGxZall3TkRGaFlUZ3paRGhrWVRWbU5nX1JTMjU2IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJyaXZvMjMwMkBnbWFpbC5jb21AY2FyYm9uLnN1cGVyIiwiYXV0IjoiQVBQTElDQVRJT04iLCJhdWQiOiIwekw3ZVRyU0VmWGY2a2t3SjUzRFNlZ0NiQndhIiwibmJmIjoxNjUyMDk2Mzc1LCJhenAiOiIwekw3ZVRyU0VmWGY2a2t3SjUzRFNlZ0NiQndhIiwic2NvcGUiOiJFWFRfSU5UX01WT0xBX1NDT1BFIiwiaXNzIjoiaHR0cHM6XC9cL2FwaW0ucHJlcC50ZWxtYS5tZzo5NDQzXC9vYXV0aDJcL3Rva2VuIiwiZXhwIjoxNjUyMDk5OTc1LCJpYXQiOjE2NTIwOTYzNzUsImp0aSI6Ijk0ZWRlZjIyLTFmYzEtNDYxNS05YzZjLWQxZGQ3MDg1NmFjYyJ9.MQ6ew1r7nMWZN3hI8Xvbv0PuZgsi-GY_IjsO-NeXmALh1KnwOOwhgo1cMu9hRGsXWg3XZexqLagLHRcjYNDXJKR6QuYrop6WzZuGMGsNs-PL_1jrjctOLIS2VGBL1utCdDvhvfYgG-oOs2cisBUIQ7TtHF8haTd0w4WdNVkxt66Jz5ZGhEbOBralbym3-Bgjo_2wbuKy9iY0x6xqr2xMuhPXkgTFyZmAqmUv32zIIyvfC6OiEcfcXF2T3Bm_NqJN8BNXXu8ST3sdU_dEp2wYEf5f4d8LxUygNVv5n9kkdlmLrRWpoEeWfpIcfAeMuMdyLaXAgQj-T7BInM5wECMhYg",
            "scope": "EXT_INT_MVOLA_SCOPE",
            "token_type": "Bearer",
            "expires_in": 3600
        }
    }

Failed [example]

    Status_code[401] 
    {
        'error_description': 'A valid OAuth client could not be found for client_id: 0zL7eTrSEfXf6kwJ53DSegCbBwa', 
        'error': 'invalid_client'
    }

The token generated by this function must expire after 3600s by default,to change that go to the dashboard of Mvola API Application in the plaform.

Initiate Transaction

Check the documentation here

from mvola.tools import Transaction

transaction = Transaction(
    token="{{token}}", # [Token] Requiered fields
    UserLanguage="FR", # MG or FR
    UserAccountIdentifier="0343500003", # [UserAccountIdentifier] Requiered fields 
    partnerName="Marketbot", # Name of your application
    amount="1500",
    X_Callback_URL="https://2809-102-16-43-64.ngrok.io", # Webhook link for client , Mvola sends requests in this links once the transaction is finished 
    currency="Ar", # Possible Values : Ar only
    descriptionText="Unedescription", # String (len<40Characters)without special character
    requestDate="2022-05-06T02:14:59.567Z", # Respect the consraints as in this example
    debit="0343500003", # [Debit] Required fields | Phone number of subscriber .In preprod it’s fixed: 034350003 or 0343500004
    credit="0343500004",  # [Credit] Required fields | Phone number of merchant. In preprod it’s fixed: 034350003 or 0343500004
)

# Init transaction
res = api.init_transaction(transaction)

if res.success :
    print(res.value)
else :
    print(f"Status_code [{res.status_code}] \n {res.error}")
OUTPUT

Success :

    {
        'status': 'pending', 
        'serverCorrelationId': '821ff7f5-43e2-4e6e-af47-a8c40150f950', 
        'notificationMethod': 'callback'
    }

Failed [example]:

    Status_code : [401] ,
    {
        'fault': {
            'code': 900901, 
            'message': 'Invalid Credentials', 
            'description': 'Invalid Credentials. Make sure you have given the correct access token'
        }
    }

Status of Transaction

Check the documentation here

from mvola.tools import Transaction

transaction = Transaction(
    token="{{token}}", # [Token] Requiered fields
    UserLanguage="FR", # MG or FR
    UserAccountIdentifier="0343500003", # [UserAccountIdentifier] Requiered fields 
    partnerName="Marketbot", # Name of your application
    serverCorrelationId='c8e9e922-b965-4515-b390-137b41c9f40b' , # The response when you initiate transaction
)

# Status of  transaction
res = api.init_transaction(transaction)

if res.success :
    print(res.value)
else :
    print(f"Status_code [{res.status_code}] \n {res.error}")
OUTPUT

Success :

    {
        "status": "success",
        "serverCorrelationId": "821ff7f5-43e2-4e6e-af47-a8c40150f950",
        "notificationMethod": "callback",
        "objectReference": ""
    }

Failed [example]:

    Status_code : [401] ,
    {
        'status': '', 
        'serverCorrelationId': '821ff7f5-73e2-4e6e-af47-a8c40150f950', 
        'notificationMethod': '', 
        'objectReference': ''
    }

How to contribute ?

  • Make a fork of the repository
  • TODO List #02
  • Create a Pull Request

Contributors

Image des contributeurs GitHub

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mvola-1.0.1.tar.gz (10.9 kB view details)

Uploaded Source

File details

Details for the file mvola-1.0.1.tar.gz.

File metadata

  • Download URL: mvola-1.0.1.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for mvola-1.0.1.tar.gz
Algorithm Hash digest
SHA256 ad059d6c823f3723adb1ac84f70f76f9774e76c88ba3855f5b75db643b7d00a5
MD5 921ee17ff14004e1ebee65c5291555d5
BLAKE2b-256 463e3653e4191020dddada3d2a930c932c8781403ce17947c359615f2f52536a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page