3

我希望能够将 MPESA API C2B Till Number Payment 功能与 STK 推送集成到我正在开发的 Django Web 应用程序中,这样平台的用户就会收到一个 STK Push 通知以支付到till number 并存储交易通过模型在数据库中。

我已经看到人们在网上开发了一些框架,但大多数似乎都是为支付账单而不是直到。任何可以帮助我做到这一点的框架帮助将不胜感激。

我发现 django 的官方文档很庞大,而且很难使用。

4

1 回答 1

2

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')
于 2019-11-20T11:14:03.477 回答