首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在尝试集成mpesa支付api,以动态传递商店价格和正确的响应

我正在尝试集成mpesa支付api,以动态传递商店价格和正确的响应
EN

Stack Overflow用户
提问于 2020-05-22 21:08:53
回答 1查看 73关注 0票数 0

我一直在尝试集成mpesa API并动态付款我设法在我的手机stk推送上看到购物车中的正确值,但在web浏览器上,我得到了一个错误的本地变量'order‘,在分配之前引用,控制台给我一个成功的消息,而我没有错误地输入我的pin,谢谢。

请帮我解决这个问题,我还是个PYTHON新手。

代码语言:javascript
复制
def mpesaToken(request):
    ckey = 'hOdosm1nU1tXMsT0yPTGjnHDgIUSxx8z'
    csecret = 'mrgGSIdbDOZaVrZl'
    apiurl = 'https://sandbox.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials'

    r = requests.get(apiurl, auth=HTTPBasicAuth(ckey, csecret))
    mptoken = json.loads(r.json)
    valida = mptoken['access_token']
    return HttpResponse(valida)
    

def lipaOnline(request):
    if request.user.is_authenticated:
        customer = request.user.customer
        order, created = Order.objects.get_or_create(customer=customer, complete=False)
        items = order.orderitem_set.all()
        cartItems = order.get_cart_items
    else:
        items = []
    accesstoken = MpesaToken.valida
    apiurl = "https://sandbox.safaricom.co.ke/mpesa/stkpush/v1/processrequest"
    headers = {"Authorization":"Bearer %s" % accesstoken}
    request = {
                "BusinessShortCode": Lipa.bscode,
                "Password": Lipa.decode_pass,
                "Timestamp": Lipa.lipatime,
                "TransactionType": "CustomerPayBillOnline",
                "Amount": order.get_cart_total,
                "PartyA": 25471234567,
                "PartyB": Lipa.bscode,
                "PhoneNumber": 25471234567,
                "CallBackURL": "https://sandbox.safaricom.co.ke/mpesa/",
                "AccountReference": "HAC",
                "TransactionDesc": "testeltd"}
    response = requests.post(apiurl, json=request, headers=headers)
    
    return HttpResponse('Success')
    print(request)
EN

回答 1

Stack Overflow用户

发布于 2021-03-08 19:36:47

问题是你试图从一个计算值中挑选一个值,它不理解在将该值赋给你的另一个变量Amount之前,它应该检索那个query(order.get_cart_total),所以对我有效的是,我在调用变量之前先设置它,并确保你也可以把它作为一个全局变量。所以简单地这样做

代码语言:javascript
复制
global totalcart = order.get_cart_total

首先,然后

代码语言:javascript
复制
"Amount" : totalcart'
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61955831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档