В этом плагине нестандартный путь для подтверждения платежа (вебхуков): |
plugins: sber_sbp: main: bank_code: sber_sbp bank_account: sber_sbp_account currency: RUB currency_number: 643 member_id: "00001234" terminal_id: 12345678 # он же TID description: '' secret_key: secret certificate_path: /opt/hydra/hpd/cert_sber.pem api: url: https://mc.api.sberbank.ru:443/prod/ username: client_id password: client_secret listeners: http: plain: plugins: [sber_sbp/main] workers: - listeners: [http/plain] |
URL для подтверждения платежа в гидре в данном случае: <hpd_base_url>/
, причём Сберу принципиально, чтобы этот урл оканчивался на /notify, следует учесть это при настройке.sber_sbp
/main/notify
Сбер принимает запросы только со своим сертификатом, поэтому нужно сложить его формате .pem в certificate_path при этом не забыв выдать пользователю HPD (UID можно посмотреть в статье: Докеризация приложений) права на чтение файла сертификата.
Сертификат генерируется в формате pkc12 для преобразования используется команда:
openssl pkcs12 -in certificate_name.p12 -out cert_sber.pem -nodes |
Если при генерации сертификата получаем сообщение вида
Error outputting keys and certificates 8032BFF6167F0000:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported:crypto/evp/evp_fetch.c:355:Global default library context, Algorithm (RC2-40-CBC : 0), Properties () |
то в команду генерации добавляем ключ legacy
openssl pkcs12 -in certificate_name.p12 -out cert_sber.pem -nodes -legacy |
Промышленный стенд: https://mc.api.sberbank.ru:443/prod/qr/order/v3/creation
Тестовый: https://mc.api.sberbank.ru:443/prod/qr/order/stub/v3/creation
URL до точки авторизации не меняется. Только сам запрос.(https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth - не меняется)
payments: gateways: sber_sbp: default: hpd_url: http://127.0.0.1:9080 hpd_plugin_name: sber_sbp hpd_plugin_instance: main hpd_secret: secret available_payment_gateways: - sber_sbp |