Задать вопрос
@un1ted220

Мне нужно отправить с jquery объект, принять в php и сразу же отправить его в платежную систему?

$.ajax({
                type: 'POST',
                url: 'pay_request.php',
                dataType: 'json',
                async: false,
                data: { json: JSON.stringify(json_data)},
            }).done( function( data ) {
                console.log('done');
                console.log(data);
            })
            .fail( function( data ) {
                console.log('fail');
                console.log(data);
            });

отправляет в php файл
let json_data = {
            "checkout": {
                "test" : true,
                "order": {
                  "amount": 1,
                  "currency": "USD",
                  "description": "Тестовый заказ"
                },
                "settings": {
                  "decline_url": "http://www.example.com/decline",
                  "fail_url": "http://www.example.com/fail",
                  "notification_url": "http://www.example.com/notify",
                  "success_url": "http://www.example.com/success"
                },
                "transaction_type": "payment",
                "version": 2
            },
        }

Это объект который нужно отправить
<?php

if (isset($_POST['json'])) {
    $data = $_POST['json'];
    try {
        $auth = base64_encode("4225:3834fbef1fe6ea024ef77f5c79ec7ff1ba710ea6241c08c2f341afda8af4c1c4");
        $url = 'https://checkout.bepaid.by/ctp/api/checkouts';
        $result = file_get_contents($url, false, stream_context_create(array(
            'http' => array(
                'method'  => 'POST',
                'header'  => "Content-Type: application/json\r\n" .
                    "Accept: application/json\r\n" .
                    "Authorization: Basic $auth\r\n",
                'json' => $data
            )
        )));

        echo $result;
    } catch (Throwable $th) {
        throw $th;
    }
}


Мне приходить 422 ошибка
[19-May-2021 06:43:35 UTC] PHP Warning:  file_get_contents(https://checkout.bepaid.by/ctp/api/checkouts): failed to open stream: HTTP request failed! HTTP/1.1 422 Unprocessable Entity
 in /Applications/MAMP/htdocs/Whatsthere/pay_request.php on line 14

использую mamp
Вот инструкция для подключения
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
rpsv
@rpsv
делай либо хорошо, либо никак
Может стоит запросы не через file_get_contents отправлять, а хотя бы через curl, а лучше guzzle.
Вам прилетает 422 ошибка, идите в мануал платежной системы и смотрите при каких обстоятельствах она возникает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
У вас не указан размер тела запроса Content-Lenght, без него запрос считается не валидным.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы