Приём платежей с помощью эквайринга «СберБанк»

Чтобы ваши абоненты могли оплачивать услуги в личном кабинете с помощью эквайринга от СберБанка, выполните настройку.

  1. Личные кабинеты в Сбербанке

  2. Административный интерфейс LANBilling

  3. Сертификаты НУЦ Минцифры России

  4. Скрипт для автоматических платежей sber_recurrent_payment.py

  5. Настроить систему в зависимости от платёжного шлюза

  6. Проверка взаимодействия

Личные кабинеты в Сбербанке

Личный кабинет СберБизнес

Оставьте заявку на подключение на сайте. Дождитесь, пока сотрудники предоставят вам информацию.

В личном кабинете настройте параметры callback-уведомлений:

  • Тип callback-а — Статический
  • Операции — Успешное списание, Отмены, Возврат

image

Личный кабинет Sber API

Зарегистрируйте приложение в личном кабинете Sber API. Получите необходимые данные для дальнейшей настройки:

  • ClientID
  • ClientSecret
  • Контейнер с сертификатами безопасности — сохраните его на ваш сервер. Путь к этому контейнеру потребуется указать при настройке.

Административный интерфейс LANBilling

Создать профиль менеджера для ВПС

Создайте профиль для платёжной системы в LANBilling.

image

Задать настройки ВПС

  1. Перейдите в раздел «Настройки» — «Настройки ВПС».

    image

  1. Нажмите «Добавить».

    image
  2. Выберите профиль менеджера, созданный ранее. Также выберите оператора, для которого будет действовать ВПС.

    Вы можете настроить несколько экземпляров одной платёжной системы. Для каждой из них пара менеджер/оператор должна быть уникальной.

  3. В поле «ВПС» выберите «Сбербанк». Появятся расширенные настройки этой платёжной системы.

    image

    Некоторые поля заполнятся автоматически. Как правило, их не нужно редактировать — это настройки на стороне платёжной системы, которые редко меняются.

    • URL для получения OAUTH-токена доступаhttps://mc.api.sberbank.ru:443/prod/tokens/v3/oauth
    • URL для создания заказа при оплате СБПhttps://mc.api.sberbank.ru:443/prod/qr/order/v3/creation
    • URL области видимости для создания заказа при оплате СБП (scope)https://api.sberbank.ru/qr/order.create
  4. Введите комментарий. Это обязательное поле. Если вы используете несколько экземпляров одной ВПС, комментарий позволит вам отличать их друг от друга.

    image
  5. В зависимости от того, какой платёжный шлюз вы будете использовать, укажите URL шлюза:

    • Старый шлюз (securepayments):

      • URL для тестовой среды — https://3dsec.sberbank.ru/payment/rest/
      • URL для промышленной среды — https://securepayments.sberbank.ru/payment/rest/
    • Новый шлюз (ecommerce):

      • установите флаг «Использовать платёжный шлюз ecommerce»,
      • укажите ссылку:
        • URL для тестовой среды — https://ecomtest.sberbank.ru/ecomm/gw/partner/api/v1/register.do
        • URL для промышленной среды — https://ecommerce.sberbank.ru/ecomm/gw/partner/api/v1/register.do
    image
  6. Введите URL, на которые система будет перенаправлять клиента при успешной и неуспешной оплате.

    image
  7. Укажите логин и пароль, полученные при подключении к платёжному шлюзу.

    image
  8. Код валюты (по ISO 4217) — по умолчанию используется 643 (рубль). Вы можете указать другую валюту. В договорах оператора, для которого вы настраиваете ВПС, должна быть указана соответствующая валюта.

  9. Язык оформления платёжной страницы (по ISO 639-1) — по умолчанию используется русский язык (значение «ru»).

    image
  10. Описание платежа, отображаемое для пользователя — составьте шаблон описания, которое увидит ваш клиент, когда будет пополнять баланс. В шаблоне можно использовать переменные:

    • {amount} — сумма платежа
    • {agrmid} — идентификатор договора
    • {agrmnum} — номер договора
    • {email} — email клиента
    • {mobile} — мобильный телефон клиента
    • {agrnums} — номера договоров (если оплата по нескольким договорам)
    • {currency} — валюта (берется из параметра currency)

    Пример.

    В настройках задан шаблон описания: Оплата {amount} {currency} по договору {agrnum}

    При оплате пользователь увидит свои данные: Оплата 2 500 руб. по договору Contract_1

  11. Единицы измерения товара — по умолчанию используется единица измерения «шт».

  12. Минимальный размер автоплатежа и Максимальный размер автоплатежа — если вы работаете с автоплатежами, можно задать ограничения по сумме автооплаты.

  13. Минимальный размер платежа в личном кабинете — позволяет задать минимальную сумму, на которую ваши абоненты могут пополнить баланс в личном кабинете. Если не хотите использовать это ограничение, укажите значение 0.

  14. Наименование товара — введите наименование, которое будет использоваться при оплате СБП.

    image
  15. Идентификаторы, присваиваемые банком вашей организации:

    • Идентификатор партнёра (MemberID)
    • Идентификатор клиента (ClientID)
    • Секрет клиента (ClientSecret)
    • Идентификатор терминала
    image
  16. Параметры сертификатов, полученных при регистрации в Sber API:

    • Полный путь к сертификату
    • Пароль от сертификата
    • Полный путь к ключу сертификата
    image
  17. Возможность подключать автоплатежи — позволяет вашим клиентам подключать автооплату в личном кабинете. По умолчанию возможность включена.

  18. Использовать обычную оплату — возможность использовать обычную оплату картой (не СБП). По умолчанию флаг установлен. Если хотите использовать только способ оплаты «СБП», снимите флаг.

  19. Использовать оплату по СБП — по умолчанию флаг установлен. Если хотите использовать только обычный способ оплаты картой, снимите флаг.

    image
  20. Тип оплаты (признак способа расчёта) — выберите признак, который будет присваиваться платежам:

    • Полная предварительная оплата до момента передачи предмета расчета
    • Частичная предварительная оплата до момента передачи предмета расчета
    • Аванс
    • Полная оплата в момент передачи предмета расчета
  21. Тип оплачиваемой позиции (признак предмета расчёта) — выберите предмет расчёта, который будет присваиваться платежам:

    • Платёж
    • Товар
    • Работа
    • Услуга
    • Иной предмет расчёта
    image
  22. Сохраните настройки ВПС.

    image

