CCAvenue integration with php

I am new to payment gateways. I would like to integrate CCAvenue into my website using PHP. I downloaded their Intergration kit, included my seller ID and working key, activated my account, and tried to perform a dummy transaction in the index file that they provided on my local host.

But when I click the "Submit" button on the form, it leads me to the CCAvenue transaction transaction page without an error code and error description.

Please let me know where I am making a mistake and what else I need to do.

I would be happy if someone pointed me to a tutorial other than the CCAvenue Integration Guide.

Codes: Checkout.php

<html>
<head>
<title> Checkout</title>
</head>
<body>

 <?php include('adler32.php')?>
 <?php include('Aes.php')?>
 <?php 

 error_reporting(0);
 $merchant_id=$_POST['Merchant_Id'];  // Merchant id(also User_Id) 
 $amount=$_POST['Amount'];            // your script should substitute the amount here                        in the quotes provided here
 $order_id=$_POST['Order_Id'];        //your script should substitute the order   description here in the quotes provided here
 $url=$_POST['Redirect_Url'];         //your redirect URL where your customer will be redirected after authorisation from CCAvenue
 $billing_cust_name=$_POST['billing_cust_name'];
 $billing_cust_address=$_POST['billing_cust_address'];
 $billing_cust_country=$_POST['billing_cust_country'];
 $billing_cust_state=$_POST['billing_cust_state'];
 $billing_city=$_POST['billing_city'];
 $billing_zip=$_POST['billing_zip'];
 $billing_cust_tel=$_POST['billing_cust_tel'];
 $billing_cust_email=$_POST['billing_cust_email'];
 $delivery_cust_name=$_POST['delivery_cust_name'];
 $delivery_cust_address=$_POST['delivery_cust_address'];
 $delivery_cust_country=$_POST['delivery_cust_country'];
 $delivery_cust_state=$_POST['delivery_cust_state'];
 $delivery_city=$_POST['delivery_city'];
 $delivery_zip=$_POST['delivery_zip'];
 $delivery_cust_tel=$_POST['delivery_cust_tel'];
 $delivery_cust_notes=$_POST['delivery_cust_notes'];


$working_key=/*MY working Key*/;    //Put in the 32 bit alphanumeric key in the quotes provided here.


 $checksum=getchecksum($merchant_id,$amount,$order_id,$url,$working_key); // Method to       generate checksum

  $merchant_data=    'Merchant_Id='.$merchant_id.'&Amount='.$amount.'&Order_Id='.$order_id.'&Redirect_Url='.$url  '&billing_cust_name='.$billing_cust_name.'&billing_cust_address='.$billing_cust_address.'&billing_cust_country='.$billing_cust_country.'&billing_cust_state='.$billing_cust_state.'&billing_cust_city='.$billing_city.'&billing_zip_code='.$billing_zip.'&billing_cust_tel='.$billing_cust_tel.'&billing_cust_email='.$billing_cust_email.'&delivery_cust_name='.$delivery_cust_name.'&delivery_cust_address='.$delivery_cust_address.'&delivery_cust_country='.$delivery_cust_country.'&delivery_cust_state='.$delivery_cust_state.'&delivery_cust_city='.$delivery_city.'&delivery_zip_code='.$delivery_zip.'&delivery_cust_tel='.$delivery_cust_tel.'&billing_cust_notes='.$delivery_cust_notes.'&Checksum='.$checksum  ;

$encrypted_data=encrypt($merchant_data,$working_key); // Method for encrypting the data.

?>

<form method="post" name="redirect"   action="http://www.ccavenue.com/shopzone/cc_details.jsp"> 
<?php
   echo "<input type=hidden name=encRequest value=$encrypted_data>";
   echo "<input type=hidden name=Merchant_Id value=$merchant_id>";

    ?>
 </form>
 <script type='text/javascript'>document.redirect.submit();</script>
 </body>
 </html>

And my Redirecturl.php

<?php include('Aes.php')?>
<?php include('adler32.php')?>
<?php


error_reporting(0);
$workingKey=/*My Working Key*/;     //Working Key should be provided here.
$encResponse=$_POST["encResponse"];         //This is the response sent by the CCAvenue Server


$rcvdString=decrypt($encResponse,$workingKey);      //AES Decryption used as per the specified working key.
$AuthDesc="";
$MerchantId="";
$OrderId="";
$Amount=0;
$Checksum=0;
$veriChecksum=false;

$decryptValues=explode('&', $rcvdString);
$dataSize=sizeof($decryptValues);
//******************************    Messages based on Checksum & AuthDesc   **********************************//
echo "<center>";


for($i = 0; $i < $dataSize; $i++) 
{
    $information=explode('=',$decryptValues[$i]);
    if($i==0)   $MerchantId=$information[1];    
    if($i==1)   $OrderId=$information[1];
    if($i==2)   $Amount=$information[1];    
    if($i==3)   $AuthDesc=$information[1];
    if($i==4)   $Checksum=$information[1];  
}

$rcvdString=$MerchantId.'|'.$OrderId.'|'.$Amount.'|'.$AuthDesc.'|'.$workingKey;
$veriChecksum=verifyChecksum(genchecksum($rcvdString), $Checksum);

