mtn momo api的python包装器。

mtnmomo的Python项目详细描述


MTN移动货币API客户端

用于python的mtn momo api客户端。

构建状态最新版本covercoverstatus加入Spectrum社区。安装

使用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_idcollection_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"),})

方法

  1. requesttopay:此操作用于向消费者(付款人)请求付款。付款人将被要求授权付款。一旦付款人授权付款,交易即被执行。在付款人授权或拒绝或系统超时之前,交易将处于挂起状态。可以使用getTransactionStatus验证事务的状态

  2. gettransaction:使用requesttopay返回的transactionid检索事务信息。您可以每隔一段时间调用它,直到事务失败或成功。如果事务失败,它将抛出相应的错误。

  3. 获取余额:获取帐户余额。

  4. 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"),})

方法

  1. 转账:用于将金额从所有者帐户转移到收款人帐户。可以使用getTransactionStatus方法验证事务的状态。

  2. getTransactionStatus:使用传输返回的事务ID检索事务信息。您可以每隔一段时间调用它,直到事务失败或成功。

  3. 获取余额:获取帐户余额。

  4. 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

谢谢。

更改日志

0.1.0(2018-10-29)

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Split方法在Java数组中创建空元素   多线程java多线程读取。。请帮助我,我对java非常陌生:(   调整大小时,java jpanel与jdesktop窗格不匹配   java JDBC/MYSQL通信链路故障(ECLIPSE/ANDROID)   java Android应用程序登录和注册错误   同一行上多次字符串之间的Java正则表达式   java为什么Spring在混淆之后看不到我的@Resource注释对象?   java Javafx:解析命名空间中不存在的onAction//eventHandler时出错   Java中的“原始接口方法”是什么?   apache如何在使用httpClent java上传时取得进展   java如何设计我的setter方法?   java可以在使用Iterable迭代元素时更改元素。forEach(消费者)?   java组织。openqa。硒。ElementNotVisibleException   使用JAXRS和OData的java REST服务?