Cresis
@Cresis

Почему не выполняется условие if после json запроса(Fixed malformed JSON) на странице checkout?

После отправки JSON данных, нужно из полученных данных сформировать post и отправить его на необходимую страницу с соответствующим редиректом.

Т.е форма выглядит примерно так:

<form name="downloadForm" action="AcsUrl" method="POST">
    <input type="hidden" name="PaReq" value="eJxVUdtugkAQ/RXDe9mLgo0Z1nhpU9PQasWmPhLYAKksuEChfn13uVR9mGTO7MzZM2dg3qSn0Q+X\nRZIJxyAmNkZcBFmYiMgxDt7zw6MxZ+DFkvP1ngeV5AxcXhR+xEdJ6BhpEZnEYLBdfPAzg56JKSKT\nAhqgGpFB7IuSgR+cl5s3NqFTG2NAPYSUy82aETqeWPYUUAdB+ClnwSmrwtz/TbkoC0BtDYKsEqX8\nZfZkDGgAUMkTi8synyFU17V5N2nKCpBuAHRVs610VijCJgmZu17UXTxhFWP34l7evYPlegsHkO6A\n0C85o5hMsI3piNIZHc+IBaitg59qJYzgdrUOQK7/WNy+3FZAeSqV5cMqAwLe5JlQwpny8T8HdFW8\netFuBqUyahV+Hjf27vWCaSx22fe+KY6kXKZfJLK1x22TZkyUS8QiHaUGgDQN6s+H+tOq7O7kf8hd\nt30=">
    <input type="hidden" name="MD" value="504">
    <input type="hidden" name="TermUrl" value="https://example.com/post3ds?order=1234567">
</form>
<script>
    window.onload = submitForm;

    function submitForm() {
        downloadForm.submit();
    }
</script>


Вот мой код запроса JSON и проверка, все стандартно:
$auth = base64_encode($this->public_id . ":" . $this->api_pass);
$response = wp_remote_post(
'https://api.payments.ru/payments/cards/charge',
array(
'timeout' => 30,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => true,
'headers' => array('Authorization' => 'Basic ' . $auth, 'Content-Type' => 'application/json'),
'body' => json_encode($request, JSON_UNESCAPED_UNICODE)
)
);


if (!is_wp_error($response)) {
error_log(print_r($response, true));

$response['body'] = json_decode($response['body'], true);

if ($response['body']['Success'] == false) {
$ascurl = $response['body']['Model']['AcsUrl'];
$PaReq = $response['body']['Model']['PaReq'];
$TransactionId = $response["body"]["Model"]['TransactionId'];
$js = '<script type="text/javascript">
    var md = "'. $TransactionId .'";
    var pareq = "'. $PaReq .'";
    var turl = "https://wppay/wc-api/3ds-secure?id='. $order_id .'";
    console.log(md);
</script>';

echo $js;
}


По идеи на выходе в документе должны выводится переменные в js, но вместо этого в консоли 6171f22e8cb54775157519.png

Или существует иной способ сделать POST запрос с редиректом на страницу для выполнения проверки?
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 2
Aetae
@Aetae
Тлен
header('Location: http://www.example.com/');
exit;
Ответ написан
Cresis
@Cresis Автор вопроса
В итоге передал все данные в ссылке на другую страницу и там спокойно обработал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы