Как переписать вот этот кусок кода под php?

есть вот такой кусок кода на js
axios({
        url: 'https://kakoitourl/api/set_new_access_keys',
        method: 'post',
        data: {
            "data_about_deal": {
                "name": "Dimka",
                "email": "test@gmail.com",
                "comment": "комментарий",
                "price": 4001
            },
            "utm": {
                "content":"yandex"
            }
        }

    }).then(res => {
        console.log(res)
    })


И его нужна переписать под php, помогите пожалуйста, уже разные варианты перепробовал и чем то он все равно отличается

Вот какой код пробовал я
$queryUrl = 'https://kakoitourl/api/set_new_access_keys';
$queryData = json_encode(
    array(
        "data_about_deal" => [
            "name" => 'Dimka',
            "email" => "test@gmail.com"
        ],
        "utm" => [
            "content" => 'yandex'
        ]
    )
);
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_SSL_VERIFYPEER => 0,
    CURLOPT_POST => 1,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $queryUrl,
    CURLOPT_POSTFIELDS => $queryData,
    CURLOPT_HTTPHEADER => array(
        'Content-Type: application/json',
    )

));
$result = curl_exec($curl);
curl_close($curl);
$result = json_decode($result, 1);

echo "Ответ на Ваш запрос: ";
echo '<pre>';
print_r($result);
echo '</pre>';


Ну вот когда я на нем отправляю запрос, axios падает почему то в ошибку на сервере, а с js все норм и в постмане тоже
  • Вопрос задан
  • 238 просмотров
Пригласить эксперта
Ответы на вопрос 1
@v__V__v
Разработчик
Ошибка с кодом 400 - это неверный запрос. Сравните для начала, что именно приходит на сервер, когда запрос идет от js и от php. Если вы не можете посмотреть непосредственно на используемом сервере, измените queryUrl на любой полностью доступный вам сервер и посмотрите там. Возможно целевому серверу не нравится, что вы в json_encode закидываете массив, а не объект, а может то, что в CURLOPT_POSTFIELDS у вас безымянная строка неправильный структуры (правильно - 'postvar1=value1&postvar2=value2&postvar3=value3&postvar4=value4&...') вместо вызова http_build_query() с массивом в параметре.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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