簡體   English   中英

將CCAvenue與php集成

[英]Integrating CCAvenue with php

我是支付網關的新手。 我想使用PHP將CCAvenue集成到我的網站。 我已經下載了他們的Intergration工具包,包括我的商家ID和工作密鑰,將帳戶設置為活動狀態,並嘗試對他們在我的localhost中提供的索引文件進行虛擬交易。

但是,當我點擊表單上的提交時,它將我帶到CCAvenue Transaction錯誤頁面,沒有任何錯誤代碼和錯誤描述。

請讓我知道我在哪里犯了錯誤,我還需要做些什么。

如果有人向我指出除了CCAvenue集成手冊之外的其他教程,我會很高興。

代碼: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>

還有我的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>";
?>

我還包括了集成套件附帶的Adler.php和Aes.php

ccavenue支付網關集成非常簡單,請復制下面的PHP代碼或php腳本進行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>

集成支付網關的步驟:

  1. 首先在https://dashboard.ccavenue.com/web/registration.do?command=Preview上創建一個商家帳戶。

  2. 成功注冊后,CCavenue團隊將驗證您提供的電話號碼。 和電子郵件ID。

  3. 帳戶激活后,您的網站將得到驗證,並且團隊將提供您在集成支付網關時所需的商家ID和工作密鑰。

  4. 通過https://dashboard.ccavenue.com/jsp/merchant/merchantLogin.jsp登錄您的帳戶

  5. 轉到儀表板並單擊設置選項卡,然后選擇API KEYS。

  6. 復制所有三個鍵商家ID,訪問代碼和工作密鑰。

    現在按照以下代碼步驟集成Ccavenue:

    創建一個包含表單的文件,例如index.php並粘貼到代碼下面:

    按照以下鏈接逐步執行:

https://www.lelocode.com/posts/integrate-ccavenue-payment-gateway-in-php-with-simple-step---lelocode

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM