Просмотр Исходного

{info}При интеграции со Сбербанк "Единый платежный сервис", эта платежная система соответствует следующим протоколам предлагаемым Сбербанком и его агентами:
* Протокол №2 "Описание протокола информационного взаимодействия по on-line запросам ЕПС к серверу Клиента №2"
* Приложение_16_(прот_2).docx

Так же по этому протоколу работает платежная система "Расчетные Решения" (сайты www.nbcouec.ru и nko-rr.ru):
* Порядок_взаимодействия_с_Получателем_тип_Б_004_от_26.09.2017.pdf
* Порядок_взаимодействия_с_Получателем_тип_Б_005_от_03.11.2017.pdf{info}

{toc}

h1. Настройка работы Сбербанк (ОСМП)

# Добавьте IP-адреса Сбербанка в список разрешенных и проведите прочие общие настройки платежных систем по статье "[Платежные системы. Общее|CarbonBilling:Платежные системы. Общее]"
# Передайте адрес обработчика платежей Сбербанку зависит от используемого протокола, *http* или *https*:
#* *http*: [http://168.254.14.44:1444/sbrf.php]
#* *https*: [https://169.254.14.43:1443/sbrf.php]
Адреса _168.254.14.44_ и _169.254.14.43_ замените на адрес биллинга, по которому он доступен из сети интернет.
# Если используется SSL:
#- Создайте сертификаты по статье [Настройка SSL сертификатов платежных систем]
#- Отправьте клиентский сертификат контактному лицу со стороны платежной системы.

{info}Описание протокола ОСМП можно скачать по адресу:
{code}
http://168.254.14.44:1444/osmp.pdf
{code}
Адрес _168.254.14.44_ также замените на внешний адрес биллинга{info}

h1. Настройка со стороны Сбербанка

В анкете от Сбербанка необходимо указать следующие настройки:
* *Наличие BASIC-авторизации*: Нет
* *Порт*: 1443
* *Метод передачи данных*: POST
* *Использование MD5*: Нет
* *Тип SSL-соединения*: Двустороннее

h1. Прохождение тестов Сбербанка

* В некоторых случаях при интеграции Сбербанк генерирует документ под конкретного клиента, где клиент указывает все настройки (адрес обработчика, версию TLS, выбор протокола и т.д.). В этом же документе есть вкладка "Данные для подключения", где нужно выбрать тип SSL-соединения - односторонее или двустороннее. При выборе двустороннего типа также предлагается загрузить либо сертификат (.cer), либо хранилище сертификата (.pfx). В случае, если по .cer не получается соединиться и возникает ошибка handshake, рекомендуется выбрать тип "Хранилище сертификатов" - после этого автотесты Сбербанка проходят.
* Если требуется использовать односторонний SSL, нужно указать путь к обработчику с односторонней проверкой: https://<IP биллинга>:2443/sbrf.php
* Также есть нагрузочное тестирование. Если сервер не очень мощный, большое кол-во оплат может не проходить. В этом случае нужно, чтобы все пользователи вышли из биллинга. После выхода проходит 100% оплат.


h1. XSD-схемы ответов на запросы

В анкете отправляемой в Сбербанк, на вопрос "XSD-схемы ответов на запросы" скоприруйте следующий текст:
{code}<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:elementname="response">
<xs:complexType>
<xs:sequence>
<xs:elementname="osmp_txn_id" type="xs:string"></xs:element>
<xs:elementname="result" type="xs:string"></xs:element>
<xs:elementname="prv_txn" type="xs:int"></xs:element>
<xs:elementname="sum" type="xs:double"></xs:element>
<xs:elementname="fio" type="xs:string"></xs:element>
<xs:elementname="balance" type="xs:double"></xs:element>
<xs:elementname="recsum" type="xs:double"></xs:element>
<xs:elementname="minsum" type="xs:double"></xs:element>
<xs:elementname="comment" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>{code}
Но часть полей может отсутствовать, в зависимости от настроек биллинга и проводимой операции (CHECK или PAY), например:
* В ответе на check будут recsum, balance и fio, а в ответе на PAY их не будет.
* В ответе на PAY будут prv_txn и sum, в ответе на CHECK их не будет.

{warning}
Обработчик биллинга не поддерживает Basic-авторизацию.
{warning}

h2. Параметры запросов платежной системы

|| Параметр || Значение \\ || Назначение || Примечание || check || payment ||
| *command* | Возможные значения: check, pay. | Определяет тип запроса | check -- поиск Плательщика (проверка идентификатора);\\
payment -- создание платёжной транзакции | + | + |
| *ACCOUNT* | Строка (определяется сценарием платежа) | Лицевой счет Плательщика | | + | + |
| *sum* | Число | Сумма платежа | Разделитель “.” (точка) | + | + |
| *txn_id* | Число (содержит только цифры, длина максимум 20 знаков) | Идентификатор платежной транзакции | Положительное длинное целое число. Генерируется платёжной системой и используется для идентификации платёжных транзакций. | + | + |
| *txn_date* | Дата и время | Дата и время операции в платежной системе | Дата и время операции в платежной системе (формат ГГГГММДДЧЧММСС, часовой пояс всегда MCK UTC+3) | \- | + |
Пример проверки наличия абонента с номером договора TEST
{code}http://ip-биллинга:1444/sbrf.php?command=check&txn_id=1&account=TEST&sum=10.00{code}