Ошибка безопасности.Обнаружен незаконный доступ с использованием ccavenue в php - PullRequest
3 голосов
/ 10 мая 2019

Я успешно перенаправляю на платежный шлюз 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>";
?>

Я погуглил проблему, но не смог найти решение. Как решить эту ошибку ... Пожалуйста, дайте несколько советовотносительно того же?

Ответы [ 2 ]

4 голосов
/ 13 мая 2019

Я обнаружил в документации (может быть устаревшей, но не смог найти обновленную), что вам нужно передать параметр с именем cancel_url, который CCAvenue перенаправит клиента на этот URL, если клиент отменит транзакцию на страница оплаты.

Итак, на странице, где вы создаете платеж, вам нужно добавить в свою форму что-то вроде этого

<input type="hidden" id="cancel_url" name="cancel_url" value="the_url_where_you_will_proccess_canceled_orders">

У вас уже должно быть что-то похожее с redirect_url

1 голос
/ 20 мая 2019

В вашем коде нет ничего плохого.Вам нужно вести отдельную страницу для отмены заказа, в которой вам не нужно использовать код ответа CC avenue.Поскольку пользователь не завершил платеж, вы не получите никакого параметра ответа от ccavenue.Таким образом, им не нужно $ verifyCheckSum и $ AuthDesc переменные.Они просто добровольно отменили свой заказ.Итак, просто нужно показать им сообщение «Ваш заказ был отменен» на вашем сайте.

...