2011-09-14 2 views
2

私はccavenueを私のeコマースサイトと統合しています。場合によっては、このエラーが表示されます。 エラーコード:108 エラーの説明:チェックサム+不一致。これを是正する方法エラーコード108 ccavenue

?誰が私に

+1

この問題を解決しましたか?私は同じ問題を抱えています。 – sethu

答えて

1

を助けることができる私は、チェックサムは確かに間違っていた...この問題を解決しました。私は最後の瞬間にRsになる量をハードコーディングしていました。 10の積分をテストするが、実際の金額でチェックサムを計算した。したがって、不正なチェックサム!これが誰かを助けることを望みます。

0

ccavenueのあなたのマーチャント鍵を確認し、それはあなたが再生し、また、チェックサム計算のためのあなたのアルゴをチェックするたびに変わる

0

ファイルで、joomlaのccavenuesを統合するための提供する無料のコードを使用している場合、 ps_ccavenues_info_part.phpチェックサムを計算した後、金額は四捨五入されます。

チェックサムを計算する前に量を四捨五入して修正しました。これで修正されました。

0

はこの1で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; 
} 
?> 
0

私は問題を発見したと、それはURLです。リダイレクトURLにパラメータがない場合は正常に機能します。

この問題を解決してください。 PHPでurlencode関数を使用してURLをエンコードする必要があります。

$url= urlencode($url);