मेरे पास मिग्स से गेटवे है लेकिन वे एमडी 5 को एसएचए -256 एचएमएसी में बदल चुके हैं, मैं इसे अपने कोड पर कैसे बदल सकता हूं मैंने कई बार कोशिश की लेकिन मुझे त्रुटि 400 मिल रही है मेरी कोडमास्टर कार्ड मिग्स एमडी 5 से SHA-256 एचएमएसी php
मौजूदा कोड पर कुछ मुद्दे हैं
<?php
$db1 = new ps_DB();
$q = "SELECT country_2_code FROM #__vm_country WHERE country_3_code='".$user->country."' ORDER BY country_2_code ASC";
$db1->query($q);
$url = "https://migs.mastercard.com.au/vpcpay";
$SECURE_SECRET = MIGS_SS;
$vpcURL = $url . "?";
$md5HashData = $SECURE_SECRET;
$tax_total = $db->f("order_tax") + $db->f("order_shipping_tax");
$discount_total = $db->f("coupon_discount") + $db->f("order_discount");
if(MIGS_TEST == 1)
$amt123 = MIGS_TESTMODEAMT*100;
else
$amt123 = round(($db->f("order_total")+$tax_total-$discount_total)*100,2);
$post_variables = Array(
"vpc_Version" => "1",
"vpc_Command" => "pay",
"vpc_AccessCode" => MIGS_ACCESSCODE,
"vpc_MerchTxnRef" => $db->f("order_id").'_'.$db->f("order_number"),
"vpc_Merchant" => MIGS_MID,
"vpc_OrderInfo" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER')."_". $db->f("order_id"),
"vpc_Amount" => $amt123,
"vpc_Locale" => 'en',
"vpc_ReturnURL" => SECUREURL ."index.php?option=com_virtuemart& page=checkout.migs&order_id=".$db->f("order_id")
);
ksort ($post_variables);
if($page == "checkout.thankyou") {
$query_string = "?";
foreach($post_variables as $name => $value) {
$query_string .= urlencode($name). "=" . urlencode($value) ."&";
//$vpcURL .= urlencode($name). "=" . urlencode($value) ."&";
$md5HashData .= $value;
}
if (strlen($SECURE_SECRET) > 0) {
$query_string .= "vpc_SecureHash=" . strtoupper(md5($md5HashData));
//$vpcURL .= "vpc_SecureHash=" . strtoupper(md5($md5HashData));
}
//die( $url.' pppppppp '.$query_string);
vmRedirect($url . $query_string);
} else {
echo '<form action="'.$url.'" method="post" target="_blank">';
echo '<input type="image" name="submit" src="https://www.paypal.com/en_US /i/btn/x-click-but6.gif" alt="Click to pay with PayPal - it is fast, free and secure!" />';
foreach($post_variables as $name => $value) {
echo '<input type="hidden" name="'.$name.'" value="'.htmlspecialchars($value).'" />';
}
echo '</form>';
}
?>
नए कोड मैं migs
foreach($_POST as $key => $value) {
// create the hash input and URL leaving out any fields that have no value
if (strlen($value) > 0) {
?>
<input type="hidden" name="<?php echo($key); ?>" value="<?php echo($value); ?>"/><br>
<?php
if ((strlen($value) > 0) && ((substr($key, 0,4)=="vpc_") || (substr($key,0,5) =="user_"))) {
$hashinput .= $key . "=" . $value . "&";
}
}
}
$hashinput = rtrim($hashinput, "&");
?>
<!-- attach SecureHash -->
<input type="hidden" name="vpc_SecureHash" value="<?php echo(strtoupper(hash_hmac('SHA256',
$hashinput, pack('H*',$securesecret)))); ?>"/>
<input type="hidden" name="vpc_SecureHashType" value="SHA256">
कैसे मैं इसे अपने कोड में उपयोग कर सकते हैं से मिल गया? md5 आधारित अच्छी तरह से काम कर कोड, लेकिन जब मैं इसे परिवर्तित 400 त्रुटि शा के लिए प्रवेश द्वार तक पहुँचने मैं migs को हटा दिया है सुरक्षा के मुद्दों की वजह से गुप्त कोड
क्या आप यहां सही कोड लिख सकते हैं जहां मुझे बदलना चाहिए? – Sr33raj