Сертификаты НУЦ Минцифры России

Действия различаются для разных ОС.

  1. Создайте каталог:

    mkdir /usr/local/share/ca-certificates/sber/
    

    ``

  2. Скачайте два сертификата:

    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
    

    ``

    Подробнее о сертификатах для Linux — в документации Сбербанка.

  3. Обновите хранилище сертификатов:

    update-ca-certificates -v
    

    ``

    Ответ системы при успешном добавлении:

    2 added, 0 removed; done.
    Running hooks in /etc/ca-certificates/update.d...
    

    ``

  4. Проверьте, что сертификаты валидны — заверены центром сертификации. Сделать это можно двумя способами.

    • С помощью wget — при проверке ответ не должен быть пустым.

      wget -qS —spider —max-redirect=0 https://3dsec.sberbank.ru/payment/rest/
      
      
      
    • С помощью curl — при проверке не должна возвращаться ошибка.

      curl https://3dsec.sberbank.ru/payment/webservices/merchant-ws?wsdl
      
      
      
  1. Убедитесь, что существует каталог /etc/pki/ca-trust/source/anchors/.

  2. Скачайте два сертификата:

    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
    

    ``

    Подробнее о сертификатах для Linux — в документации Сбербанка.

  3. Обновите хранилище сертификатов:

    update-ca-trust force-enable
    

    ``

    Ответ системы при успешном добавлении:

    2 added, 0 removed; done.
    Running hooks in /etc/ca-certificates/update.d...
    

    ``

  4. Проверьте, что сертификаты валидны — заверены центром сертификации. Сделать это можно двумя способами.

    • С помощью wget — при проверке ответ не должен быть пустым.

      wget -qS —spider —max-redirect=0 https://3dsec.sberbank.ru/payment/rest/
      
      
      
    • С помощью curl — при проверке не должна возвращаться ошибка.

      curl https://3dsec.sberbank.ru/payment/webservices/merchant-ws?wsdl
      
      
      

Скрипт для автоматических платежей sber_recurrent_payment.py

Выполните эти шаги, если вы работаете с автоплатежами.

  1. Скопируйте скрипт sber_recurrent_payment.py в директорию /usr/local/billing/pymodules/:

    cp /usr/local/billing/payments/sber_acq/sber_recurrent_payment.py /usr/local/billing/pymodules/
    

    ``

  2. Укажите в файле настройки доступа. Пример:

    MANAGER = 'super_pay'
    PASSWORD = '12345'
    OPER_ID = 1
    

    ``

  3. Перезапустите модуль LBcore. Команды различаются в разных ОС.

    systemctl restart lbcore
    
    service lbcore restart
    

Настроить систему в зависимости от платёжного шлюза

Настройки для нового платёжного шлюза (ecommerce)

Callback-скрипт sber_acq.cgi (ecommerce)

Callback-скрипт нужен, чтобы фиксировать в LANBilling результаты оплат. Он обрабатывает запросы от платёжной системы — в них содержится информация об операциях. На основании этих данных скрипт создаёт платежи в биллинге.

Скрипт sber_acq.cgi используется для работы нового платёжного шлюза (ecommerce). Убедитесь, что в настройках ВПС в административном интерфейсе установлен флаг «Использовать платёжный шлюз ecommerce».