if($veriChecksum==TRUE && $AuthDesc==="Y")
{
    echo "<br>Thank you for shopping with us. Your credit card has been charged and your transaction is successful. We will be shipping your order to you soon.";

    //Here you need to put in the routines for a successful 
    //transaction such as sending an email to customer,
    //setting database status, informing logistics etc etc
}
else if($veriChecksum==TRUE && $AuthDesc==="B")
{
    echo "<br>Thank you for shopping with us.We will keep you posted regarding the status of your order through e-mail";

    //Here you need to put in the routines/e-mail for a  "Batch Processing" order
    //This is only if payment for this transaction has been made by an American Express Card
    //since American Express authorisation status is available only after 5-6 hours by mail from ccavenue and at the "View Pending Orders"
}
else if($veriChecksum==TRUE && $AuthDesc==="N")
{
    echo "<br>Thank you for shopping with us.However,the transaction has been declined.";

    //Here you need to put in the routines for a failed
    //transaction such as sending an email to customer
    //setting database status etc etc
}
else
{
    echo "<br>Security Error. Illegal access detected";

    //Here you need to simply ignore this and dont need
    //to perform any operation in this condition
}


echo "<br><br>";


//************************************  DISPLAYING DATA RCVD ******************************************//

echo "<table cellspacing=4 cellpadding=4>";
for($i = 0; $i < $dataSize; $i++) 
{
    $information=explode('=',$decryptValues[$i]);
        echo '<tr><td>'.$information[0].'</td><td>'.$information[1].'</td></tr>';
}

echo "</table><br>";
echo "</center>";
?>

I also included Adler.php and Aes.php, which comes with an integration kit.

+4
1

ccavenne , php- php script 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 ; 
    } 
    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 ) ;  
    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; 
} 


$Merchant_Id = "User ID" ;//This id(also User Id) available at "Generate Working Key" of "Settings & Options" 
$Amount = 'Total Amount';//your script should substitute the amount in the quotes provided here 
$Order_Id = "Order ID";//your script should substitute the order description in the quotes provided here 
$Redirect_Url = "Your Return URL" ;//your redirect URL where your customer will be redirected after authorisation from CCAvenue   
$WorkingKey = "Your Working Key" ;//put in the 32 bit alphanumeric key in the quotes provided here.Please note that get this key ,login to your CCAvenue merchant account and visit the "Generate Working Key" section at the "Settings & Options" page. 
$Checksum = getCheckSum($Merchant_Id,$Amount,$Order_Id ,$Redirect_Url,$WorkingKey);   
$billing_cust_name=$customer_name; 
$billing_cust_address=$customer_address; 
$billing_cust_state=$customer_statename; 
$billing_cust_country=$customer_country;
$billing_cust_tel=$customer_contact_no;
$billing_cust_email=$customer_email; 
$delivery_cust_name=$customer_name; 
$delivery_cust_address=$customer_address; 
$delivery_cust_state = $customer_statename; 
$delivery_cust_country = $customer_country; 
$delivery_cust_tel=$customer_contact_no; 
$delivery_cust_notes=$customer_message;  
$billing_city = $customer_city; 
$billing_zip = $customer_zipcode; 
$delivery_city = $customer_city; 
$delivery_zip = $customer_zipcode; 
?> 



<form name="paymentform" method="post" action="https://www.ccavenue.com/shopzone/cc_details.jsp">
    <input type="hidden" name="Merchant_Id" value="<?php echo $Merchant_Id; ?>"> 
    <input type="hidden" name="Amount" value="<?php echo $Amount; ?>"> 
    <input type="hidden" name="Order_Id" value="<?php echo $Order_Id; ?>">
    <input type="hidden" name="Redirect_Url" value="<?php echo $Redirect_Url; ?>"> 
    <input type="hidden" name="Checksum" value="<?php echo $Checksum; ?>"> 
    <input type="hidden" name="billing_cust_name" value="<?php echo $billing_cust_name; ?>"> 
    <input type="hidden" name="billing_cust_address" value="<?php echo $billing_cust_address; ?>"> 
    <input type="hidden" name="billing_cust_country" value="<?php echo $billing_cust_country; ?>"> 
    <input type="hidden" name="billing_cust_state" value="<?php echo $billing_cust_state; ?>"> 
    <input type="hidden" name="billing_zip" value="<?php echo $billing_zip; ?>"> 
    <input type="hidden" name="billing_cust_tel" value="<?php echo $billing_cust_tel; ?>"> 
    <input type="hidden" name="billing_cust_email" value="<?php echo $billing_cust_email; ?>"> 
    <input type="hidden" name="delivery_cust_name" value="<?php echo $delivery_cust_name; ?>">
    <input type="hidden" name="delivery_cust_address" value="<?php echo $delivery_cust_address; ?>">
    <input type="hidden" name="delivery_cust_country" value="<?php echo $delivery_cust_country; ?>">
    <input type="hidden" name="delivery_cust_state" value="<?php echo $delivery_cust_state; ?>"> 
    <input type="hidden" name="delivery_cust_tel" value="<?php echo $delivery_cust_tel; ?>">
    <input type="hidden" name="delivery_cust_notes" value="<?php echo $delivery_cust_notes; ?>"> 
    <input type="hidden" name="Merchant_Param" value="<?php echo $Merchant_Param; ?>"> 
    <input type="hidden" name="billing_cust_city" value="<?php echo $billing_city; ?>">
    <input type="hidden" name="billing_zip_code" value="<?php echo $billing_zip; ?>">
    <input type="hidden" name="delivery_cust_city" value="<?php echo $delivery_city; ?>"> 
    <input type="hidden" name="delivery_zip_code" value="<?php echo $delivery_zip; ?>"> 
    <INPUT TYPE="submit" value="submit">
</form>
+4

Source: https://habr.com/ru/post/1523267/


All Articles