移动支付整合变得简单。
mobile-payments的Python项目详细描述
移动支付
一种将移动支付集成到您的web项目中的简单方法。在
动机
最近,VodaCom发布了M-Pesa的开放API门户。以下是一些问题:
对于Python集成,他们提供了压缩格式的包。它不是用户友好的,一些开发人员发现它在安装方面具有挑战性。在
另外,为Python实现提供的示例代码很长,而且大多数代码都包含重复性,并且对于开发人员来说很容易出错。在
移动支付软件包试图为Python解决上述问题,提供简单易用的安装,以及经过简化的重构代码。在
安装
使用pip
安装包
pip install mobile-payments
这个包包含原始的开放API代码和重构的代码。在
使用原始的openapi代码导入open_api
模块
使用来自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下发布的代码
- 项目
标签: