Для сайта подключил Яндекс Турбо страницы, необходимо фиксировать заказы на сайте, сделанные через эти Турбо страницы. Алгоритм такой:
1. Пользователь сделал заказ через Яндекс Турбо страницу.
2. Яндекс отправляет на сайт данные заказа методом POST в виде JSON объекта.
3. На сайте эти данные обрабатываются и создается новый заказ.
4. Далее нужно ответить Яндексу, что все в порядке, заказ добавлен. И вот тут возникла проблема, как правильно вернуть ответ из PHP обработчика? Если не вернуть ответ, то Яндекс отправляет данные заказа еще 4-5 раз.
В инструкции сказано:
CODE ( htmlphp):
скопировать код в буфер обмена
Ответ магазина, если он принимает заказ Код ответа: 200 OK Тело: { "order": { "accepted": true, "id": "12345" } }
Я пробую варианты (по очереди):
CODE ( htmlphp):
скопировать код в буфер обмена
$response = '{"order": {"accepted": true, "id": "'.$order_id.'"}}'; header('Content-Type: application/json'); echo $response; $response = '{"order": {"accepted": true, "id": "'.$order_id.'"}}'; header('Content-Type: application/json'); $response['order']['accepted'] = true; $response['order']['id'] = $order_id; header('Content-Type: application/json'); $response = ["order" => [[ "accepted" => "true", "id" => "'.$order_id.'" ]]]; header('Content-Type: application/json');
Ни один вариант не срабатывает, т.к. Яндекс шлет заказы повторно.
Я понимаю, что нужно обращаться в тех. поддержку Яндекса, но они молчат.(Отредактировано автором: 10 Декабря, 2020 - 12:16:52)
|