gpt4 book ai didi

php - 将 CCAvenue 与 php 集成

转载 作者:可可西里 更新时间:2023-10-31 22:43:41 26 4
gpt4 key购买 nike

我是支付网关的新手。我想使用 PHP 将 CCAvenue 集成到我的网站。我已经下载了他们的集成工具包,包括我的商家 ID 和工作 key ,将帐户设置为事件状态并尝试对他们在我的本地主机中提供的索引文件进行虚拟交易。

但是,当我点击表单上的提交时,它会将我带到没有任何错误代码和错误描述的 CCAvenue 交易错误页面。

请让我知道我在哪里犯了错误以及我还需要做什么。

如果有人向我指出 CCAvenue 集成手册以外的教程,我会很棒。

代码: 结帐.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 支付网关集成非常简单易行,请复制下面用于 ccavenue 支付网关集成的 php 代码或 php 脚本,并根据您的账户设置变量值。

<?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>

关于php - 将 CCAvenue 与 php 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21301125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com