错误代码108 ccavenue

时间:2011-09-14 18:19:16

标签: php e-commerce shopping-cart ccavenue

我正在将ccavenue与我的电子商务网站整合。在某些情况下,我收到此错误: 错误代码:108 错误描述:校验和+不匹配。

如何纠正这个问题?任何人都可以帮助我

5 个答案:

答案 0 :(得分:1)

我解决了这个问题..校验和确实不正确。我在最后一刻硬编码的数量是卢比。 10测试整合..但校验和我用实际金额计算。因此校验和不正确!希望这有助于某人。

答案 1 :(得分:0)

检查您的ccavenue商家密钥,每次重新生成时它都会更改,并检查您的算法以进行校验和计算

答案 2 :(得分:0)

如果您使用免费代码将 ccavenues joomla 集成在一起,请在文件ps_ccavenues_info_part.php中计算校验和后四舍五入。< / p>

我修改了代码,以便在计算校验和之前将金额四舍五入,并将其修复为我。

答案 3 :(得分:0)

尝试用以下方法替换CCAvenue套件中提供的功能文件:

<?php

function getchecksum($MerchantId,$Amount,$OrderId ,$URL,$WorkingKey)
{
    $str ="$MerchantId|$OrderId|$Amount|$URL|$WorkingKey";
    $adler = 1;
    $adler = adler32($adler,$str);
    return $adler;
}

function verifychecksum($MerchantId,$OrderId,$Amount,$AuthDesc,$CheckSum,$WorkingKey)
{
    $str = "$MerchantId|$OrderId|$Amount|$AuthDesc|$WorkingKey";
    $adler = 1;
    $adler = adler32($adler,$str);

    if($adler == $CheckSum)
        return "true" ;
    else
        return "false" ;
}

function adler32($adler , $str)
{
    $BASE =  65521 ;

    $s1 = $adler & 0xffff ;
    $s2 = ($adler >> 16) & 0xffff;
    for($i = 0 ; $i < strlen($str) ; $i++)
    {
        $s1 = ($s1 + Ord($str[$i])) % $BASE ;
        $s2 = ($s2 + $s1) % $BASE ;
            //echo "s1 : $s1 <BR> s2 : $s2 <BR>";

    }
    return leftshift($s2 , 16) + $s1;
}

function leftshift($str , $num)
{

    $str = DecBin($str);

    for( $i = 0 ; $i < (64 - strlen($str)) ; $i++)
        $str = "0".$str ;

    for($i = 0 ; $i < $num ; $i++) 
    {
        $str = $str."0";
        $str = substr($str , 1 ) ;
        //echo "str : $str <BR>";
    }
    return cdec($str) ;
}

function cdec($num)
{

    for ($n = 0 ; $n < strlen($num) ; $n++)
    {
       $temp = $num[$n] ;
       $dec =  $dec + $temp*pow(2 , strlen($num) - $n - 1);
    }

    return $dec;
}
?>

答案 4 :(得分:0)

我找到了问题,那就是网址。它会起作用,如果您的重定向网址没有任何参数。

解决此问题。您必须通过PHP中的urlencode函数对您的URL进行编码。

$url= urlencode($url);