mtn momo api的python包装器。
mtnmomo的Python项目详细描述
MTN移动货币API客户端
用于python的mtn momo api客户端。
安装使用pip将库的最新版本添加到项目中:
$ pip install mtnmomo
此库支持Python2.7+或Python3.4+(支持Pypy)
沙盒环境
创建沙盒环境api用户
接下来,我们需要获取用户id
和用户密钥
,为此,我们需要使用订阅产品的主键,并指定主机。库附带有一个命令行应用程序,可帮助创建沙盒凭据。它假设您已经在https://momodeveloper.mtn.com上创建了一个帐户,并拥有您的ocp apim订阅密钥
## within the project, on the command line. In this example, our domain is akabbo.ug
$ mtnmomo
$ providerCallBackHost: https://akabbo.ug
$ Ocp-Apim-Subscription-Key: f83xx8d8xx6749f19a26e2265aeadbcdeg
providercallbackhost
是您的回调主机,ocp apim subscription key
是您订阅的特定产品的api密钥。api键
对于产品是唯一的,对于您使用的每个产品,您都需要一个api键
。您应该得到类似于以下内容的响应:
Here is your User Id and API secret : {'apiKey': 'b0431db58a9b41faa8f5860230xxxxxx', 'UserId': '053c6dea-dd68-xxxx-xxxx-c830dac9f401'}
这些是我们将用于沙盒环境的凭据。在生产过程中,在满足KYC要求后,这些凭证将在MTN ova管理仪表板上提供给您。
配置
在充分利用库之前,我们需要指定全局配置。全局配置必须包含以下内容:
基本URL
:MTN MOMO API的可选基本URL。默认情况下,将使用登台基url环境
:可选环境,可以是"沙箱"或"生产"。默认值为"sandbox"回调主机
:承载webhooks url的域。这是强制性的。
一旦指定了全局变量,现在就可以提供特定于产品的变量。每个MOMO API产品都需要自己的身份验证详细信息,即自己的订阅密钥、用户ID
和用户机密
,有时也称为API机密
。因此,我们必须为您将要使用的每个产品配置订阅密钥。
配置选项的完整列表可以在下面的示例中看到:
config={"ENVIRONMENT":os.environ.get("ENVIRONMENT"),"BASE_URL":os.environ.get("BASE_URL"),"CALLBACK_HOST":os.environ.get("CALLBACK_HOST"),# Mandatory."COLLECTION_PRIMARY_KEY":os.environ.get("COLLECTION_PRIMARY_KEY"),"COLLECTION_USER_ID":os.environ.get("COLLECTION_USER_ID"),"COLLECTION_API_SECRET":os.environ.get("COLLECTION_API_SECRET"),"REMITTANCE_USER_ID":os.environ.get("REMITTANCE_USER_ID"),"REMITTANCE_API_SECRET":os.environ.get("REMITTANCE_API_SECRET"),"REMITTANCE_PRIMARY_KEY":os.envieon.get("REMITTANCE_PRIMARY_KEY"),"DISBURSEMENT_USER_ID":os.environ.get("DISBURSEMENT_USER_ID"),"DISBURSEMENT_API_SECRET":os.environ.get("DISBURSEMENTS_API_SECRET"),"DISBURSEMENT_PRIMARY_KEY":os.environ.get("DISBURSEMENT_PRIMARY_KEY"),}
您只需为要使用的产品配置变量即可。
收藏
可以使用以下参数创建Collections客户端。请注意,用于生产的collection_user_id
和collection_api_secret
在mtn ova仪表板上提供;
集合键
:t的主键他在开发人员门户网站上收集产品。集合用户id
:对于沙盒,使用用mtnmomo
命令生成的沙盒。collection_api_secret
:对于沙盒,使用用mtnmomo
命令生成的沙盒。
您可以使用以下命令创建收藏客户端:
importosfrommtnmomo.collectionimportCollectionclient=Collection({"COLLECTION_USER_ID":os.environ.get("COLLECTION_USER_ID"),"COLLECTION_API_SECRET":os.environ.get("COLLECTION_API_SECRET"),"COLLECTION_PRIMARY_KEY":os.environ.get("COLLECTION_PRIMARY_KEY"),})
方法
requesttopay
:此操作用于向消费者(付款人)请求付款。付款人将被要求授权付款。一旦付款人授权付款,交易即被执行。在付款人授权或拒绝或系统超时之前,交易将处于挂起状态。可以使用getTransactionStatus
验证事务的状态gettransaction
:使用requesttopay
返回的transactionid
检索事务信息。您可以每隔一段时间调用它,直到事务失败或成功。如果事务失败,它将抛出相应的错误。获取余额
:获取帐户余额。isPayePractive
:检查帐户持有人是否已在系统中注册并处于活动状态。
示例代码
importosfrommtnmomo.collectionimportCollectionclient=Collection({"COLLECTION_USER_ID":os.environ.get("COLLECTION_USER_ID"),"COLLECTION_API_SECRET":os.environ.get("COLLECTION_API_SECRET"),"COLLECTION_PRIMARY_KEY":os.environ.get("COLLECTION_PRIMARY_KEY"),})client.requestToPay(mobile="256772123456",amount="600",external_id="123456789",payee_note="dd",payer_message="dd",currency="EUR")
付款
可使用以下参数创建付款客户机。请注意,MTN ova仪表板上提供了用于生产的支付用户id
和支付api_secret
;
支付密钥
:开发人员门户上的支付产品的密钥。支付用户id
:对于沙盒,使用用mtnmomo
命令生成的沙盒。支付api_secret
:对于沙盒,使用用mtnmomo
命令生成的沙盒。
您可以使用以下命令创建付款客户机
importosfrommtnmomo.collectionimportDisbursementclient=Disbursement({"DISBURSEMENT_USER_ID":os.environ.get("DISBURSEMENT_USER_ID"),"DISBURSEMENT_API_SECRET":os.environ.get("DISBURSEMENT_API_SECRET"),"DISBURSEMENT_PRIMARY_KEY":os.environ.get("DISBURSEMENT_PRIMARY_KEY"),})
方法
转账
:用于将金额从所有者帐户转移到收款人帐户。可以使用getTransactionStatus
方法验证事务的状态。getTransactionStatus
:使用传输返回的
事务ID
检索事务信息。您可以每隔一段时间调用它,直到事务失败或成功。获取余额
:获取帐户余额。isPayePractive
:此方法用于检查帐户持有人是否已在系统中注册并处于活动状态。
示例代码
importosfrommtnmomo.collectionimportDisbursementclient=Disbursement({"DISBURSEMENT_USER_ID":os.environ.get("DISBURSEMENT_USER_ID"),"DISBURSEMENT_API_SECRET":os.environ.get("DISBURSEMENT_API_SECRET"),"DISBURSEMENT_PRIMARY_KEY":os.environ.get("DISBURSEMENT_PRIMARY_KEY"),})client.transfer(amount="600",mobile="256772123456",external_id="123456789",payee_note="dd",payer_message="dd",currency="EUR")
单元测试
这个库有一个全面的测试套件,可以使用tox
命令运行:
查看所有测试环境
$ tox -l
运行Python2.7的测试
$ pip install mtnmomo
0
运行python 3.4的测试
$ pip install mtnmomo
1
$ pip install mtnmomo1
谢谢。
更改日志
0.1.0(2018-10-29)
- pypi上的第一个版本。