m-pesa daraja api包装

mpesap的Python项目详细描述


mpesapy

这个包装器旨在帮助python开发人员不费吹灰之力地实现各种mpesaapi。它基于rest api(daraja),其文档可在http://developer.safaricom.co.ke上获得。

包装器实现以下端点:

  1. Authentication
  2. Lipa na M-Pesa Online Payment
  3. C2B
  4. B2C
  5. B2B
  6. Account Balance
  7. Transaction Status
  8. Reversal

开始

先决条件

  1. Click here 并在mpesa daraja门户上创建应用程序。
  2. 完成后,将为您提供Consumer KeyConsumer Secret
  3. 对于开发和测试环境,请使用sandboxfor env
  4. 对于现场环境,使用apifor env

安装:

pip install git+https://github.com/dennismwagiru/mpesapy.git

用法

导入MPESA并创建对象

frommpesapyimportMpesampesa=Mpesa('sandbox','600462',ConsumerKey,ConsumerSecret)
生成访问令牌
access_token=mpesa.get_access_token()
lipa na m-pesa在线支付api
res_json=mpesa.lipa_na_mpesa_online(Password='bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919',Timestamp='20180704203000',Amount='10',PartyA='254708374149',PartyB='174379',PhoneNumber='254708374149',CallBackURL='https://putsreq.com/C1HAyC3fEEbl2UaEu6lU',AccountReference='Test',TransactionDesc='Test')
c2b api

注册网址:

res_json=mpesa.c2b_register_url(ValidationURL='https://putsreq.com/C1HAyC3fEEbl2UaEu6lU',ConfirmationURL='https://putsreq.com/C1HAyC3fEEbl2UaEu6lU')

模拟事务:

res_json=mpesa.c2b_simulate(Amount=amount,MSISDN=phone_no,BillRefNumber=account_no)
B2C付款请求
res_json=mpesa.b2c_payment_request(InitiatorName='testapi',Amount=10,PartyB='254708374149',Remarks='Test',SecurityCredential='nR47eKS3OWCwOGJofwW4Vze5Y2r9VtiNF+YrxopbnxjRckpZHDp379XscBqPLibV6ZKhQ0OjUFRTR7cVnxLrhF4PDZr8Eg4+euuYL/HB9DQHom0kuDwvxUS+ctQsRZ8gBB8d+QYBqb1hzsBuxl2jNohQpeqVOZ1tb1UzGPnLQfAcQuf/x6q5Ze0orzvC2BmCw75GhJl4quZEG2Pou72PQD2IAiQSUOWYSHcJC/3oyYqtLx6Vl98F9Qjx+6oKZHXqokkWccf2vOyl6ApQ5BKubfUPVSa9ggl87ZdffNueifs60HAIHKtD77NyV4G3vXfKBxbm5Z9AqVLbPp6yXS9AAw==',QueueTimeOutURL='https://putsreq.com/C1HAyC3fEEbl2UaEu6lU',ResultURL='https://putsreq.com/C1HAyC3fEEbl2UaEu6lU',Occassion='Test')
B2B付款请求
res_json=mpesa.b2b_payment_request(Amount=10,PartyB='600000',RecieverIdentifierType=4,Remarks='Okay',Initiator='testapi',SecurityCredential='nR47eKS3OWCwOGJofwW4Vze5Y2r9VtiNF+YrxopbnxjRckpZHDp379XscBqPLibV6ZKhQ0OjUFRTR7cVnxLrhF4PDZr8Eg4+euuYL/HB9DQHom0kuDwvxUS+ctQsRZ8gBB8d+QYBqb1hzsBuxl2jNohQpeqVOZ1tb1UzGPnLQfAcQuf/x6q5Ze0orzvC2BmCw75GhJl4quZEG2Pou72PQD2IAiQSUOWYSHcJC/3oyYqtLx6Vl98F9Qjx+6oKZHXqokkWccf2vOyl6ApQ5BKubfUPVSa9ggl87ZdffNueifs60HAIHKtD77NyV4G3vXfKBxbm5Z9AqVLbPp6yXS9AAw==',QueueTimeOutURL='https://putsreq.com/C1HAyC3fEEbl2UaEu6lU',ResultURL='https://putsreq.com/C1HAyC3fEEbl2UaEu6lU',AccountReference='Test')
账户余额申请
res_json=mpesa.balance(PartyA='600462',IdentifierType=4,Remarks='Okay',Initiator='testapi',SecurityCredential='nR47eKS3OWCwOGJofwW4Vze5Y2r9VtiNF+YrxopbnxjRckpZHDp379XscBqPLibV6ZKhQ0OjUFRTR7cVnxLrhF4PDZr8Eg4+euuYL/HB9DQHom0kuDwvxUS+ctQsRZ8gBB8d+QYBqb1hzsBuxl2jNohQpeqVOZ1tb1UzGPnLQfAcQuf/x6q5Ze0orzvC2BmCw75GhJl4quZEG2Pou72PQD2IAiQSUOWYSHcJC/3oyYqtLx6Vl98F9Qjx+6oKZHXqokkWccf2vOyl6ApQ5BKubfUPVSa9ggl87ZdffNueifs60HAIHKtD77NyV4G3vXfKBxbm5Z9AqVLbPp6yXS9AAw==',QueueTimeOutURL='https://putsreq.com/C1HAyC3fEEbl2UaEu6lU',ResultURL='https://putsreq.com/C1HAyC3fEEbl2UaEu6lU')
交易状态请求
撤销请求

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

推荐PyPI第三方库


热门话题
java根据选择随机设置图标   java如何将Android Studio与本地服务器数据库SQL server 2008连接?   java在点击鼠标后绘制一个椭圆形   java选项窗格相对于其父项的位置   java如何在Android中的switch case中使用String[]输入?   安卓无法从“15.0.1”确定java版本   如果满足特定条件,java是否重置计时器?   java是一个实体类,可以在OOAD中返回其他实体实例吗?   bash将对jar文件| cut | awk和java程序的调用集成到一个统一进程中   Spring安全更新身份验证成功时的最后登录日期   数据库身份验证中基于Java控制台的客户端服务器登录应用程序错误   java Selenium junit测试失败,驱动程序过早获取URL   java LibGdx多点触摸事件混淆   带扫描仪的java打印空间   来自旧版应用程序的java springcloudsleuth头   java如何实现模板设计模式?   java如何比较具有多个值的键的两个映射?   读取时R中的java MemoryError。xlsx