Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Запрос получения статуса заказа при подключении к Сбер (SberPay QR/Плати QR) (http://forums.kuban.ru/f1040/zapros_polucheniya_statusa_zakaza_pri_podklyuchenii_k_sber_sberpay_qr_plati_qr-9203646.html)

ComAlex 26.10.2022 18:02

Запрос получения статуса заказа при подключении к Сбер (SberPay QR/Плати QR)
 
И снова здравствуйте!
Вопрос к тем, кто сталкивался с сервисом SberPay QR/Плати QR

1. С горем пополам получил токен авторизации.
2. Мне нужно теперь хотя бы получить статус заказа.

Вся документация - убогая, нет живых примеров, непонятно какая версия рабочая (v2 или v3) ...

Следую по ссылке
[url]https://api.developer.sber.ru/product/PlatiQR/doc/v1/8024874228[/url]
пытался написать функцию
///
Функция ПолучитьСтатусЗаказа()
СтатусЗаказа = Неопределено;
AccessToken = ПолучитьAccessToken();
Если AccessToken <> "" Тогда
Authorization = "Bearer " + AccessToken;
GUID = Новый УникальныйИдентификатор();
СтрокаGUID = СтрЗаменить(Строка(GUID), "-", "");
HTTPСоединение = Новый HTTPСоединение("api.sberbank.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL);
ТелоЗапроса = "scope=https%3A%2F%2Fapi.sberbank.ru%2Fqr%2Forder.status"; // Или это (не знаю): ТелоЗапроса = "grant_type=client_credentials&scope=https%3A%2F%2Fapi.sberbank.ru%2Fqr%2Forder.status";
ТекстЗапроса = "/prod/qr/order/v3/status"; // Или это (не знаю): ТекстЗапроса = "/prod/qr/order/v2/status";

HTTPЗапрос = Новый HTTPЗапрос(ТекстЗапроса);
HTTPЗапрос.АдресРесурса = ТекстЗапроса;

HTTPЗапрос.Заголовки.Вставить("authorization" , Authorization);
HTTPЗапрос.Заголовки.Вставить("rq_tm" , XMLСтрока(ТекущаяДата()) + "Z");
HTTPЗапрос.Заголовки.Вставить("order_id" , "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
HTTPЗапрос.Заголовки.Вставить("rquid" , СтрокаGUID);
HTTPЗапрос.Заголовки.Вставить("RqUID" , СтрокаGUID);
HTTPЗапрос.Заголовки.Вставить("content-type" , "application/json");
HTTPЗапрос.Заголовки.Вставить("accept" , "*/*");
HTTPЗапрос.Заголовки.Вставить("tid" , "XXXXXXXX");
HTTPЗапрос.Заголовки.Вставить("partner_order_number" , "15");

HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.НеИспользовать);

Результат = HTTPСоединение.ВызватьHTTPМетод("POST",HTTPЗапрос);

ОтветСтрока = Результат.ПолучитьТелоКакСтроку();

ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ОтветСтрока);
Ответ = ПрочитатьJSON(ЧтениеJSON);
.... // Получаю статус
КонецЕсли;
Возврат СтатусЗаказа
КонецФункции;
///

Но она не работает - выдается ошибка:

ОтветСтрока:
///
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>
///

Если у кого есть идеи или рабочие примеры или ссылки, поделитесь!

ComAlex 27.10.2022 12:11

Тема закрыта.
Задача решена: забыл прикрепить сертификат


Текущее время: 06:53. Часовой пояс GMT +3.