Настройка различается для разных ОС.

  1. Убедитесь, что установлен PHP 7, а также пакеты perl-cgi, perl-JSON и perl-soap-lite.

  2. Скопируйте sber_acq.cgi в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/sber_acq/sber_acq.cgi /var/www/cgi-bin/
    

    ``

  3. Укажите в файле настройки доступа.

    # Атрибуты для доступа к LBcore
    my $proto           = 'http';
    my $lbcore_host     = '127.0.0.1';
    my $manager_login   = 'super_pay';
    my $manager_pass    = '12345';
    my $oper_id         = 0;
    

    # Путь к файлу лога my $log_file = "/var/log/billing/weblogs/sber-acq.log";

    ``

    • proto — метод подключения к LBcore. По умолчанию — http. Если настроена работа API по SSL — используйте https.

    • lbcore_host — IP-адрес и порт для подключения к LBcore.

    • manager_login и manager_pass — логин и пароль от профиля платёжной системы в LANBilling.

    • oper_id — ID оператора в биллинге. Укажите идентификатор того же оператора, который задали при настройке в административном интерфейсе.

    • log_file — путь к файлу с логами.

  4. Сделайте скрипт исполняемым:

    chmod +x /var/www/cgi-bin/sber_acq.cgi
    

    ``

  5. Сообщите сотрудникам СберБанка URL скрипта sber_acq.cgi на вашем веб-сервере. Например: https://company.org/cgi-bin/sber_acq.cgi.

  1. Убедитесь, что установлен PHP 7, а также пакеты libsoap-lite-perl, libxml-simple-perl, libcgi-session-perl, libtext-iconv-perl, libjson-perl.

  2. Скопируйте sber_acq.cgi в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/sber_acq/sber_acq.cgi /usr/lib/cgi-bin/
    

    ``

  3. Укажите в файле настройки доступа.

    # Атрибуты для доступа к LBcore
    my $proto           = 'http';
    my $lbcore_host     = '127.0.0.1';
    my $manager_login   = 'super_pay';
    my $manager_pass    = '12345';
    my $oper_id         = 0;
    

    # Путь к файлу лога my $log_file = "/var/log/billing/weblogs/sber-acq.log";

    ``

    • proto — метод подключения к LBcore. По умолчанию — http. Если настроена работа API по SSL — используйте https.

    • lbcore_host — IP-адрес и порт для подключения к LBcore.

    • manager_login и manager_pass — логин и пароль от профиля платёжной системы в LANBilling.

    • oper_id — ID оператора в биллинге. Укажите идентификатор того же оператора, который задали при настройке в административном интерфейсе.

    • log_file — путь к файлу с логами.

  4. Сделайте скрипт исполняемым:

    chmod +x /usr/lib/cgi-bin/sber_acq.cgi
    

    ``

  5. Сообщите сотрудникам СберБанка URL скрипта sber_acq.cgi на вашем веб-сервере. Например: https://company.org/cgi-bin/sber_acq.cgi.

  1. Убедитесь, что установлен PHP 7, а также пакеты p5-IO-SessionData и p5-SOAP-Lite.

  2. Скопируйте sber_acq.cgi в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/sber_acq/sber_acq.cgi /usr/local/www/apache24/cgi-bin/
    

    ``

  3. Укажите в файле настройки доступа.

    # Атрибуты для доступа к LBcore
    my $proto           = 'http';
    my $lbcore_host     = '127.0.0.1';
    my $manager_login   = 'super_pay';
    my $manager_pass    = '12345';
    my $oper_id         = 0;
    

    # Путь к файлу лога my $log_file = "/var/log/billing/weblogs/sber-acq.log";

    ``

    • proto — метод подключения к LBcore. По умолчанию — http. Если настроена работа API по SSL — используйте https.

    • lbcore_host — IP-адрес и порт для подключения к LBcore.

    • manager_login и manager_pass — логин и пароль от профиля платёжной системы в LANBilling.

    • oper_id — ID оператора в биллинге. Укажите идентификатор того же оператора, который задали при настройке в административном интерфейсе.

    • log_file — путь к файлу с логами.

  4. Сделайте скрипт исполняемым:

    chmod +x /usr/local/www/apache24/cgi-bin/sber_acq.cgi
    

    ``

  5. Сообщите сотрудникам СберБанка URL скрипта sber_acq.cgi на вашем веб-сервере. Например: https://company.org/cgi-bin/sber_acq.cgi.

Конфигурационный файл sberbank.ini для ЛК (ecommerce)

Действия различаются для разных ОС.

  1. Откройте файл sberbank.ini:

    nano /etc/lanbilling/phpclient/client/sberbank.ini
    

    ``

  2. Проверьте параметры. Измените их, если нужно.

    [sberbank]
    enabled = true
    ; Идентификатор менеджера, работающего с данной ВПС
    epsManagerId = '14'
    ; Возможность подключать автоплатежи
    allowAutoPayments = true
    ; url для оплаты
    path = 'https://ecomtest.sberbank.ru/ecomm/gw/partner/api/v1/'
    userName = 'lblogin'
    password = '24g2I24geskKgeh'
    currency = 643
    language = 'ru'
    pageView = 'DESKTOP'
    sessionTimeoutSecs = 600
    ; Описание заказа в свободной форме
    description = 'Оплата {amount} {currency} по договорам {agrnums}'
    ; Мера измерения количества товарной позиции
    measure = 'шт'
    ; Тип платежа
    paymentMethod = full_prepayment
    ; Объект платежа
    paymentObject = service
    ; Сумма минимального платежа
    minPaymentAmount = 10
    ; Использование нового шлюза https://ecomtest.sberbank.ru/doc
    useNewGateway = true
    

    ``

    • enabled — укажите true, чтобы включить Сбербанк в личном кабинете абонентов LANBilling.
    • epsManagerId — ID профиля платёжной системы.
    • allowAutoPayments — укажите true, если хотите работать с автоплатежами.
    • path — URL платёжного шлюза:
      • для тестовой среды — https://ecomtest.sberbank.ru/ecomm/gw/partner/api/v1/register.do
      • для промышленной среды — https://ecommerce.sberbank.ru/ecomm/gw/partner/api/v1/register.do
    • userName и password — логин и пароль для доступа к сервису. Их выдают сотрудники СберБанка.
    • currency — код валюты (по ISO 4217). По умолчанию используется рубль. Вы можете указать другую валюту. В договорах оператора, для которого вы настраиваете ВПС, должна быть указана соответствующая валюта.
    • language — язык оформления платёжной страницы (по ISO 639-1). По умолчанию используется русский язык (значение «ru»).
    • description — Описание платежа, отображаемое для пользователя. Составьте шаблон описания, которое увидит ваш клиент, когда будет пополнять баланс.
    • measure — единицы измерения товара. По умолчанию используется единица измерения «шт».
    • paymentMethod — тип оплаты (признак способа расчёта). Укажите признак, который будет присваиваться платежам:
      • full_prepayment — полная предоплата,
      • prepayment — частичная предоплата,
      • advance — аванс,
      • full_payment — полный расчёт. В том числе с учетом аванса или предоплаты.
    • paymentObject — тип оплачиваемой позиции (признак предмета расчёта). Примеры допустимых значений:
      • commodity — товар,
      • service — услуга,
      • job — работа,
      • payment — платеж. Передается, если формируется чек Аванса или Предоплаты,
      • another — иной предмет расчета.
    • minPaymentAmount — минимальный размер платежа в личном кабинете. Если не хотите использовать это ограничение, укажите значение 0.
    • useNewGateway — укажите true.
  1. Сохраните конфигурационный файл. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client/
    

    ``

  1. Откройте файл sberbank.ini:

    nano /usr/local/etc/lanbilling/phpclient/client/sberbank.ini
    

    ``

  2. Проверьте параметры. Измените их, если нужно.

    [sberbank]
    enabled = true
    ; Идентификатор менеджера, работающего с данной ВПС
    epsManagerId = '14'
    ; Возможность подключать автоплатежи
    allowAutoPayments = true
    ; url для оплаты
    path = 'https://ecomtest.sberbank.ru/ecomm/gw/partner/api/v1/'
    userName = 'lblogin'
    password = '24g2I24geskKgeh'
    currency = 643
    language = 'ru'
    pageView = 'DESKTOP'
    sessionTimeoutSecs = 600
    ; Описание заказа в свободной форме
    description = 'Оплата {amount} {currency} по договорам {agrnums}'
    ; Мера измерения количества товарной позиции
    measure = 'шт'
    ; Тип платежа
    paymentMethod = full_prepayment
    ; Объект платежа
    paymentObject = service
    ; Сумма минимального платежа
    minPaymentAmount = 10
    ; Использование нового шлюза https://ecomtest.sberbank.ru/doc
    useNewGateway = true
    

    ``

    • enabled — укажите true, чтобы включить Сбербанк в личном кабинете абонентов LANBilling.
    • epsManagerId — ID профиля платёжной системы.
    • allowAutoPayments — укажите true, если хотите работать с автоплатежами.
    • path — URL платёжного шлюза:
      • для тестовой среды — https://ecomtest.sberbank.ru/ecomm/gw/partner/api/v1/register.do
      • для промышленной среды — https://ecommerce.sberbank.ru/ecomm/gw/partner/api/v1/register.do
    • userName и password — логин и пароль для доступа к сервису. Их выдают сотрудники СберБанка.
    • currency — код валюты (по ISO 4217). По умолчанию используется рубль. Вы можете указать другую валюту. В договорах оператора, для которого вы настраиваете ВПС, должна быть указана соответствующая валюта.
    • language — язык оформления платёжной страницы (по ISO 639-1). По умолчанию используется русский язык (значение «ru»).
    • description — Описание платежа, отображаемое для пользователя. Составьте шаблон описания, которое увидит ваш клиент, когда будет пополнять баланс.
    • measure — единицы измерения товара. По умолчанию используется единица измерения «шт».
    • paymentMethod — тип оплаты (признак способа расчёта). Укажите признак, который будет присваиваться платежам:
      • full_prepayment — полная предоплата,
      • prepayment — частичная предоплата,
      • advance — аванс,
      • full_payment — полный расчёт. В том числе с учетом аванса или предоплаты.
    • paymentObject — тип оплачиваемой позиции (признак предмета расчёта). Примеры допустимых значений:
      • commodity — товар,
      • service — услуга,
      • job — работа,
      • payment — платеж. Передается, если формируется чек Аванса или Предоплаты,
      • another — иной предмет расчета.
    • minPaymentAmount — минимальный размер платежа в личном кабинете. Если не хотите использовать это ограничение, укажите значение 0.
    • useNewGateway — укажите true.
  1. Сохраните конфигурационный файл. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y client /usr/local/etc/lanbilling/phpclient/client/
    

    ``

Оплата по СБП (ecommerce)

Можно предоставить абонентам возможность совершать оплаты по СБП — с помощью банковского приложения на смартфоне. Динамический QR-код привязан к конкретной покупке и содержит в себе её сумму. Такой QR-код не нужно вручную отправлять абонентам — достаточно разместить на сайте платежную форму и подключить оплату через СБП.

Обратите внимание: оплату по СБП не удастся настроить, если сервер, где установлен личный кабинет, работает под управлением Centos 7.

Убедитесь, что корректно настроен скрипт callback-уведомлений sber_acq.cgi.

Задайте необходимые параметры оплаты по СБП в файле конфигурации sberbank.ini.

