移动支付整合变得简单。

mobile-payments的Python项目详细描述


移动支付

一种将移动支付集成到您的web项目中的简单方法。在

动机

最近,VodaCom发布了M-Pesa的开放API门户。以下是一些问题:

对于Python集成,他们提供了压缩格式的包。它不是用户友好的,一些开发人员发现它在安装方面具有挑战性。在

另外,为Python实现提供的示例代码很长,而且大多数代码都包含重复性,并且对于开发人员来说很容易出错。在

移动支付软件包试图为Python解决上述问题,提供简单易用的安装,以及经过简化的重构代码。在

安装

使用pip安装包

pip install mobile-payments

这个包包含原始的开放API代码和重构的代码。在

使用原始的openapi代码导入open_api模块

^{pr2}$

使用来自vodacom模块的重构代码导入MPESA。在

from mobile_payments.vodacom import MPESA

先决条件

Python 3.6+

示例

以下示例需要api key。它可以通过注册到open api portal并按照说明操作来获得。在

它还使用重构代码,如果您想使用原始的openapi代码,也可以使用,但请遵循文档中的示例。在

通过vodacom m-pesa的客户对企业支付

# vodacom M-PESA
from mobile_payments.vodacom import MPESA

api_key = '<your-api-key>'
public_key = '<open-api-public-key>'

m_pesa = MPESA(api_key=api_key, public_key=public_key)

# Customer to Business payment
parameters = {
    'input_Amount': 10, # amount to be charged
    'input_Country': 'TZN',
    'input_Currency': 'TZS',
    'input_CustomerMSISDN': '000000000001',
    'input_ServiceProviderCode': '000000',
    'input_ThirdPartyConversationID': 'c9e794e10c63479992a8b08703abeea36',
    'input_TransactionReference': 'T23434ZE3',
    'input_PurchasedItemsDesc': 'Shoes',
}

response = m_pesa.customer2business(parameters)

样本响应

{'body': {'output_ResponseCode': 'INS-0',
'output_ResponseDesc': 'Request processed successfully',
'output_TransactionID': '79eKKNrYVfCj',
'output_ConversationID': 'c9e794e10c63479992a8b08703abeea36', 'output_ThirdPartyConversationID': 'asv02e5958774f7ba228d83d0d689761'}}

在Django整合

如果使用Django框架做web项目

# views.pyfrommobile_payments.vodacomimportMPESAdefpayments(request):ifrequest.method=='POST':form=PaymentForm(request.POST)ifform.is_valid():m_pesa=MPESA(api_key,public_key)parameters={'input_Amount':10,'input_Country':'TZN','input_Currency':'TZS',# '000000000001' - phone number for testing,'input_CustomerMSISDN':request.POST.get('phone'),'input_ServiceProviderCode':'000000','input_ThirdPartyConversationID':get_random_string(18),'input_TransactionReference':get_random_string(18),'input_PurchasedItemsDesc':'Shoes',}results=m_pesa.customer2business(parameters)ifresults.body['output_ResponseCode']=='INS-0':# successful transactionelse:# unsuccessful transaction

有关响应代码的详细信息,请参见api documentation

许可证

MIT LICENSE下发布的代码

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

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener