2016-10-31 5 views
5

मेरे पास मिग्स से गेटवे है लेकिन वे एमडी 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 को हटा दिया है सुरक्षा के मुद्दों की वजह से गुप्त कोड

उत्तर

0

400 शायद गलत हैश है के बाद geting है

आप क्या कर रहे हैं करने की कोशिश करना एसीआईआई सॉर्ट है और '&' वीपीसी वैल्यू जोड़े के साथ जुड़ें जो अनुरोध करेगा (vpc_SecureHash और vpc_SecureHashType को घटाएं)। URL को vpc_ReturnURL एन्कोड न करें। Vpc_SecureHashSecret बनाने के लिए इस स्ट्रिंग को hmac पर रखें। वापसी यूआरएल सांकेतिक शब्दों में बदलना और vpc_SecureHash और vpc_SecureHashType

सहित आपके अनुरोध का निर्माण
+1

क्या आप यहां सही कोड लिख सकते हैं जहां मुझे बदलना चाहिए? – Sr33raj

0

चूंकि आपने SHA256 को अनुकूलित करने के बाद अपना कोड प्रदान नहीं किया है, इसलिए मैं इस बारे में निश्चित नहीं हो सकता कि आपकी समस्या क्या है। लेकिन मुझे लगता है कि urlencode() का उपयोग करने की समस्या है क्योंकि मैं एक ही समस्या से मुलाकात की और इसे इस तरह से तय किया।

संबंधित मुद्दे