После отправки 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, но вместо этого в консоли
Или существует иной способ сделать POST запрос с редиректом на страницу для выполнения проверки?