请求响应后 Django 不重定向

时间:2021-02-24 13:36:52

标签: django django-models django-views django-forms django-templates

我正在开发这个 Django 应用程序,它应该根据从 API 发回的请求进行重定向,但无论响应如何,都没有任何反应,下面是一些片段,任何见解将不胜感激。

视图。

def callback(request):
    
    if request.method == 'POST':
        
        body_unicode = request.body.decode('utf-8')
    
        response = json.loads(body_unicode)
        
        print (response)
        
        result_code = response["Body"]["stkCallback"]["ResultCode"]
        
        if result_code == 0:
            merchant_request_id = response["Body"]["stkCallback"]["MerchantRequestID"]
            checkout_request_id = response["Body"]["stkCallback"]["CheckoutRequestID"]
            result_code = response["Body"]["stkCallback"]["ResultCode"]
            amount = response["Body"]["stkCallback"]["CallbackMetadata"]["Item"][0]["Value"]
            mpesa_receipt_number = response["Body"]["stkCallback"]["CallbackMetadata"]["Item"][1]["Value"]
            transaction_date = response["Body"]["stkCallback"]["CallbackMetadata"]["Item"][2]["Value"]
            phone_number = response["Body"]["stkCallback"]["CallbackMetadata"]["Item"][3]["Value"]
            
            str_transaction_date = str(transaction_date)
            transaction_datetime = datetime.strptime(
            str_transaction_date, "%Y%m%d%H%M%S")
            aware_transaction_datetime = pytz.utc.localize(transaction_datetime)
            
            our_model = Mpesa.objects.create(
                    CheckoutRequestID=checkout_request_id,
                    MerchantRequestID=merchant_request_id,
                    PhoneNumber=phone_number,
                    MpesaReceiptNumber=mpesa_receipt_number,
                    Amount=amount,
                    ResultCode=result_code,
                    TransactionDate=aware_transaction_datetime,
                )
            
            our_model.save()
            
            return redirect('realtor:create')
        else:
            return redirect('payments:lipa_na_mpesa')
        
    return render(request, 'callback.html')

回应。 这是视图从数据库收到的响应。

如果响应是 0,它应该重定向到另一个页面,但似乎没有任何效果。

 {
    "Body": {
        "stkCallback": {
            "MerchantRequestID": "27475-4045648-1",
            "CheckoutRequestID": "ws_CO_190220211418537911",
            "ResultCode": 0,
            "ResultDesc": "The service request is processed successfully.",
            "CallbackMetadata": {
                "Item": [
                    {
                        "Name": "Amount",
                        "Value": 1.0
                    },
                    {
                        "Name": "MpesaReceiptNumber",
                        "Value": ""
                    },
                    {
                        "Name": "TransactionDate",
                        "Value": 20210219141908
                    },
                    {
                        "Name": "PhoneNumber",
                        "Value": 
                    }
                ]
            }
        }
    }
}

0 个答案:

没有答案
相关问题