我希望能够将 MPESA API C2B Till Number Payment 功能与 STK 推送集成到我正在开发的 Django Web 应用程序中,这样平台的用户就会收到一个 STK Push 通知以支付到till number 并存储交易通过模型在数据库中。
我已经看到人们在网上开发了一些框架,但大多数似乎都是为支付账单而不是直到。任何可以帮助我做到这一点的框架帮助将不胜感激。
我发现 django 的官方文档很庞大,而且很难使用。
Paybill 号码和 Till 号码之间没有太大的区别。根据 Safaricom 文档,对于 C2B Safaricom C2B API支付账单短代码的命令 ID 是CustomerPayBillOnline,购买商品和服务的命令 ID 是CustomerBuyGoodsOnline
话虽如此,您可以在 Django 中为 STK 推送执行以下操作:
def lipa_na_mpesa_online(request):
access_token = MpesaAccessToken.validated_mpesa_access_token
api_url = "https://sandbox.safaricom.co.ke/mpesa/stkpush/v1/processrequest"
headers = {"Authorization": "Bearer %s" % access_token}
request = {
"BusinessShortCode": LipanaMpesaPpassword.Business_short_code,
"Password": LipanaMpesaPpassword.decode_password,
"Timestamp": LipanaMpesaPpassword.lipa_time,
"TransactionType": "CustomerBuyGoodsOnline",
"Amount": 1,
"PartyA": 254708374149, # replace with your phone number to get stk push
"PartyB": LipanaMpesaPpassword.Business_short_code,
"PhoneNumber": 254708374149, # replace with your phone number to get stk push
"CallBackURL": "https://sandbox.safaricom.co.ke/mpesa/",
"AccountReference": "Henry",
"TransactionDesc": "Testing stk push"
}
response = requests.post(api_url, json=request, headers=headers)
return HttpResponse('success')