Как отправить данные в body через curl в php?

Стоит задача, подключить сайт к api другого сайта.
Вот что я знаю.


Запросы.
Все запросы должны содержать заголовок (Header) Authorization, в значении которого должен присутствовать токен. Также в заголовок можно добавить язык, после чего описания ответов будут на соответствующем языке, например:
Authorization: Token 4443a98e3389a2d90b05da7eae342e5f61ffd39c
Accept-Language: en (default=ru, en, kk)

Ответы
Все ответы возвращаются в формате JSON


Я использую curl
$url = "https://testpay.post.kz/api/v0/orders/payment/";

$headers = array();
$headers[] = "Accept: application/json";
$headers[] = "Content-Type: application/json";
$headers[] = "Content-length: 0";
$headers[] = "Authorization: Token 9999079c286bfc020045a692c184246cee95bfe9";

$params = Array(
	"amount"=>2000,
	"back_link"=>"kazpostpay.pr/success.php",
	"payment_webhook"=>"http://testpay.pruk.kz/webhook.php", 
	"email"=>"mail@gmail.com");

$params = json_encode($params);

$crl = curl_init();
curl_setopt($crl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_POST,true);
curl_setopt($crl, CURLOPT_POSTFIELDS, $params);

$rest = curl_exec($crl);

curl_close($crl);


На выходе получаю ответ: {"success":false,"errors":{"amount":["This field is required."]}}
api думает, что я отправил пустой "amount".

Так же из документации:
Данные тестового сервера
token -- запросите у менеджера проекта --
postman_file -- запросите у менеджера проекта --
key -- запросите у менеджера проекта -- для тестового сервера используется “DEMO”

Разработчики api ответили что я должен отправить данные в body. Так же мне предоставили 2 файла (postman_file). Один из них, 2ой слишком большой.

{
"id": "b2af3619-7698-fd08-851f-24fb2403c995",
"name": "TEST SERVER",
"values": [
{
"enabled": true,
"key": "url",
"value": "https://testpay.post.kz",
"type": "text"
},
{
"enabled": true,
"key": "token",
"value": "9999079c286bfc020045a692c184246cee95bfe9",
"type": "text"
},
{
"enabled": true,
"key": "",
"value": "",
"type": "text"
}
],
"timestamp": 1516888480700,
"_postman_variable_scope": "environment",
"_postman_exported_at": "2018-02-08T03:27:04.142Z",
"_postman_exported_using": "Postman/5.5.1"
}


Вопросы:
Как отправить данные в body?
Возможно ли, что я не учел что то в заголовоках?
Для чего мне 2 файла (postman) и как я их могу отправить?

Я впервые сталкиваюсь с подобным api.
  • Вопрос задан
  • 2376 просмотров
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
Для чего мне 2 файла (postman) и как я их могу отправить?


что такое Postman - вообще в курсе?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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