Команды различаются в зависимости от ОС.

  1. Откройте файл конфигурации sberbank.ini:

    nano /etc/lanbilling/phpclient/client/sberbank.ini
    

    ``

  2. Проверьте параметры. Измените их, если нужно.

    ; Настройки СБП оплаты
    ; Наименование товарной позиции при сбп оплате
    positionName = 'Платёж'
    ; Идентификатор клиента
    memberId = ''
    ; Client ID
    clientId = ''
    ; Client Secret
    clientSecret = ''
    ; url для получения токена доступа
    tokenURL = 'https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth'
    ; url для создания заказа при оплате СБП
    qrURL = 'https://mc.api.sberbank.ru/prod/qr/order/v3/creation'
    ; Область видимости для qrURL
    scope = 'https://api.sberbank.ru/qr/order.create'
    ; Уникальный идентификатор терминала
    tid = ''
    ; Полный путь до сертификата
    certificatePath = ''
    ; Пароль от сертификата
    certificatePassword = ''
    ; Возможность использовать обычную оплату
    useCardPayment = true
    ; Возможность использовать СБП оплату
    useSbpPayment = true
    

    ``

    • positionName — наименование товара при оплате СБП.
    • memberId — идентификатор партнёра, присваиваемый банком вашей организации.
    • clientId — идентификатор клиента, полученный при регистрации приложения в Sber API.
    • clientSecret — секрет, полученный при регистрации приложения в Sber API.
    • tid — идентификатор терминала, присваиваемый банком вашей организации.
    • certificatePath и certificatePassword — путь к контейнеру с сертификатами безопасности, полученными при регистрации приложения в Sber API, и пароль к нему.
    • useCardPayment — возможность использовать в ЛК обычную оплату картой (не СБП). По умолчанию включена. Если хотите использовать только способ оплаты «СБП», укажите false.
    • useSbpPayment — укажите true, чтобы вашим клиентам были доступны оплаты по СБП.

    Параметры tokenURL, qrURL и scope менять не нужно.

  3. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client/
    

    ``

  1. Откройте файл конфигурации sberbank.ini:

    nano /usr/local/etc/lanbilling/phpclient/client/sberbank.ini
    

    ``

  2. Проверьте параметры. Измените их, если нужно.

    ; Настройки СБП оплаты
    ; Наименование товарной позиции при сбп оплате
    positionName = 'Платёж'
    ; Идентификатор клиента
    memberId = ''
    ; Client ID
    clientId = ''
    ; Client Secret
    clientSecret = ''
    ; url для получения токена доступа
    tokenURL = 'https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth'
    ; url для создания заказа при оплате СБП
    qrURL = 'https://mc.api.sberbank.ru/prod/qr/order/v3/creation'
    ; Область видимости для qrURL
    scope = 'https://api.sberbank.ru/qr/order.create'
    ; Уникальный идентификатор терминала
    tid = ''
    ; Полный путь до сертификата
    certificatePath = ''
    ; Пароль от сертификата
    certificatePassword = ''
    ; Возможность использовать обычную оплату
    useCardPayment = true
    ; Возможность использовать СБП оплату
    useSbpPayment = true
    

    ``

    • positionName — наименование товара при оплате СБП.
    • memberId — идентификатор партнёра, присваиваемый банком вашей организации.
    • clientId — идентификатор клиента, полученный при регистрации приложения в Sber API.
    • clientSecret — секрет, полученный при регистрации приложения в Sber API.
    • tid — идентификатор терминала, присваиваемый банком вашей организации.
    • certificatePath и certificatePassword — путь к контейнеру с сертификатами безопасности, полученными при регистрации приложения в Sber API, и пароль к нему.
    • useCardPayment — возможность использовать в ЛК обычную оплату картой (не СБП). По умолчанию включена. Если хотите использовать только способ оплаты «СБП», укажите false.
    • useSbpPayment — укажите true, чтобы вашим клиентам были доступны оплаты по СБП.

    Параметры tokenURL, qrURL и scope менять не нужно.

  3. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y client /usr/local/etc/lanbilling/phpclient/client/
    

    ``

Настройки для старого платёжного шлюза (securepayments)

Callback-скрипт sber_acq_3dsec.cgi (securepayments)

Callback-скрипт нужен, чтобы фиксировать в LANBilling результаты оплат. Он обрабатывает запросы от платёжной системы — в них содержится информация об операциях. На основании этих данных скрипт создаёт платежи в биллинге.

Скрипт sber_acq_3dsec.cgi используется для оплат картой через старый платёжный шлюз (securepayments). Убедитесь, что в настройках ВПС в административном интерфейсе снят флаг «Использовать платёжный шлюз ecommerce».

