Кнопка eWAY pay now, похоже, содержит ошибку?

Я только что внедрил кнопку eWAY Pay Now и заметил странное поведение, которое происходит только на планшете с Microsoft Edge.

В основном, используя data-resulturl, можно перенаправить после успешной оплаты, например.

data-resulturl="https://www.mysite.com.au/booking.php" >

В моей ситуации я перенесу переменные сеанса на страницу booking.php, запишу их в базу данных, отправлю электронное письмо с подтверждением клиенту и письмо администратору, завершу сеанс, а затем перенаправлю на страницу booking-success.html.

Тем не менее, если вы нажмете кнопку «оплатить сейчас», на планшете будет запущен модальный режим, как обычно, но при нажатии кнопки «Отмена» будет запущен data-resulturl. отправка электронных писем и запись в базу данных. он не перенаправляет на страницу успеха.

По сути, пользователи могут делать заказы без оплаты.

Win10 Microsoft edge не влияет на ошибку.

Так что я в недоумении от того, что на самом деле здесь происходит, как это вообще возможно?

Я только что попытался отправить data-resulturl на payment.php с редиректом на booking.php, но он все равно запускает электронные письма и запись в БД.

<?php
$thankyouurl = "https://www.mysite.com.au/booking.php" ;
header( "Location: $thankyouurl" );
exit ;
?>

0

Решение

Похоже, вы столкнулись с ошибкой с помощью кнопки «Оплатить сейчас», которую лучше всего решить, обратившись к eWAY напрямую с некоторыми деталями, такими как версия Microsoft Edge, с которой возникла проблема.

Что касается примечания, вы должны знать, что кнопка «Оплатить сейчас» будет перенаправлена ​​на указанный URL-адрес после завершения транзакции, даже если платеж не прошел. На ваше booking.php страница, на которой вы хотите проверить результат транзакции, используя AccessCode передается в строке запроса.

Для этого вы можете выполнить Запрос транзакции, например, используя PHP SDK:

<?php

$apiKey = 'key';
$apiPassword = 'password';
$apiEndpoint = \Eway\Rapid\Client::MODE_SANDBOX; // Use \Eway\Rapid\Client::MODE_PRODUCTION when you go live
$client = \Eway\Rapid::createClient($apiKey, $apiPassword, $apiEndpoint);

$response = $client->queryTransaction($_GET['AccessCode']);
$response = $response->Transactions[0];

if ($response->TransactionStatus) {
echo 'Transaction successful! ID: '.$response->TransactionID;
} else {
$errors = split(', ', $response->ResponseMessage);
foreach ($errors as $error) {
echo "Payment failed: ".\Eway\Rapid::getMessage($error)."<br>";
}
}

Это также не позволит пользователям просто посещать booking.php для завершения бронирования. Для дополнительной безопасности зарегистрируйте коды доступа, чтобы их нельзя было повторно использовать для создания нескольких успешных заказов.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]