安全错误。在 php 中使用 ccavenue 检测到非法访问
Posted
技术标签:
【中文标题】安全错误。在 php 中使用 ccavenue 检测到非法访问【英文标题】:Security Error. Illegal access detected using ccavenue in php 【发布时间】:2019-09-28 09:28:01 【问题描述】:我已成功重定向到 ccavenue 支付网关,但单击取消按钮时,在重定向 url 页面中显示错误“安全错误。检测到非法访问”。
这是我的重定向页面:
<?php include('Aes.php');include('adler32.php')?>
<?php
$workingKey='myWorkingKey'; //Working Key should be provided here.
$encResponse=$_POST["encResponse"]; //This is the response sent by the CCAvenue Server
$rcvdString=decrypt($encResponse,$workingKey);
$AuthDesc="";
$MerchantId="";
$OrderId="";
$Amount=0;
$Checksum=0;
$veriChecksum=false;
$decryptValues=explode('&', $rcvdString);
$dataSize=sizeof($decryptValues);
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.";
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";
else if($veriChecksum==TRUE && $AuthDesc==="N")
echo "<br>Thank you for shopping with us.However,the transaction has been declined.";
else
echo "<br>Security Error. Illegal access detected";
echo "<br><br>";
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>";
?>
我用谷歌搜索了这个问题,但没有得到任何解决方案。如何解决这个错误..请就相同的问题提出一些建议?
【问题讨论】:
我没有使用过这个特定的网关,但从你的代码中我看不出有任何努力来区分取消的订单和欺骗性的响应。其他网关(例如贝宝)重定向到取消订单的不同页面。也许您需要检查网关配置,或者您可以尝试var_dump($veriChecksum);
和var_dump($AuthDesc);
来查看它们的值
感谢您的建议。使用 var_dump($veriChecksum); - 它给出 bool(false) 并使用 var_dump($AuthDesc); - 字符串(0)
所以你的代码正在做它应该做的事情。检查网关文档以了解已取消的付款。
这里的校验和验证似乎完全失败了,所以你需要找出原因。首先一步一步检查您的不同变量包含的数据是否有意义。
我不知道校验和验证是如何失败的。成功将我带到 ccavenue 支付页面,但在重定向它时抛出该错误..我只需要更改 redirecturl 页面中的 workingKey ,这是非常正确的。
【参考方案1】:
我从文档中发现(可能已经过时,但我找不到更新的文档)您需要传递一个名为 cancel_url
的参数,如果客户在计费页面。
因此,在您创建付款的页面中,您需要将类似这样的内容添加到表单中
<input type="hidden" id="cancel_url" name="cancel_url" value="the_url_where_you_will_proccess_canceled_orders">
你必须已经有与redirect_url
类似的东西
【讨论】:
@Peace 你能告诉我们你创建交易的页面代码吗?【参考方案2】:您的代码没有任何问题。您需要为取消订单维护单独的页面,在该页面中您不需要使用 CC 渠道响应代码。由于用户没有完成付款,您将不会收到来自 ccavenue 的任何响应参数。因此,它们不需要 $verifyCheckSum 和 $AuthDesc 变量。他们只是心甘情愿地取消了订单。因此,只需在您的网站上向他们显示一条消息“您的订单已被取消”。
【讨论】:
我正在使用 PHP - CCAvenue 支付工具包,成功收到金额但响应页面返回 404 错误,请帮助我。代码:paiza.io/projects/SUiG5qp_wttfcrQn-0Mwew?language=php FYI -> [index.htm -> LineNo : 781 & 782] @Gem 你的意思是,你得到了同样的错误 安全错误。检测到非法访问 ?以上是关于安全错误。在 php 中使用 ccavenue 检测到非法访问的主要内容,如果未能解决你的问题,请参考以下文章