Настройка различается для разных ОС.

  1. Убедитесь, что установлен PHP 7, а также пакеты perl-cgi, perl-JSON и perl-soap-lite.

  2. Скопируйте sber_acq_3dsec.cgi в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/sber_acq/sber_acq_3dsec.cgi /var/www/cgi-bin/
    

    ``

  3. Укажите в файле настройки доступа.

    # Атрибуты для доступа к LBcore
    my $proto           = 'http';
    my $lbcore_host     = '127.0.0.1';
    my $manager_login   = 'super_pay';
    my $manager_pass    = '12345';
    my $oper_id         = 0;
    

    # Путь к файлу лога my $log_file = "/var/log/billing/weblogs/sber-acq.log";

    ``

    • proto — метод подключения к LBcore. По умолчанию — http. Если настроена работа API по SSL — используйте https.

    • lbcore_host — IP-адрес и порт для подключения к LBcore.

    • manager_login и manager_pass — логин и пароль от профиля платёжной системы в LANBilling.

    • oper_id — ID оператора в биллинге. Укажите идентификатор того же оператора, который задали при настройке в административном интерфейсе.

    • log_file — путь к файлу с логами.

  4. Сделайте скрипт исполняемым:

    chmod +x /var/www/cgi-bin/sber_acq_3dsec.cgi
    

    ``

  5. Сообщите сотрудникам СберБанка URL скрипта sber_acq_3dsec.cgi на вашем веб-сервере. Например: https://company.org/cgi-bin/sber_acq_3dsec.cgi.

  1. Убедитесь, что установлен PHP 7, а также пакеты libsoap-lite-perl, libxml-simple-perl, libcgi-session-perl, libtext-iconv-perl, libjson-perl.

  2. Скопируйте sber_acq_3dsec.cgi в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/sber_acq/sber_acq_3dsec.cgi /usr/lib/cgi-bin/
    

    ``

  3. Укажите в файле настройки доступа.

    # Атрибуты для доступа к LBcore
    my $proto           = 'http';
    my $lbcore_host     = '127.0.0.1';
    my $manager_login   = 'super_pay';
    my $manager_pass    = '12345';
    my $oper_id         = 0;
    

    # Путь к файлу лога my $log_file = "/var/log/billing/weblogs/sber-acq.log";

    ``

    • proto — метод подключения к LBcore. По умолчанию — http. Если настроена работа API по SSL — используйте https.

    • lbcore_host — IP-адрес и порт для подключения к LBcore.

    • manager_login и manager_pass — логин и пароль от профиля платёжной системы в LANBilling.

    • oper_id — ID оператора в биллинге. Укажите идентификатор того же оператора, который задали при настройке в административном интерфейсе.

    • log_file — путь к файлу с логами.

  4. Сделайте скрипт исполняемым:

    chmod +x /usr/lib/cgi-bin/sber_acq_3dsec.cgi
    

    ``

  5. Сообщите сотрудникам СберБанка URL скрипта sber_acq_3dsec.cgi на вашем веб-сервере. Например: https://company.org/cgi-bin/sber_acq_3dsec.cgi.

  1. Убедитесь, что установлен PHP 7, а также пакеты p5-IO-SessionData и p5-SOAP-Lite.

  2. Скопируйте скрипт callback-уведомлений sber_acq_3dsec.cgi в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/sber_acq/sber_acq_3dsec.cgi /usr/local/www/apache24/cgi-bin/
    

    ``

  3. Укажите в файле настройки доступа.

    # Атрибуты для доступа к LBcore
    my $proto           = 'http';
    my $lbcore_host     = '127.0.0.1';
    my $manager_login   = 'super_pay';
    my $manager_pass    = '12345';
    my $oper_id         = 0;
    

    # Путь к файлу лога my $log_file = "/var/log/billing/weblogs/sber-acq.log";

    ``

    • proto — метод подключения к LBcore. По умолчанию — http. Если настроена работа API по SSL — используйте https.

    • lbcore_host — IP-адрес и порт для подключения к LBcore.

    • manager_login и manager_pass — логин и пароль от профиля платёжной системы в LANBilling.

    • oper_id — ID оператора в биллинге. Укажите идентификатор того же оператора, который задали при настройке в административном интерфейсе.

    • log_file — путь к файлу с логами.

  4. Сделайте скрипт исполняемым:

    chmod +x /usr/local/www/apache24/cgi-bin/sber_acq_3dsec.cgi
    

    ``

  5. Сообщите сотрудникам СберБанка URL скрипта sber_acq_3dsec.cgi на вашем веб-сервере. Например: https://company.org/cgi-bin/sber_acq_3dsec.cgi.

Конфигурационный файл sberbank.ini для ЛК (securepayments)

