Чтобы абоненты-физлица могли оплачивать счета в личном кабинете с помощью эквайринга от СберБанка, последовательно настройте несколько объектов.
Оставьте заявку на подключение на сайте. Дождитесь, пока сотрудники предоставят вам информацию.
В личном кабинете настройте параметры callback-уведомлений:
Создайте профиль для платёжной системы в LANBilling. Логин и пароль нужно будет указать в скрипте callback-уведомлений.
Действия различаются для разных ОС.
Создайте каталог:
mkdir /usr/local/share/ca-certificates/sber/
``
Скачайте два сертификата:
wget https://gu-st.ru/content/lending/russian_trusted_root_ca_pem.crt -O /usr/local/share/ca-certificates/sber/russian_trusted_root_ca_pem.crt
wget https://gu-st.ru/content/lending/russian_trusted_sub_ca_pem.crt -O /usr/local/share/ca-certificates/sber/russian_trusted_sub_ca_pem.crt
``
Подробнее читайте по ссылке.
Обновите хранилище сертификатов:
update-ca-certificates -v
``
Ответ системы при успешном добавлении:
2 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
``
Проверьте, что сертификаты валидны — заверены центром сертификации. Сделать это можно двумя способами.
С помощью wget
— при проверке ответ не должен быть пустым.
wget -qS —spider —max-redirect=0 https://3dsec.sberbank.ru/payment/rest/
С помощью curl
— при проверке не должна возвращаться ошибка.
curl https://3dsec.sberbank.ru/payment/webservices/merchant-ws?wsdl
Убедитесь, что существует каталог /etc/pki/ca-trust/source/anchors/
.
Скачайте два сертификата:
wget https://gu-st.ru/content/lending/russian_trusted_root_ca_pem.crt -O /etc/pki/ca-trust/source/anchors/russian_trusted_root_ca_pem.crt
wget https://gu-st.ru/content/lending/russian_trusted_sub_ca_pem.crt -O /etc/pki/ca-trust/source/anchors/russian_trusted_sub_ca_pem.crt
``
Подробнее читайте по ссылке.
Обновите хранилище сертификатов:
update-ca-trust force-enable
``
Ответ системы при успешном добавлении:
2 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
``
Проверьте, что сертификаты валидны — заверены центром сертификации. Сделать это можно двумя способами.
С помощью wget
— при проверке ответ не должен быть пустым.
wget -qS —spider —max-redirect=0 https://3dsec.sberbank.ru/payment/rest/
С помощью curl
— при проверке не должна возвращаться ошибка.
curl https://3dsec.sberbank.ru/payment/webservices/merchant-ws?wsdl
Скрипт нужен, чтобы фиксировать в LANBilling результаты оплат. Он обрабатывает запросы от платёжной системы — в них содержится информация об операциях. На основании этих данных скрипт создаёт платежи в биллинге.
Настройка различается для разных ОС.
Убедитесь, что установлен PHP 7
, а также пакеты perl-cgi
, perl-JSON
и perl-soap-lite
.
Скопируйте скрипт callback-уведомлений sber_acq.cgi
в директорию исполняемых скриптов вашего веб-сервера:
cp /usr/local/billing/payments/sber_acq/sber_acq.cgi /var/www/cgi-bin/
``
Укажите в файле настройки доступа.
# Атрибуты для доступа к LBcore
my $proto = 'http';
# Атрибуты для доступа к LBcore
$lbcore_host = '127.0.0.1'
$manager_login = 'super_pay'
$manager_pass = '12345'
# Настройка логирования
my $log_file = "/var/log/billing/weblogs/sber-acq.log"
``
Сделайте скрипт исполняемым:
chmod +x /var/www/cgi-bin/sber_acq.cgi
``
Сообщите сотрудникам СберБанка URL скрипта sber_acq.cgi
на вашем веб-сервере. Например: https://company.org/cgi-bin/sber_acq.cgi.
Убедитесь, что установлен PHP 7
, а также пакеты libsoap-lite-perl
, libxml-simple-perl
, libcgi-session-perl
, libtext-iconv-perl
, libjson-perl
.
Скопируйте скрипт callback-уведомлений sber_acq.cgi
в директорию исполняемых скриптов вашего веб-сервера:
cp /usr/local/billing/payments/sber_acq/sber_acq.cgi /usr/lib/cgi-bin/
``
Укажите в файле настройки доступа.
# Атрибуты для доступа к LBcore
my $proto = 'http';
# Атрибуты для доступа к LBcore
$lbcore_host = '127.0.0.1'
$manager_login = 'super_pay'
$manager_pass = '12345'
# Настройка логирования
my $log_file = "/var/log/billing/weblogs/sber-acq.log"
``
Сделайте скрипт исполняемым:
chmod +x /usr/lib/cgi-bin/sber_acq.cgi
``
Сообщите сотрудникам СберБанка URL скрипта sber_acq.cgi
на вашем веб-сервере. Например: https://company.org/cgi-bin/sber_acq.cgi.
Убедитесь, что установлен PHP 7
, а также пакеты p5-IO-SessionData
и p5-SOAP-Lite
.
Скопируйте скрипт callback-уведомлений sber_acq.cgi
в директорию исполняемых скриптов вашего веб-сервера:
cp /usr/local/billing/payments/sber_acq/sber_acq.cgi /usr/local/www/apache24/cgi-bin/
``
Укажите в файле настройки доступа.
# Атрибуты для доступа к LBcore
my $proto = 'http';
# Атрибуты для доступа к LBcore
$lbcore_host = '127.0.0.1'
$manager_login = 'super_pay'
$manager_pass = '12345'
# Настройка логирования
my $log_file = "/var/log/billing/weblogs/sber-acq.log"
``
Сделайте скрипт исполняемым:
chmod +x /usr/local/www/apache24/cgi-bin/sber_acq.cgi
``
Сообщите сотрудникам СберБанка URL скрипта sber_acq.cgi
на вашем веб-сервере. Например: https://company.org/cgi-bin/sber_acq.cgi.
Выполните эти шаги, если вы работаете с автоплатежами.
Скопируйте скрипт sber_recurrent_payment.py
в директорию /usr/local/billing/pymodules/
:
cp /usr/local/billing/payments/sber_acq/sber_recurrent_payment.py /usr/local/billing/pymodules/
``
Укажите в файле настройки доступа.
Логин и пароль от профиля платёжной системы в LANBilling:
MANAGER = 'super_pay'
PASSWORD = '12345'
ID оператора в биллинге. Если в скрипте задан ненулевой идентификатор OPER_ID, то автоплатежи будут выполняться только по договорам этого оператора:
OPER_ID = 1
Ссылка на платёжный шлюз.
Для промышленной среды:
SBER_URL ='https://securepayments.sberbank.ru/payment/rest/'
Или для тестового режима:
SBER_URL ='https://3dsec.sberbank.ru/payment/rest/'
Логин и пароль для доступа к сервису — их выдают сотрудники СберБанка:
SBER_USERNAME = '781000013674-20152659-api'
SBER_PASSWORD = 'sberbankNSS'
Перезапустите модуль LBcore. Команды различаются в разных ОС.
systemctl restart lbcore
service lbcore restart
Действия различаются для разных ОС.
Внесите изменения в файл конфигурации sberbank.ini
:
nano /etc/lanbilling/phpclient/client/sberbank.ini
``
Включите платёжную систему в личном кабинете абонентов LANBilling.
[sberbank]
enabled = true
Если вы работаете с автоплатежами, укажите ID профиля платёжной системы из LANBilling:
epsManagerId = 14
Если вы не работаете с автоплатежами, отключите их:
allowAutoPayments = false
Укажите cсылку на платёжный шлюз.
Для промышленной среды:
path = 'https://securepayments.sberbank.ru/payment/rest/'
Или для тестового режима:
path = 'https://3dsec.sberbank.ru/payment/rest/'
Введите логин и пароль для доступа к сервису — их выдают сотрудники СберБанка.
userName = '781000013674-20152659-api'
password = 'sberbankNSS'
Установите минимальную сумму платежа. Чтобы убрать ограничение, введите «0».
minPaymentAmount = 10
Включите отображение кнопки оплаты через СБП.
useSbpPayment = true
Если вы предоставляете абонентам возможность оплаты по СБП, укажите параметры подключения и сертификаты. Подробнее об этом читайте ниже.
Дополнительно: валюта, описание заказа, ставка НДС, наименование товара, тип и объект платежа, а также другие параметры.
Сохраните конфигурационный файл. Сериализуйте изменения:
/usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client/
``
Внесите изменения в файл конфигурации sberbank.ini
:
nano /usr/local/etc/lanbilling/phpclient/client/sberbank.ini
``
Включите платёжную систему в личном кабинете абонентов LANBilling.
[sberbank]
enabled = true
Если вы работаете с автоплатежами, укажите ID профиля платёжной системы из LANBilling:
epsManagerId = 14
Если вы не работаете с автоплатежами, отключите их:
allowAutoPayments = false
Укажите cсылку на платёжный шлюз.
Для промышленной среды:
path = 'https://securepayments.sberbank.ru/payment/rest/'
Или для тестового режима:
path = 'https://3dsec.sberbank.ru/payment/rest/'
Введите логин и пароль для доступа к сервису — их выдают сотрудники СберБанка.
userName = '781000013674-20152659-api'
password = 'sberbankNSS'
Установите минимальную сумму платежа. Чтобы убрать ограничение, введите «0».
minPaymentAmount = 10
Включите отображение кнопки оплаты через СБП.
useSbpPayment = true
Если вы предоставляете абонентам возможность оплаты по СБП, укажите параметры подключения и сертификаты. Подробнее об этом читайте ниже.
Дополнительно: валюта, описание заказа, ставка НДС, наименование товара, тип и объект платежа, а также другие параметры.
Сохраните конфигурационный файл. Сериализуйте изменения:
/usr/local/sbin/lbwebcfg -y client /usr/local/etc/lanbilling/phpclient/client/
``
Настройка завершена. Теперь абоненты-физлица могут пополнять баланс в личном кабинете с помощью этой платёжной системы.
Можно предоставить абонентам возможность совершать оплаты по СБП — с помощью банковского приложения на смартфоне.
Динамический QR‑код привязан к конкретной покупке и содержит в себе её сумму. Такой QR‑код не нужно вручную отправлять абонентам — достаточно разместить на сайте платежную форму и подключить оплату через СБП. Для этого дополнительно нужно настроить:
Обратите внимание: оплату по СБП не удастся настроить, если сервер, где установлен личный кабинет, работает под управлением Centos 7.
Измените настройки openssl:
nano /etc/ssl/openssl.cnf
``
Задайте такие параметры:
openssl_conf = openssl_init
[openssl_init]
providers = provider_sect
[provider_sect]
default = default_sect
legacy = legacy_sect
[default_sect]
activate = 1
[legacy_sect]
activate = 1
``
Зарегистрируйте приложение в личном кабинете Sber API Registry. В итоге вы должны иметь:
sberbank.ini
Извлеките из контейнера корневые сертификаты — они будут представлены в файле cacerts.cer
. Введите команду с учётом расположения и названия вашего контейнера:
openssl pkcs12 -in /home/certificate_ccc123-45bb-67aa.p12 -cacerts -nokeys -out cacerts.cer
``
Переименуйте полученный файл в «cacerts.crt»:
mv cacerts.cer cacerts.crt
``
Дальнейшие действия различаются в зависимости от ОС.
Добавьте файл с корневыми сертификатами в хранилище:
cp cacerts.crt /usr/local/share/ca-certificates/
``
Обновите хранилище:
update-ca-certificates -v
``
Можно проверить, что сертификаты добавлены:
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep -i "SberAPI CA"
Ответ системы при успешном добавлении:
subject=C = RU, ST = Moscow, L = Moscow, O = Sberbank of Russia, OU = SberAPI, CN = SberAPI CA
Добавьте файл с корневыми сертификатами в хранилище:
cp cacerts.crt /etc/pki/ca-trust/source/anchors/
``
Обновите хранилище:
update-ca-trust force-enable
``
Можно проверить, что сертификаты добавлены:
awk -v cmd='openssl x509 -noout -subject' ' /BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-bundle.crt | grep -i "SberAPI CA"
Ответ системы при успешном добавлении:
subject=C = RU, ST = Moscow, L = Moscow, O = Sberbank of Russia, OU = SberAPI, CN = SberAPI CA
Команды различаются для разных ОС.
Скопируйте скрипт callback-уведомлений sber_qr.py
в директорию исполняемых скриптов вашего веб-сервера:
cp /usr/local/billing/payments/sber_acq/sber_qr.py /var/www/cgi-bin/
``
Укажите в файле настройки доступа.
# Атрибуты для доступа к LBcore
HOST = '127.0.0.1'
PORT = 34012
MANAGER_LOGIN = 'super_pay'
MANAGER_PASS = '12345'
# Путь к лог-файлу с историей
LOG_FILE = "/var/log/billing/sber_qr.log"
# Класс платежа (id) из таблицы pay_classses
CLASS_ID = 0
``
Сделайте скрипт исполняемым:
chmod +x /var/www/cgi-bin/sber_qr.py
``
Скопируйте скрипт callback-уведомлений sber_qr.py
в директорию исполняемых скриптов вашего веб-сервера:
cp /usr/local/billing/payments/sber_acq/sber_qr.py /usr/lib/cgi-bin/
``
Укажите в файле настройки доступа.
# Атрибуты для доступа к LBcore
HOST = '127.0.0.1'
PORT = 34012
MANAGER_LOGIN = 'super_pay'
MANAGER_PASS = '12345'
# Путь к лог-файлу с историей
LOG_FILE = "/var/log/billing/sber_qr.log"
# Класс платежа (id) из таблицы pay_classses
CLASS_ID = 0
``
Сделайте скрипт исполняемым:
chmod +x /usr/lib/cgi-bin/sber_qr.py
``
Скопируйте скрипт callback-уведомлений sber_qr.py
в директорию исполняемых скриптов вашего веб-сервера:
cp /usr/local/billing/payments/sber_acq/sber_qr.py /usr/local/www/apache24/cgi-bin/
``
Укажите в файле настройки доступа.
# Атрибуты для доступа к LBcore
HOST = '127.0.0.1'
PORT = 34012
MANAGER_LOGIN = 'super_pay'
MANAGER_PASS = '12345'
# Путь к лог-файлу с историей
LOG_FILE = "/var/log/billing/sber_qr.log"
# Класс платежа (id) из таблицы pay_classses
CLASS_ID = 0
``
Сделайте скрипт исполняемым:
chmod +x /usr/local/www/apache24/cgi-bin/sber_qr.py
``
Откройте файл конфигурации sberbank.ini
:
nano /etc/lanbilling/phpclient/client/sberbank.ini
``
Укажите данные.
Идентификатор клиента — его выдают сотрудники Сбербанка:
memberId = '000001'
ClientID и ClientSecret из личного кабинета Sber API Registry:
clientId = 'ccc123-45bb-67aa'
clientSecret = '976fac54-d569-4026-b75c-2157a19a272d'
Адреса для создания заказа — оставьте значения по умолчанию:
tokenURL = 'https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth'
qrURL = 'https://mc.api.sberbank.ru/prod/qr/order/v3/creation'
scope = 'https://api.sberbank.ru/qr/order.create'
Идентификатор терминала — его выдают сотрудники Сбербанка:
tid = '10266753'
Путь к контейнеру с сертификатами безопасности и пароль к нему:
certificatePath = '/home/certificate_ccc123-45bb-67aa.p12'
certificatePassword = 'Atlantis-1234'
Сериализуйте изменения:
/usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client/
``
Откройте файл конфигурации sberbank.ini
:
nano /usr/local/etc/lanbilling/phpclient/client/sberbank.ini
``
Укажите данные:
Идентификатор клиента — его выдают сотрудники Сбербанка:
memberId = '000001'
ClientID и ClientSecret из личного кабинета Sber API Registry:
clientId = 'ccc123-45bb-67aa'
clientSecret = '976fac54-d569-4026-b75c-2157a19a272d'
Адреса для создания заказа — оставьте значения по умолчанию:
tokenURL = 'https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth'
qrURL = 'https://mc.api.sberbank.ru/prod/qr/order/v3/creation'
scope = 'https://api.sberbank.ru/qr/order.create'
Идентификатор терминала — его выдают сотрудники Сбербанка:
tid = '10266753'
Путь к контейнеру с сертификатами безопасности и пароль к нему:
certificatePath = '/home/certificate_ccc123-45bb-67aa.p12'
certificatePassword = 'Atlantis-1234'
Сериализуйте изменения:
/usr/local/sbin/lbwebcfg -y client /usr/local/etc/lanbilling/phpclient/client/
``
Проведите платежи, используя реквизиты тестовых карт. Данные тестовых карт узнайте у сотрудников СберБанка.
В качестве параметра «Cardholder name» нужно использовать не менее двух слов, набранных латинскими буквами. Например, ALEXEY ALEXEEV.
Карты с параметрами «veres=y», «pares=y» или «pares=a» используют технологию «3-D Secure». Для них понадобится код на странице ACS: 12345678.
Есть вопросы по документации? Пожалуйста, напишите их