Skip to main content

Mvola 是 Mvola API 的轻量级开源模块。

项目描述



用于API Mvola轻量级Python 模块。

文档 | 报告错误 | 贡献

安装

您可以在此处查阅 pypi.org 上的链接以获取模式文档。

pip install mvola==1.0.4

用法

在此处查看演示文件

启动 API

在此处创建您的帐户。创建应用程序后,您应该拥有 Consummer_key 和 Consummer_secret 并将这些变量添加到 .env 文件中(查看 env 文件示例)。

# Import the module mvola
from mvola import Mvola

# Import environ module to access environment variables
from os import environ as env


# Initiate the api => API(Consummer_key, Consummer_secret)
api = Mvola(env.get('CONSUMER_KEY'), env.get('SECRET_KEY'))

生成令牌

在此处查看文档

from mvola import Mvola
from os import environ as env
api = Mvola(env.get('CONSUMER_KEY'), env.get('SECRET_KEY'))

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

成功

    {
        "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
        }
    }

失败[示例]

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

该函数生成的token默认必须在3600s后过期,更改请到平台Mvola API Application的dashboard。

发起交易

在此处查看文档

from mvola.tools import Transaction

transaction = Transaction(
    token="{{token}}", # [Token] Requiered fields
    user_language="FR", # MG or FR
    user_account_identifier="0343500003", # [UserAccountIdentifier] Requiered fields 
    partner_name="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
    description_text="Unedescription", # String (len<40Characters)without special character
    request_date="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.response)
else :
    print(f"Status_code [{res.status_code}] \n {res.error}")
输出

成功 :

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

失败[示例]:

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

交易状态

在此处查看文档

from mvola.tools import Transaction

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

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

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

成功 :

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

失败[示例]:

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

交易详情

在此处查看文档

from mvola.tools import Transaction

transaction = Transaction(
    token="eyJ4NXQiOiJPRE5tWkRFMll6UTRNVEkxTVRZME1tSmhaR00yTUdWa1lUZGhOall5TWpnM01XTmpNalJqWWpnMll6bGpNRGRsWWpZd05ERmhZVGd6WkRoa1lUVm1OZyIsImtpZCI6Ik9ETm1aREUyWXpRNE1USTFNVFkwTW1KaFpHTTJNR1ZrWVRkaE5qWXlNamczTVdOak1qUmpZamcyWXpsak1EZGxZall3TkRGaFlUZ3paRGhrWVRWbU5nX1JTMjU2IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJyaXZvMjMwMkBnbWFpbC5jb21AY2FyYm9uLnN1cGVyIiwiYXV0IjoiQVBQTElDQVRJT04iLCJhdWQiOiIwekw3ZVRyU0VmWGY2a2t3SjUzRFNlZ0NiQndhIiwibmJmIjoxNjU0MTA4ODg2LCJhenAiOiIwekw3ZVRyU0VmWGY2a2t3SjUzRFNlZ0NiQndhIiwic2NvcGUiOiJFWFRfSU5UX01WT0xBX1NDT1BFIiwiaXNzIjoiaHR0cHM6XC9cL2FwaW0ucHJlcC50ZWxtYS5tZzo5NDQzXC9vYXV0aDJcL3Rva2VuIiwiZXhwIjoxNjU0MTEyNDg2LCJpYXQiOjE2NTQxMDg4ODYsImp0aSI6IjVlOGY5ZjFhLWUxODItNGZkMS04ZjUyLWU2YTIzMzljYTIzMCJ9.voIBGWbGiI7vFklcmHiufu5fW1UvlE79c7MNOZZisuGD7HQ8P4CFljBhbQQj8lHnd8u48KFdLxHWwg4SozDejPlTFmeDdHaE8UoYhTsVthYgG5eKN3ZSQ0LSyYyeLbxA25vssvVSkQBCX-4EtcrH_vgEnZiJotBqD8PhicuwtvJuiqm3lbkFcGpNNtVGlUD8Q_xxBt31Az044qJ3BYTcmnG1tXmjRzQNyNrGe3rnQxbnndqg1gHrr-st8bulgODHWGZ3vKkmpdXnMxAn6sYjPRZ0YOdfdQwpgYK8HpLh1oI8VtTsw8oqTiVXpk-4F00qXjqihVd66len-BS48DIsig",
    user_language="FR",
    user_account_identifier="0343500003",
    partner_name="Marketbot",
    transid="636251274" # Transaction ID [Required] Fields on details transaction   
)
res = api.details_transaction(transaction)
if res.success :
    print(res.response)
else :
    print(f"Status_code [{res.status_code}] \n {res.error}")
输出
    {
        'amount': '5555.00', 
        'currency': 'Ar', 
        'requestDate': '2022-06-01T19:15:52.848Z', 
        'debitParty': 
            [
                {
                    'key': 'msisdn', 
                    'value': '0343500003'
                }
            ], 
        'creditParty': 
            [
                {
                    'key': 'msisdn', 
                    'value': '0343500004'
                }
            ], 
        'fees': 
            [
                {'feeAmount': '84'}
            ], 
        'metadata': 
            [
                {
                    'key': 'originalTransactionResult', 
                    'value': '0'
                },
                {
                    'key': 'originalTransactionResultDesc', 
                    'value': '0'
                }
            ], 
        'transactionStatus': 'completed', 
        'creationDate': '2022-06-01T19:07:24.223Z', 
        'transactionReference': '636251282' , #This is the transaction ID
    }

如何贡献?

  • 创建存储库的分支
  • 待办事项清单#02
  • 创建拉取请求

贡献者

图片 des 贡献者 GitHub

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

mvola-1.0.4.tar.gz (12.7 kB 查看哈希

已上传 source