Действия различаются для разных ОС.

  1. Откройте файл конфигурации sberbank.ini:

    nano /etc/lanbilling/phpclient/client/sberbank.ini
    

    ``

  2. Включите платёжную систему в личном кабинете абонентов LANBilling.

    [sberbank]
    enabled = false
    ; Идентификатор менеджера, работающего с данной ВПС
    epsManagerId = ''
    ; Возможность подключать автоплатежи
    allowAutoPayments = true
    ; url для оплаты
    path = 'https://3dsec.sberbank.ru/payment/rest/'
    userName = 'lblogin'
    password = '24g2I24geskKgeh'
    currency = 643
    ; Язык в кодировке ISO 639-1 (ru, en).
    language = 'ru'
    pageView = 'DESKTOP'
    sessionTimeoutSecs = 600
    ; Описание заказа в свободной форме
    description = 'Оплата {amount} {currency} по договорам {agrnums}'
    ; Мера измерения количества товарной позиции
    measure = 'шт'
    ; Тип платежа
    paymentMethod = 1
    ; Объект платежа
    paymentObject = 10
    ; Сумма минимального платежа
    minPaymentAmount = 10
    ; Использование нового шлюза https://ecomtest.sberbank.ru/doc
    useNewGateway = false
    

    ``

    • enabled — укажите true, чтобы включить Сбербанк в личном кабинете абонентов LANBilling.
    • epsManagerId — ID профиля платёжной системы.
    • allowAutoPayments — укажите true, если хотите работать с автоплатежами.
    • path — URL платёжного шлюза:
      • для тестовой среды — https://3dsec.sberbank.ru/payment/rest/
      • для промышленной среды — https://securepayments.sberbank.ru/payment/rest/
    • userName и password — логин и пароль для доступа к сервису. Их выдают сотрудники СберБанка.
    • currency — код валюты (по ISO 4217). По умолчанию используется рубль. Вы можете указать другую валюту. В договорах оператора, для которого вы настраиваете ВПС, должна быть указана соответствующая валюта.
    • language — язык оформления платёжной страницы (по ISO 639-1). По умолчанию используется русский язык (значение «ru»).
    • description — Описание платежа, отображаемое для пользователя. Составьте шаблон описания, которое увидит ваш клиент, когда будет пополнять баланс.
    • measure — единицы измерения товара. По умолчанию используется единица измерения «шт».
    • paymentMethod — тип оплаты (признак способа расчёта). Укажите признак, который будет присваиваться платежам:
      • 1 — полная предварительная оплата до момента передачи предмета расчета,
      • 2 — частичная предварительная оплата до момента передачи предмета расчета,
      • 3 — аванс,
      • 3 — полная оплата в момент передачи предмета расчёта.
    • paymentObject — тип оплачиваемой позиции (признак предмета расчёта). Примеры допустимых значений:
      • 1 — товар,
      • 3 — работа,
      • 4 — услуга,
      • 10 — платеж. Передается, если формируется чек Аванса или Предоплаты,
      • 13 — иной предмет расчета.
    • minPaymentAmount — минимальный размер платежа в личном кабинете. Если не хотите использовать это ограничение, укажите значение 0.
    • useNewGateway — укажите false.
  1. Сохраните конфигурационный файл. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client/
    

    ``

  1. Откройте файл конфигурации sberbank.ini:

    nano /usr/local/etc/lanbilling/phpclient/client/sberbank.ini
    

    ``

  2. Включите платёжную систему в личном кабинете абонентов LANBilling.

    [sberbank]
    enabled = false
    ; Идентификатор менеджера, работающего с данной ВПС
    epsManagerId = ''
    ; Возможность подключать автоплатежи
    allowAutoPayments = true
    ; url для оплаты
    path = 'https://3dsec.sberbank.ru/payment/rest/'
    userName = 'lblogin'
    password = '24g2I24geskKgeh'
    currency = 643
    ; Язык в кодировке ISO 639-1 (ru, en).
    language = 'ru'
    pageView = 'DESKTOP'
    sessionTimeoutSecs = 600
    ; Описание заказа в свободной форме
    description = 'Оплата {amount} {currency} по договорам {agrnums}'
    ; Мера измерения количества товарной позиции
    measure = 'шт'
    ; Тип платежа
    paymentMethod = 1
    ; Объект платежа
    paymentObject = 10
    ; Сумма минимального платежа
    minPaymentAmount = 10
    ; Использование нового шлюза https://ecomtest.sberbank.ru/doc
    useNewGateway = false
    

    ``

    • enabled — укажите true, чтобы включить Сбербанк в личном кабинете абонентов LANBilling.
    • epsManagerId — ID профиля платёжной системы.
    • allowAutoPayments — укажите true, если хотите работать с автоплатежами.
    • path — URL платёжного шлюза:
      • для тестовой среды — https://3dsec.sberbank.ru/payment/rest/
      • для промышленной среды — https://securepayments.sberbank.ru/payment/rest/
    • userName и password — логин и пароль для доступа к сервису. Их выдают сотрудники СберБанка.
    • currency — код валюты (по ISO 4217). По умолчанию используется рубль. Вы можете указать другую валюту. В договорах оператора, для которого вы настраиваете ВПС, должна быть указана соответствующая валюта.
    • language — язык оформления платёжной страницы (по ISO 639-1). По умолчанию используется русский язык (значение «ru»).
    • description — Описание платежа, отображаемое для пользователя. Составьте шаблон описания, которое увидит ваш клиент, когда будет пополнять баланс.
    • measure — единицы измерения товара. По умолчанию используется единица измерения «шт».
    • paymentMethod — тип оплаты (признак способа расчёта). Укажите признак, который будет присваиваться платежам:
      • 1 — полная предварительная оплата до момента передачи предмета расчета,
      • 2 — частичная предварительная оплата до момента передачи предмета расчета,
      • 3 — аванс,
      • 3 — полная оплата в момент передачи предмета расчёта.
    • paymentObject — тип оплачиваемой позиции (признак предмета расчёта). Примеры допустимых значений:
      • 1 — товар,
      • 3 — работа,
      • 4 — услуга,
      • 10 — платеж. Передается, если формируется чек Аванса или Предоплаты,
      • 13 — иной предмет расчета.
    • minPaymentAmount — минимальный размер платежа в личном кабинете. Если не хотите использовать это ограничение, укажите значение 0.
    • useNewGateway — укажите false.
  1. Сохраните конфигурационный файл. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y client /usr/local/etc/lanbilling/phpclient/client/
    

    ``

Оплата по СБП (securepayments)
Настроить сертификаты для СБП
  1. Измените настройки 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
    

    ``

  2. Извлеките из контейнера корневые сертификаты, полученные при регистрации в Sber API. Они находятся в файле cacerts.cer. Введите команду с учётом расположения и названия вашего контейнера:

    openssl pkcs12 -in /home/certificate_ccc123-45bb-67aa.p12 -cacerts -nokeys -out cacerts.cer
    

    ``

  3. Переименуйте полученный файл в «cacerts.crt»:

    mv cacerts.cer cacerts.crt
    

    ``

    Дальнейшие действия различаются в зависимости от ОС.

  1. Добавьте файл с корневыми сертификатами в хранилище:

    cp cacerts.crt /usr/local/share/ca-certificates/
    

    ``

  2. Обновите хранилище:

    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
  1. Добавьте файл с корневыми сертификатами в хранилище:

    cp cacerts.crt /etc/pki/ca-trust/source/anchors/
    

    ``

  2. Обновите хранилище:

    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

