через токен ?
устанавливаю заголовок:
$httpClient->setHeader('Authorization', 'Bearer '.$token);
но получаю 415 ответ от сервера 🙁
как можно понять причину такого некорректного ответа ?
А если убрать этот заголовок вообще, то будет 401 или также 415?
А без клиента, через курл пробовал напрямую?
Некоторые веб-сервисы требуют Content-type заголовок, проверьте что вы его отправляете. И после запроса, если второй запрос выполняете тем же объектом http клиента делайте очистку headers
если ставлю $httpClient->setHeader('Content-Type','application/json',true); получаю вообще 400 ошибку:( явно чего-то не хватает:( ищу, чего
400 это либо какой-то заголовок лишний полетел, либо совершенно не то отправил. С чем интегрируется? Покажи код
интеграция вот с этим (первый же запрос - /api/merchant/v1/qrc-data): https://devul-c2b-sbp.openbank.ru/api/merchant/swagger/index.html $sendArray = [ 'merchantId'=>$this->merchantID, 'templateVersion'=>'01', 'qrcType'=>'02', 'amount'=>$amount, 'currency'=>'RUB', 'paymentPurpose'=>$purpose, 'Params'=>["paymentData"=> $params], ]; $httpClient = new \Bitrix\Main\Web\HttpClient(); $httpClient->setHeader('Authorization','Bearer '.$token,true); $httpClient->post($this->baseUrl.'/api/merchant/v1/qrc-data?mediaType=image/svg+xml',Json::encode($sendArray)); если добавляю заголовок: $httpClient->setHeader('Content-Type','application/json-patch+json',true); - получаю 400 статус. убираю эту строку - 415 $httpClient->setHeader('accept','application/json',true); - этот заголовок, увидел в документации, что они передают, пробовал добавлять и убирать - ничего не меняется 🙁
1. Отсутствуют width и height параметры в query string 2. Accept заголовок так же пропущен 3. Content-Type: application/json 4. Структура json не корректная: 4.1 Проверить чтобы в paymetnData в $params была строка 4.2 Не Params, а params (с маленькой буквы 4.3 Отсутствуют ключи: account, qrcTtl, subscriptionPurpose, redirectUrl. 5. При 400 статусе в payload должен вернутся json ошибки. Что возвращается?
[RESULT] => {"errors":{"mediaType":["The input was not valid."]},"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1","title":"One or more validation errors occurred.","status":400,"detail":"The server cannot or will not process the request due to an apparent client error.","traceId":"|3636bc2f-494450fad2b9b99f.","correlationId":"d526ec20ef704d00b18b832365c6de49"} перебираю параметры ... что-то явно не так передаю:(
Надо провалиться в HttpClient и посмотреть какой HTTP запрос уходит. Продозрение в том, что mediaType который отправляете не кодируется и из-за этого не парсится сервером с их стороны
да, тоже так подумал, что нужно лезть в ядро
Обсуждают сегодня