Общий модуль для приёма платежей по СБП (C2B, оплата по QR-коду) от Альфа-Банка прямо из 1С — без промежуточных сервисов и сторонних обработок. Статья описывает устройство общего модуля ИнтеграцияАльфаБанк, который:
- получает OAuth2-токен у банка по
client_credentials; - создаёт динамический QR-код по сумме документа;
- проверяет статус оплаты;
- при успешной оплате (
ACWP) автоматически создаёт и проводит документ «Оплата от покупателя платёжной картой».
Все запросы идут поверх mutual TLS — банк аутентифицирует клиента по сертификату .p12, выданному при подключении к API.
Код написан и обкатан на УТ 10.3, но логика API и работы с HTTPS не зависит от конфигурации — модуль легко адаптируется под УТ 11/КА/ERP заменой имени документа оплаты и его реквизитов.
Что нужно от банка
Перед интеграцией в Альфа-Банке потребуется:
- Договор эквайринга СБП C2B. Подключается через менеджера в банке. Выдаются:
clientId,clientSecret, номер терминала (termNo). - Клиентский сертификат
.p12. Это файл PKCS#12 с приватным ключом, который банк выдаёт для mutual TLS. Без него ни один запрос не пройдёт — соединение будет рваться на этапе TLS handshake. - Доступ к песочнице (sandbox). Для отладки используется
sandbox.alfabank.ru, для прода —baas.alfabank.ru. Сертификат для песочницы и прода — разные файлы.
Архитектура решения
Модуль изолирует все подробности интеграции внутри себя. Внешний код вызывает три экспортные функции:
СоздатьQRКод(ДокументСсылка, Сумма, НазначениеПлатежа)— отдаётqrcId,payload(строка для QR) иimage(base64 PNG, если банк его прислал). Запись о QR попадает в регистр сведенийQRОплатыСБП.ПроверитьСтатусQR(ДокументСсылка)— обращается к банку, обновляет статус в регистре, приACWPзапускает создание документа оплаты.ПроверитьВсеНеоплаченные()— массовая проверка всех QR в статусахCREATED,NTST,RCVD. Кладётся в регламентное задание с интервалом 1–2 минуты.
Регистр сведений QRОплатыСБП
Хранит привязку «документ — QR — статус». Минимальный состав измерений и ресурсов:
- Измерение:
Документ(ДокументСсылка, ведущее) — основание оплаты; - Ресурсы:
QrcId,Payload,TrxId,Сумма,Статус,ДатаСоздания,ДатаОплаты,TermNo.
Регистр непериодический, независимый. Один документ — одна запись.
Статусы платежа
Банк возвращает один из кодов NPC (Национальной системы платёжных карт):
CREATED— QR сгенерирован, оплата не начата;NTST— статус не определён (плательщик ещё не подтвердил);RCVD— банк получил подтверждение, обрабатывает;ACWP— успешная оплата (Accepted With Posting) — единственный финальный «оплачено»;RJCT— отклонено;EXPIRED— истёк TTL.
В ОбработатьУспешнуюОплату срабатывает только ACWP. Все остальные — продолжаем опрашивать.
Тестирование проводилось на УТ 10.3.88.3, платформа 8.5.1.1150.
Вступайте в нашу телеграмм-группу Инфостарт