Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 ноя 2022, 21:38

Запрос получения статуса заказа при подключении к Сбер (SberPay QR/Плати QR)

Автор ComAlex, 26 окт 2022, 17:54

0 Пользователей и 1 гость просматривают эту тему.

ComAlex

И снова здравствуйте!

Вопрос к тем, кто сталкивался с сервисом SberPay QR/Плати QR

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

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

Следую по ссылке
https://api.developer.sber.ru/product/PlatiQR/doc/v1/8024874228
пытался написать функцию

Функция ПолучитьСтатусЗаказа()
    СтатусЗаказа = Неопределено;
    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

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

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск