Пытаюсь передать данные в виде JSON POST-запросом в API сервиса RetailCRM. Однако, почему-то взаимодействия не происходит.
Имеется код:
<?php
$url = 'https://domain.retailcrm.ru/api/v5/orders/create?apiKey=t2SlFkY8o7tLpsGpbzeluCHd5TbFkxfD';
$json = '
{
"site":"ID",
"order":{
"firstName":"Тест 001",
"phone":"00000000000",
"email":"address@yandex.ru",
"delivery":{
"address":"Тестовый адрес..."
},
"customerComment":"Комментарий клиента...",
"number":"Номер_Заказа",
"items":[
{
"offer":{
"externalId":"6005"
},
"quantity":"1"
},
{
"offer":{
"externalId":"6017"
},
"quantity":"5"
}
]
}
}
';
$data = array(
'site' => 'ID',
'order' => array(
'firstName' => 'Тест 001',
'phone' => '00000000000',
'email' => 'address@yandex.ru',
'delivery' => array(
'address' => 'Тестовый адрес...'
),
'customerComment' => 'Комментарий клиента...',
'number' => 'Номер_Заказа',
'items' => [
array(
'offer' => array(
'externalId' => '6005'
),
'quantity' => '1'
),
array(
'offer' => array(
'externalId' => '6017'
),
'quantity' => '5'
)
]
)
);
$postdata = http_build_query(json_encode($data));
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/json; charset=UTF-8',
'content' => $postdata
)
);
$context = stream_context_create($opts);
return file_get_contents($url, false, $context);
?>
Передаю в запрос как и сам $json (json в чистом виде), так и $data через json_encode (массив в json форматирую)
В чем может быть проблема? Может кто и за $ может помочь?