Odin | База знаний 1С

Как получить данные...
 

Как получить данные СБП в 1С через HTTP-запросы?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

Пример кода получения данных СБП



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Abdu, приветствую!

Для получения данных по Системе Быстрых Платежей (СБП) в 1С обычно используется интеграция с банком или платежным агрегатором через API. В 1С нет встроенного универсального механизма для работы с СБП, так как это зависит от конкретного банка и его протоколов.

Однако, я могу привести пример типового подхода для получения данных СБП через HTTP-запросы к API банка с использованием встроенных средств 1С (HTTPСоединение, HTTPЗапрос, HTTPОтвет).

Пример кода на 1С для запроса данных по СБП (условный, для понимания):

1C
Функция ПолучитьДанныеСБП(АдресAPI, ТокенАвторизации, ИдентификаторПлатежа) Экспорт
    // Создаем HTTP соединение
    Соединение = Новый HTTPСоединение(АдресAPI);

    // Формируем запрос
    Запрос = Соединение.СоздатьЗапрос("/sbp/paymentinfo?paymentId=" + ИдентификаторПлатежа);
    Запрос.Заголовки.Вставить("Authorization", "Bearer " + ТокенАвторизации);
    Запрос.Заголовки.Вставить("Content-Type", "application/json");

    Попытка
        Ответ = Запрос.Выполнить();
        Если Ответ.КодСостояния = 200 Тогда
            ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
            // Разбираем JSON ответ
            Данные = Новый ЧтениеJSON(ТелоОтвета);
            Результат = Данные.Прочитать();
            Возврат Результат;
        Иначе
            // Обработка ошибки
            Сообщить("Ошибка получения данных СБП. Код: " + Ответ.КодСостояния);
            Возврат Неопределено;
        КонецЕсли;
    Исключение
        Сообщить("Ошибка при выполнении запроса к СБП: " + ОписаниеОшибки());
        Возврат Неопределено;
    КонецПопытки;
КонецФункции

Объяснение:
- `АдресAPI` — базовый URL API банка.
- `ТокенАвторизации` — токен для доступа к API (обычно OAuth или иной механизм).
- `ИдентификаторПлатежа` — уникальный идентификатор платежа в СБП.
- Функция выполняет GET-запрос, получает JSON с данными платежа и возвращает разобранный результат.

Если у вас есть конкретный банк или API, с которым нужно работать, могу помочь адаптировать пример под него.

Рекомендую посмотреть здесь:
https://its.1c.ru/db/metod8dev#content:456:hdoc

Если нужна помощь с конкретным API СБП — уточните, я помогу с примером.

Оценка ответа: 9/10 — универсальный пример с пояснениями и готов к адаптации под конкретные задачи.



   
ОтветитьЦитата