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

Как выставить счет в QIWI API и не словить Error 400?

Здравствуйте. Пробовал выставить счет на своем тестовом сайте, но сервер вернул код 400.
Отправлял cUrl запрос, Bill id генерировал самостоятельно.
<?php


//АВТОРИЗАЦИЯ
$qiwi_secret = 'eyJ2ZXJzaW9uIjoiUDJQIiwiZGF0YSI6eyJwYXlpbl9tZXJjaGFudF9zaXRlX3VpZCI6ImF6YXYtMDAiLCJ1c2VyX2lkIjoiNzkwNjQ1Nzg4OTUiLCJzZWNyZXQiOiIwNWVhZmUwNzNjMTFlMmQzMmM5ZDNmYjcwZDU1Y2ExY***********************************';

$billid = time() + 10 * 5; // '893794793973'
$fields = [
  'amount' => 1.00,
  'currency' => 'RUB',
  'comment' => 'test',
  'expirationDateTime' => '2019-04-17T21:45:00+03:00',
  'phone' => '79064578895'
];
#Формируем ссылку для запроса
$link='https://api.qiwi.com/partner/bill/v1/bills/' . $billid;
$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_PUT,true);
curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($fields));
curl_setopt($curl, CURLOPT_HTTPHEADER, [
            'Accept: application/json',
            'Content-Type: application/json',
            'Authorization: Bearer ' . $qiwi_secret
        ]); 
$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE); #Получим HTTP-код ответа сервера
curl_close($curl);  #Завершаем сеанс cURL
$Response=json_decode($out,true);
$code_answer=json_decode($code,true);
print_r($code_answer); 
echo '<br>';
print_r($Response); 
?>

Вот ответ от сервиса:
[serviceName] => invoicing-api 
[errorCode] => http.message.conversion.failed 
[description] => Bad request 
[userMessage] => Bad request 
[dateTime] => 2019-04-16T10:05:35.188+03:00 
[traceId] => 958285f456ea5b95

В чем может быть проблема?
  • Вопрос задан
  • 1941 просмотр
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
@ArchiKu
Я пишу на C# и получал эту же ошибку потому что запрос отправлял в кодировке Win1251, а необходимо было в кодировке UTF8

P.S. реализовал взаимодействие с этим же сервисом https://api.qiwi.com/partner/bill/v1/bills/ (создание инвойса, оплата инвойса)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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