Ich versuche, JazzCash Gateway V2 zu integrieren und möchte eine direkte Zahlungstransaktion durchführen, die in der Dokumentation definiert ist als „Dies ist eine einzelne Transaktion, die eine Zahlung autorisiert und Gelder von einem Zahlerkonto auf ein Händlerkonto überträgt.“
Hier ist meine Hash-Funktion
function get_SecureHash($data_array) { ksort($data_array); $str = ''; foreach($data_array as $key => $value) { if(!empty($value)) { $str = $str . } } $str = $saltkey.$str; $pp_SecureHash = hash_hmac('sha256', $str, $saltkey); return $pp_SecureHash; }
Ich habe meinen Hash abgeglichen und er ist derselbe wie der Hash, der vom in der Dokumentation empfohlenen HashCalculator berechnet wurde.https://github.com/aliabidzaidi/HashCalculator
我正在使用以下网址:
$post_url = "https://sandbox.jazzcash.com.pk/ApplicationAPI/API/Purchase/PAY";
我的数组如下所示:
$data_array = array( "pp_IsRegisteredCustomer"=> „Ja“, "pp_ShouldTokenizeCardNumber"=> „Ja“, "pp_CustomerID"=> „25352“, "pp_CustomerEmail"=> „abc@abc.com“, "pp_CustomerMobile"=> „03331234567“, "pp_Version"=> „2,0“, "pp_TxnType"=> „MPAY“, "pp_TxnRefNo"=> "T".date('YmdHisu'), "pp_MerchantID"=> „MYMERCHANTID“, "pp_Password"=> „MEIN PASSWORT“, "pp_Amount"=> „20000“, "pp_TxnCurrency"=> „PKR“, "pp_TxnDateTime"=> date('YmdHis'), "pp_TxnExpiryDateTime"=> date('YmdHis',strtotime("+1 Stunden")), "pp_BillReference"=> „billRef“, "pp_Description"=> „Beschreibung der Transaktion“, "pp_CustomerCardNumber"=> „512345000000008“, "pp_CustomerCardCVV"=> „100“, "pp_CustomerCardExpiry"=> „01/39“, "pp_SecureHash"=> "", "pp_DiscountedAmount"=> "", "pp_DiscountBank"=> "", "pp_UsageMode"=> „API“ );
当我运行curl时,我得到以下输出:
{"responseCode":"110","responseMessage": "Bitte geben Sie einen gültigen Wert für pp_ Txn Ref No. an"," ;status":null,"pp_RetreivalReferenceNo":null,"secureHash":"9DE9F8E571F29CBD1316DFB2F0388E3FBE1CA9BC26FB9C284DF900DCCBA0C301"}
接下来我可以尝试什么?
可能是因为pp_TxnDateTime和pp_TxnRefNo的日期格式改变了
在您的数组中,
"pp_TxnRefNo"=> "T".date('YmdHisu')
和"pp_TxnDateTime"=> date('YmdHis')
确保格式相同,因此,更改以下内容:
"pp_TxnRefNo"=> "T".date('YmdHisu')
进入"pp_TxnRefNo"=> "T".date('YmdHis')
希望它能起作用。