Ошибка 199 при тестировании песочницы JazzCash во время интеграции с Django

Я пытаюсь интегрировать платежный шлюз JazzCash в свой проект Django, используя метод HTTP POST Redirect, но сталкиваюсь с ошибкой 199 на их портале. Я следовал настройкам в их документации и тестировал, используя их среду песочницы.

Код: Ниже приведен фрагмент моего кода интеграции, за которым следует JSON ответа на ошибку.

from django.views.decorators.csrf import csrf_exempt
from django.shortcuts import render
from datetime import datetime, timedelta
import hashlib
import hmac

JAZZCASH_MERCHANT_ID = ""
JAZZCASH_PASSWORD = ""
JAZZCASH_RETURN_URL = ""
JAZZCASH_INTEGRITY_SALT = ""

def calculate_jazzcash_secure_hash(request_data, integrity_salt):
    sorted_data = {k: v for k, v in sorted(request_data.items()) if k != "pp_SecureHash"}
    final_string = integrity_salt + '&' + '&'.join(str(v) for v in sorted_data.values() if v)
    secure_hash = hmac.new(
        integrity_salt.encode(),
        final_string.encode(),
        hashlib.sha256
    ).hexdigest().upper()
    return secure_hash

def checkout(request):
    product_name = "Sample Product"
    product_price = 100
    pp_Amount = int(product_price * 100)  # in paisa

    current_datetime = datetime.now()
    pp_TxnDateTime = current_datetime.strftime('%Y%m%d%H%M%S')
    pp_TxnExpiryDateTime = (current_datetime + timedelta(hours=1)).strftime('%Y%m%d%H%M%S')
    pp_TxnRefNo = 'T' + pp_TxnDateTime

    post_data = {
        "pp_Version": "1.1",
        "pp_TxnType": "MWALLET",
        "pp_Language": "EN",
        "pp_MerchantID": JAZZCASH_MERCHANT_ID,
        "pp_SubMerchantID": "",
        "pp_Password": JAZZCASH_PASSWORD,
        "pp_BankID": "TBANK",
        "pp_ProductID": "RETL",
        "pp_TxnRefNo": pp_TxnRefNo,
        "pp_Amount": pp_Amount,
        "pp_TxnCurrency": "PKR",
        "pp_TxnDateTime": pp_TxnDateTime,
        "pp_BillReference": "billRef",
        "pp_Description": "Test transaction",
        "pp_TxnExpiryDateTime": pp_TxnExpiryDateTime,
        "pp_ReturnURL": JAZZCASH_RETURN_URL,
        "ppmpf_1": "1",
        "ppmpf_2": "2",
        "ppmpf_3": "3",
        "ppmpf_4": "4",
        "ppmpf_5": "5",
    }

    post_data['pp_SecureHash'] = calculate_jazzcash_secure_hash(post_data, JAZZCASH_INTEGRITY_SALT)

    return render(request, 'index.html', {'product_name': product_name, 'product_price': product_price, 'post_data': post_data})


@csrf_exempt
def success(request):
    # Placeholder for handling JazzCash success response
    return render(request, 'success.html')



Ошибка 199:

    request.json
    {
      "pp_Version": "1.1",
      "pp_TxnType": "MWALLET",
      "pp_Language": "EN",
      "pp_MerchantID": "MERCHANT_ID",
      "pp_SubMerchantID": "",
      "pp_UsageMode": "PR",
      "pp_Password": "PASSWORD",
      "pp_BankID": "TBANK",
      "pp_ProductID": "RETL",
      "pp_TxnRefNo": "T20241103183926",
      "pp_Amount": "10000",
      "pp_DiscountedAmount": "",
      "pp_TxnCurrency": "PKR",
      "pp_TxnDateTime": "20241103183926",
      "pp_BillReference": "billRef",
      "pp_Description": "Test transaction",
      "pp_TxnExpiryDateTime": "20241103193926",
      "pp_ReturnURL": "RETURN_URL",
      "pp_SecureHash": "A59624AF8240E4E1A158855F9CA5087B741A064CCBEF52D23FE8F459E3A904B4",
      "ppmpf_1": "1",
      "ppmpf_2": "2",
      "ppmpf_3": "3",
      "ppmpf_4": "4",
      "ppmpf_5": "5",
      "pp_MobileNumber": "Number",
      "DiscountProfileId": null,
      "ppTxnOrderIdentifier": null,
      "pp_PaymentInstrumentNumber": "Number",
      "pp_PaymentInstrumentID": "0"
    }
    
    Response JSON
    
    {
      "pp_Amount": "10000",
      "pp_AuthCode": "",
      "pp_BankID": "",
      "pp_BillReference": "billRef",
      "pp_Language": "EN",
      "pp_MerchantID": "MERVHANT_ID",
      "pp_ResponseCode": "199",
      "pp_ResponseMessage": "Sorry! Your transaction was not successful. Please try again later.",
      "pp_RetreivalReferenceNo": "241103130002",
      "pp_SecureHash": "03123C048CD00F8E58C278FC70EA7BA735DA894010CE73FCA0FDDF0689F53948",
      "pp_SettlementExpiry": "",
      "pp_SubMerchantId": "",
      "pp_TxnCurrency": "PKR",
      "pp_TxnDateTime": "20241103183926",
      "pp_TxnRefNo": "T20241103183926",
      "pp_TxnType": "MWALLET",
      "pp_Version": "1.1",
      "ppmpf_1": "1",
      "ppmpf_2": "2",
      "ppmpf_3": "3",
      "ppmpf_4": "4",
      "ppmpf_5": "5"

Вот что я пробовал:

Разверните проект: Я разместил проект на Vercel, думая, что проблема может быть в локальном запуске. Обратился в службу поддержки: Я связался со службой поддержки JazzCash по электронной почте, но пока не получил никакого ответа.

Вернуться на верх