Платежные web-сервисы: Сервис интеграции с платежной системой Sberbank ATM (оплата через терминалы, кассы банка, Сбербанк Онлайн) — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Запрос на проверку состояния счёта плательщика)
Строка 106: Строка 106:
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
 
<response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
<response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     '''<osmp_txn_id>1234567</osmp_txn_id>
+
     <osmp_txn_id>1234567</osmp_txn_id>
 
     <result>0</result>
 
     <result>0</result>
 
     <comment/>
 
     <comment/>
 
     <sum>148139.25</sum>
 
     <sum>148139.25</sum>
     <inn/>
+
     <inn>7701100000</inn>
 
     <rs>111111111111111100000000000000</rs>
 
     <rs>111111111111111100000000000000</rs>
 
     <bik>044525593</bik>
 
     <bik>044525593</bik>
Строка 116: Строка 116:
 
     <name>Фирма-владелец</name>
 
     <name>Фирма-владелец</name>
 
     <bank_name>Тестовый банк</bank_name>
 
     <bank_name>Тестовый банк</bank_name>
 +
    <info>Дата начала тура: 17.04.2017</info>
 +
    <fio>EGOROV I.</fio>
 
</response>
 
</response>
 
</syntaxhighlight>
 
</syntaxhighlight>
Строка 121: Строка 123:
  
 
Возвращаемые значения:
 
Возвращаемые значения:
*'''<osmp_txn_id>''' - номер транзакции в системе Банка, который передается Клиенту в переменной txn_id
+
*'''<osmp_txn_id>''' - Номер транзакции в системе Банка, который передается Клиенту в переменной <code>txn_id</code>.
*'''<result>''' - код результата завершения запроса
+
*'''<result>''' - Код результата завершения запроса.
*'''<comment>''' - необязательный элемент – комментарий завершения операции
+
*'''<comment>''' - Необязательный элемент – комментарий завершения операции.
*'''<sum>''' - сумма платежа. Представляет собой дробное число с точностью до сотых, в качестве разделителя используется «.» (точка).
+
*'''<sum>''' - Сумма платежа. Представляет собой дробное число с точностью до сотых, в качестве разделителя используется «.» (точка).
 
*'''<inn>''' - ИНН Плательщика.
 
*'''<inn>''' - ИНН Плательщика.
*'''<rs>''' - расчётный счёт Плательщика.
+
*'''<rs>''' - Расчётный счёт Плательщика.
 
*'''<bik>''' - БИК Банка Плательщика.
 
*'''<bik>''' - БИК Банка Плательщика.
*'''<ks>''' - кор. счёт Банка Плательщика
+
*'''<ks>''' - Кор. счёт Банка Плательщика.
*'''<name>''' - наименование Плательщика.
+
*'''<name>''' - Наименование Плательщика.
*'''<bank_name>''' - наименование банка Плательщика.
+
*'''<bank_name>''' - Наименование банка Плательщика.
 +
*'''<info>''' - Дополнительная информация.
 +
*'''<fio>''' - Фамилия, имя главного туриста по путёвке.
  
 
Возврат <code><result>0</result></code> на запрос «check» свидетельствует о том, что лицевой счет Плательщика с соответствующим ему номером <code>osmp_txn_id</code> может быть пополнен на сумму, указанную в запросе.
 
Возврат <code><result>0</result></code> на запрос «check» свидетельствует о том, что лицевой счет Плательщика с соответствующим ему номером <code>osmp_txn_id</code> может быть пополнен на сумму, указанную в запросе.

Версия 13:41, 28 октября 2016

Версия статьи от 28-10-2016.

Поддерживаемые версии:
Начиная с 2009.2.20.33


Введение

Данный модуль реализует возможность оплаты путёвок в ПК «Мастер-Web» через терминалы, банкоматы, кассы Сбербанка.
Широкое распространение Сбербанка позволяет предоставить возможность оплаты большому количеству пользователей. Особенно полезным данный модуль может быть туристическим компаниям, ориентированным на работу с частными клиентами.

Установка

Для установки дополнительного модуля Сервис интеграции с платежной системой Sberbank (АТМ) нужно создать директорию SberbankTerminals в каталоге C:/inetpub/wwwroot (корневом каталоге IIS) и выложить туда распакованные файлы из архива
mw-SberbankTerminals-9.2.20.ХХXXX.zip.

Создание виртуального каталога

По умолчанию корневым каталогом IIS является C:/Inetpub/wwwroot. Для создания виртуального каталога для приложения находящегося в этом каталоге нужно выполнить следующие действия:
1 Зайти в Пуск (Start) → Настройки (Settings) → Панель управления (Control Panel) → Администрирование (Administrative Tools)
Панель управления

2 Диспетчер служб IIS
Администрирование - Диспетчер служб IIS

3 В открывшемся дереве каталогов выбрать Web Sites – Default Web Site. В открывшемся списке найти папку, для которой нужно создать виртуальный каталог, кликнуть по ней правой кнопкой мыши и выбрать Преобразовать в приложение
Преобразовать в приложение

4 В открывшемся окне нужно нажать кнопку ОК
Добавить приложение

Подключение к базе данных ПК «Мастер-Тур»

В файле web.config, расположенном в папке SberbankTerminals пропишите необходимые параметры подключения (красным цветом выделены значения, которые необходимо ввести). Строка подключения к базе данных ПК «Мастер-Тур»:
<add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК «Мастер-Тур»;Initial Catalog=название базы данных ПК «Мастер-Тур»;User ID=логин пользователя ПК «Мастер-Тур»;Password=пароль пользователя ПК «Мастер-Тур»"/>

Настройка

Настройки задаются в секции <appSettings> файла web.config приложения SberbankTerminals.

Описание Значение Настройка
1 ISO-код рубля.
Настройка является обязательной!
ISO-код рубля, используемый в ПК «Мастер-Тур».
<add key="RubleCurrencyISOCode" value="RUB"/>
2 Настройка, определяющая дату, на которую должен подбираться курс валют для пересчета суммы к оплате.
  • FixationDate или отсутствие настройки - курс на дату последней фиксации путевки на момент совершения платежа, а если путевка не зафиксирована, то на дату совершения платежа;
  • ConfirmDate — курс на дату последнего подтверждения заявки (если подтверждения путевки еще не было, либо курс на дату подтверждения не заведен, то будет отображаться курс на момент совершения платежа);
  • OrderDate — дата оформления заявки;
  • PaymentDate - курс на дату совершения платежа.
<add key="courseExchangeDate" value="orderdate"/>
3 Определяет тип платежной операции.

Тип платежной операции так же может задаваться в настройке SYSPaymentOperationId в таблице SystemSettings. В таком случае в настройке PaymentOperationId задается название настройки из таблицы SystemSettings.

Обязательная настройка.

Идентификатор типа операции - поле PO_Id из таблицы [PaymentOperations].

Либо название настройки SYSPaymentOperationId из таблицы [SystemSettings].
<add key="PaymentOperationId" value="1" />

Подготовка данных

Проверка заявок и проведение платежа через платежную систему в базу туроператора осуществляется по оформленным путевкам.

Работа в системе

Осуществляется 2 типа запросов:

  • Pay - проведение платежа,
  • Check - проверка состояния счёта Плательщика.

Запрос на проверку состояния счёта плательщика

Для проверки состояния Плательщика, система Банка генерирует запрос следующего вида:

https://localhost/SberbankTerminals/api/Pay?command=check&txn_date=20160815120133&txn_id=1234567&account=DF21100001&sum=10.45

Строка запроса содержит следующие обязательные переменные:

  • command=check – запрос на проверку состояния Плательщика
  • txn_date=20160815120133 – дата учета платежа в системе Банка, которая передаётся в формате ГГГГММДДЧЧММСС.
  • txn_id=1234567 – внутренний номер платежа в системе Банка
  • account=DF21100001 – идентификатор Плательщика в информационной системе Клиента
  • sum=10.45 – сумма к зачислению на лицевой счет Плательщика. Представляет собой дробное число с точностью до сотых, в качестве разделителя используется «.» (точка).

Ответ клиента выглядит следующим образом:

<response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <osmp_txn_id>1234567</osmp_txn_id>
    <result>0</result>
    <comment/>
    <sum>148139.25</sum>
    <inn>7701100000</inn>
    <rs>111111111111111100000000000000</rs>
    <bik>044525593</bik>
    <ks>30101.810.2.00000000593</ks>
    <name>Фирма-владелец</name>
    <bank_name>Тестовый банк</bank_name>
    <info>Дата начала тура: 17.04.2017</info>
    <fio>EGOROV I.</fio>
</response>

Возвращаемые значения:

  • <osmp_txn_id> - Номер транзакции в системе Банка, который передается Клиенту в переменной txn_id.
  • <result> - Код результата завершения запроса.
  • <comment> - Необязательный элемент – комментарий завершения операции.
  • <sum> - Сумма платежа. Представляет собой дробное число с точностью до сотых, в качестве разделителя используется «.» (точка).
  • <inn> - ИНН Плательщика.
  • <rs> - Расчётный счёт Плательщика.
  • <bik> - БИК Банка Плательщика.
  • <ks> - Кор. счёт Банка Плательщика.
  • <name> - Наименование Плательщика.
  • <bank_name> - Наименование банка Плательщика.
  • <info> - Дополнительная информация.
  • <fio> - Фамилия, имя главного туриста по путёвке.

Возврат <result>0</result> на запрос «check» свидетельствует о том, что лицевой счет Плательщика с соответствующим ему номером osmp_txn_id может быть пополнен на сумму, указанную в запросе.

Запрос на пополнение лицевого счёта плательщика

https://localhost/SberbankTerminals/api/Pay?command=pay&txn_id=1234567&txn_date=20160815120133&account=DF21100001&sum=10.45

Строка запроса содержит следующие обязательные переменные:

  • command=pay – запрос на пополнение баланса Плательщика
  • txn_id=1234567 – внутренний номер платежа в системе Банка
  • txn_date=20160815120133 – дата учета платежа в системе Банка, которая передаётся в формате ГГГГММДДЧЧММСС.
  • account=DF21100001 – идентификатор Плательщика в информационной системе Клиента.
  • sum=10.45 – сумма к зачислению на лицевой счет Плательщика. Представляет собой дробное число с точностью до сотых, в качестве разделителя используется «.» (точка).

Ответ клиента выглядит следующим образом:

<response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <osmp_txn_id>1234567</osmp_txn_id>
    <result>0</result>
    <comment/>
    <sum>10.45</sum>
    <prv_txn>56</prv_txn>
</response>

Возвращаемые значения:

  • <osmp_txn_id> - номер транзакции в системе Банка, который передается Клиенту в переменной txn_id
  • <result> - код результата завершения запроса
  • <comment> - необязательный элемент – комментарий завершения операции
  • <sum> - сумма платежа. Представляет собой дробное число с точностью до сотых, в качестве разделителя используется «.» (точка).
  • <prv_txn> - уникальный номер операции пополнения баланса Плательщика.

Возвращая <result>0</result> на запрос «pay», Клиент сообщает об успешном завершении операции пополнения баланса. Система полностью завершает обработку данной транзакции.

Коды завершения обработки запросов

При обработке запросов от системы Банка, сервис возвращает соответствующие коды в элементе <result>.

Код Комментарий Фатальность
0 ОК. -
1 Временная ошибка. Повторите запрос позже. -
4 Неверный формат идентификатора Плательщика +
5 Идентификатор Плательщика не найден (Ошиблись номером) +
7 Прием платежа запрещен провайдером +
8 Прием платежа запрещен по техническим причинам +
79 Счет Плательщика не активен +
79 Счет Плательщика не активен +
90 Проведение платежа не окончено +
241 Сумма слишком мала +
242 Сумма слишком велика +
243 Невозможно проверить состояние счёта +
300 Другая ошибка провайдера +