<p>J'essaie d'intégrer JazzCash Gateway V2 et je souhaite effectuer une transaction de paiement direct, que la documentation définit comme « Il s'agit d'une transaction unique qui autorise un paiement et transfère des fonds du compte payeur vers le compte marchand. » ≪/p >
<p>Voici ma fonction de hachage</p>
<pre class="brush:php;toolbar:false;">fonction get_SecureHash($data_array) {
ksort($data_array);
$str = '';
foreach($data_array as $key => $value) {
si(!vide($valeur)) {
$str = $str '&' .
}
}
$str = $saltkey.$str;
$pp_SecureHash = hash_hmac('sha256', $str, $saltkey);
renvoie $pp_SecureHash ;
}</pré>
<p>J'ai fait correspondre mon hachage et c'est le même que le hachage calculé par le HashCalculator recommandé par la documentation.https://github.com/aliabidzaidi/HashCalculator</p>
<p>我正在使用以下网址:</p>
<pre class="brush:php;toolbar:false;">$post_url = "https://sandbox.jazzcash.com.pk/ApplicationAPI/API/Purchase/PAY";</pre>
<p>我的数组如下所示:</p>
<pre class="brush:php;toolbar:false;">$data_array = array(
"pp_IsRegisteredCustomer"=> "oui",
"pp_ShouldTokenizeCardNumber"=> "oui",
"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"=> "MON MOT DE PASSE",
"pp_Amount"=> "20 000",
"pp_TxnCurrency"=> "PKR",
"pp_TxnDateTime"=> date('YmdHis'),
"pp_TxnExpiryDateTime"=> date('YmdHis',strtotime("+1 heures")),
"pp_BillReference"=> "billRef",
"pp_Description"=> "Description de la transaction",
"pp_CustomerCardNumber"=> "512345000000008",
"pp_CustomerCardCVV"=> "100",
"pp_CustomerCardExpiry"=> "01/39",
"pp_SecureHash"=> "",
"pp_DiscountedAmount"=> "",
"pp_DiscountBank"=> "",
"pp_UsageMode"=> "API"
);</pré>
C'est peut-être parce que le format de date de pp_TxnDateTime et pp_TxnRefNo a changé
Dans votre tableau, "pp_TxnRefNo"=> "T".date('YmdHisu')
et "pp_TxnDateTime"=> date('YmdHis')
Assurez-vous que le format est le même, alors modifiez ce qui suit :