Команды различаются для разных ОС.

  1. Скопируйте скрипт callback-уведомлений sber_qr.py в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/sber_acq/sber_qr.py /var/www/cgi-bin/
    

    ``

  2. Укажите в файле настройки доступа.

    # Атрибуты для доступа к LBcore
    HOST = '127.0.0.1'
    PORT = 34012
    MANAGER_LOGIN = 'super_pay'
    MANAGER_PASS = '12345'
    

    # Путь к лог-файлу с историей LOG_FILE = "/var/log/billing/sber_qr.log"

    ``

    • HOST и PORT — IP-адрес и порт для подключения к LBcore.
    • MANAGER_LOGIN и MANAGER_PASS — логин и пароль профиля платёжной системы.
    • LOG_FILE — путь к файлу с логами.
  3. Сделайте скрипт исполняемым:

    chmod +x /var/www/cgi-bin/sber_qr.py
    

    ``

  1. Скопируйте скрипт callback-уведомлений sber_qr.py в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/sber_acq/sber_qr.py /usr/lib/cgi-bin/
    

    ``

  2. Укажите в файле настройки доступа.

    # Атрибуты для доступа к LBcore
    HOST = '127.0.0.1'
    PORT = 34012
    MANAGER_LOGIN = 'super_pay'
    MANAGER_PASS = '12345'
    

    # Путь к лог-файлу с историей LOG_FILE = "/var/log/billing/sber_qr.log"

    ``

    • HOST и PORT — IP-адрес и порт для подключения к LBcore.
    • MANAGER_LOGIN и MANAGER_PASS — логин и пароль профиля платёжной системы.
    • LOG_FILE — путь к файлу с логами.
  3. Сделайте скрипт исполняемым:

    chmod +x /usr/lib/cgi-bin/sber_qr.py
    

    ``

  1. Скопируйте скрипт callback-уведомлений sber_qr.py в директорию исполняемых скриптов вашего веб-сервера:

    cp /usr/local/billing/payments/sber_acq/sber_qr.py /usr/local/www/apache24/cgi-bin/
    

    ``

  2. Укажите в файле настройки доступа.

    # Атрибуты для доступа к LBcore
    HOST = '127.0.0.1'
    PORT = 34012
    MANAGER_LOGIN = 'super_pay'
    MANAGER_PASS = '12345'
    

    # Путь к лог-файлу с историей LOG_FILE = "/var/log/billing/sber_qr.log"

    ``

    • HOST и PORT — IP-адрес и порт для подключения к LBcore.
    • MANAGER_LOGIN и MANAGER_PASS — логин и пароль профиля платёжной системы.
    • LOG_FILE — путь к файлу с логами.
  3. Сделайте скрипт исполняемым:

    chmod +x /usr/local/www/apache24/cgi-bin/sber_qr.py
    

    ``

Настроить конфигурационный файл sberbank.ini для СБП
  1. Откройте файл конфигурации sberbank.ini:

    nano /etc/lanbilling/phpclient/client/sberbank.ini
    

    ``

  2. Проверьте параметры. Измените их, если нужно.

    ; Настройки СБП оплаты
    ; Наименование товарной позиции при сбп оплате
    positionName = 'Платёж'
    ; Идентификатор клиента
    memberId = ''
    ; Client ID
    clientId = ''
    ; Client Secret
    clientSecret = ''
    ; url для получения токена доступа
    tokenURL = 'https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth'
    ; url для создания заказа при оплате СБП
    qrURL = 'https://mc.api.sberbank.ru/prod/qr/order/v3/creation'
    ; Область видимости для qrURL
    scope = 'https://api.sberbank.ru/qr/order.create'
    ; Уникальный идентификатор терминала
    tid = ''
    ; Полный путь до сертификата
    certificatePath = ''
    ; Пароль от сертификата
    certificatePassword = ''
    ; Возможность использовать обычную оплату
    useCardPayment = true
    ; Возможность использовать СБП оплату
    useSbpPayment = true
    

    ``

    • positionName — наименование товара при оплате СБП.
    • memberId — идентификатор партнёра, присваиваемый банком вашей организации.
    • clientId — идентификатор клиента, полученный при регистрации приложения в Sber API.
    • clientSecret — секрет, полученный при регистрации приложения в Sber API.
    • tid — идентификатор терминала, присваиваемый банком вашей организации.
    • certificatePath и certificatePassword — путь к контейнеру с сертификатами безопасности, полученными при регистрации приложения в Sber API, и пароль к нему.
    • useCardPayment — возможность использовать в ЛК обычную оплату картой (не СБП). По умолчанию включена. Если хотите использовать только способ оплаты «СБП», укажите false.
    • useSbpPayment — укажите true, чтобы вашим клиентам были доступны оплаты по СБП.

    Параметры tokenURL, qrURL и scope менять не нужно.

  3. Сериализуйте изменения:

    /usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client/
    

    ``

  1. Откройте файл конфигурации sberbank.ini:

    nano /usr/local/etc/lanbilling/phpclient/client/sberbank.ini
    

    ``

  2. Проверьте параметры. Измените их, если нужно.

    ; Настройки СБП оплаты
    ; Наименование товарной позиции при сбп оплате
    positionName = 'Платёж'
    ; Идентификатор клиента
    memberId = ''
    ; Client ID
    clientId = ''
    ; Client Secret
    clientSecret = ''
    ; url для получения токена доступа
    tokenURL = 'https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth'
    ; url для создания заказа при оплате СБП
    qrURL = 'https://mc.api.sberbank.ru/prod/qr/order/v3/creation'
    ; Область видимости для qrURL
    scope = 'https://api.sberbank.ru/qr/order.create'
    ; Уникальный идентификатор терминала
    tid = ''
    ; Полный путь до сертификата
    certificatePath = ''
    ; Пароль от сертификата
    certificatePassword = ''
    ; Возможность использовать обычную оплату
    useCardPayment = true
    ; Возможность использовать СБП оплату
    useSbpPayment = true
    

    ``

    • positionName — наименование товара при оплате СБП.
    • memberId — идентификатор партнёра, присваиваемый банком вашей организации.
    • clientId — идентификатор клиента, полученный при регистрации приложения в Sber API.
    • clientSecret — секрет, полученный при регистрации приложения в Sber API.
    • tid — идентификатор терминала, присваиваемый банком вашей организации.
    • certificatePath и certificatePassword — путь к контейнеру с сертификатами безопасности, полученными при регистрации приложения в Sber API, и пароль к нему.
    • useCardPayment — возможность использовать в ЛК обычную оплату картой (не СБП). По умолчанию включена. Если хотите использовать только способ оплаты «СБП», укажите false.
    • useSbpPayment — укажите true, чтобы вашим клиентам были доступны оплаты по СБП.

    Параметры tokenURL, qrURL и scope менять не нужно.

  3. Сериализуйте изменения:

    /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.