Всем добрый день!
Работаю с API платежной сис-мы, где есть проверка статуса платежа. То есть на мой сервер каждые 5 минут отправляется POST запрос, который я обрабатываю и вношу изменения в свою базу. Так вот, задача такова, чтобы дать серверу платежной системы ответ, о том, что все, платёж завершен. Для этого у них есть такой способ реализации:
Сообщение считается доставленным, если страница обрабатывающая уведомление, вернет
<?xml version="1.0" encoding="UTF-8"?><response><result>0</result></response>
и код HTTP ответа 200, иначе оповещение о выполненном платеже будет повторяться.
Делаю это вот так:
$orderID = $_POST['orderId'];
$status = $_POST['paymentStatus'];
if($status == 1)
{
global $DB;
$DB->Query("UPDATE `pay_inout` SET `status` = 1 WHERE orderid = '$orderID'");
header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?><response><result>0</result></response>';
}
if($status == 0 || 2)
{
global $DB;
$DB->Query("UPDATE `pay_inout` SET `status` = '$status' WHERE orderid = '$orderID'");
header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?><response><result>0</result></response>';
}
Вроде как все должно работать, но нет. Сервер платежной системы продолжает отсылать POST запросы и считает, что платеж еще не обработан моей системой.
Проверял через сторонний сервис, эта страничка отдает HTTP 200, значит дело именно в XML.
Продвижение своими сайтами как стратегия роста и независимости