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

Материал из Megatec
Перейти к: навигация, поиск
 
Строка 9: Строка 9:
 
</table>
 
</table>
 
<br />
 
<br />
 +
[[Файл: mb_030.png|left|Предупреждение]] <BR> Начиная с релиза 15.8 после 01.06.2023 работа с отдельными платежными шлюзами не поддерживается. Для работы необходимо использовать новую версию приложения [[Платежные web-сервисы:EntryPoint|EntryPoint (оплата картой в личном кабинете с выбором системы оплаты)]] с поддержкой Uniteller, Sberbank, Tinkoff, Alfabank, Assist, PayOnline, WebPay без установки сторонних библиотек и развертывания отдельных сервисов.<br />
 +
<br><br />
 
==Введение==
 
==Введение==
 
[[Файл: mb_030.png|left|Предупреждение]] <BR> Перед началом работы с платежными системами необходимо удостовериться в соответствии оборудования и программного обеспечения [[Мастер-Тур(15):Системно-аппаратные требования|системно-аппаратным требованиям]]. Если версия операционной системы не соответствует рекомендуемой, то работа с платежными сервисами не гарантирована в связи с ограничениями протоколов безопасности операционной системы.<br />
 
[[Файл: mb_030.png|left|Предупреждение]] <BR> Перед началом работы с платежными системами необходимо удостовериться в соответствии оборудования и программного обеспечения [[Мастер-Тур(15):Системно-аппаратные требования|системно-аппаратным требованиям]]. Если версия операционной системы не соответствует рекомендуемой, то работа с платежными сервисами не гарантирована в связи с ограничениями протоколов безопасности операционной системы.<br />

Текущая версия на 09:23, 12 января 2024

Версия статьи от 12-01-2024.

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


Предупреждение


Начиная с релиза 15.8 после 01.06.2023 работа с отдельными платежными шлюзами не поддерживается. Для работы необходимо использовать новую версию приложения EntryPoint (оплата картой в личном кабинете с выбором системы оплаты) с поддержкой Uniteller, Sberbank, Tinkoff, Alfabank, Assist, PayOnline, WebPay без установки сторонних библиотек и развертывания отдельных сервисов.



Введение

Предупреждение


Перед началом работы с платежными системами необходимо удостовериться в соответствии оборудования и программного обеспечения системно-аппаратным требованиям. Если версия операционной системы не соответствует рекомендуемой, то работа с платежными сервисами не гарантирована в связи с ограничениями протоколов безопасности операционной системы.



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

Установка

Для установки дополнительного модуля Сервис интеграции с платежной системой Sberbank нужно создать директорию Payments в каталоге C:/inetpub/wwwroot (корневом каталоге IIS) и выложить туда распакованные файлы из архива
payments-sberbank-9.2.20.ХХXXX.zip.
Устанавливать дополнительный модуль необходимо в том же домене, где расположено основное приложение ПК «Мастер-Web».
Начиная с релиза 9222SP0, если используется дополнительный модуль Выбор платежной системы (оплата картой в личном кабинете), то необходимо скопировать файл Megatec.MasterWeb.PaymentSystem.Sberbank.dll из /Payments/bin/ и разместить в папке /EntryPoint/bin/.
В управлении IIS необходимо создать виртуальный каталог для папки Payments.

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

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

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

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

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

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

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

Настройка

После установки надстройка Сервис интеграции с платежной системой Sberbank доступна в экранах «Список заявок» и «Информация о заказе».

Настройки ПК «Мастер-Web»

Настройки задаются в секции <appSettings> файла web.config основного приложения ПК «Мастер-Web».

Описание Значение Настройка
1 Включение дополнительного модуля Система онлайн платежей.

Обязательная настройка.
Внимание! Путь к приложению обязательно должен содержать ссылку на приложение из внешней сети. В противном случае, она не будет работать.

Путь к приложению «Система онлайн платежей».
<add key="paymentsLink" value="http://somesite/Payments" />
2 Настройка, определяющая статусы путевок, при которых доступна возможность оплаты через Сбербанк.

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

Ключи статусов из таблицы [Order_Status], при которых доступна оплата через Сбербанк.
<add key="paymentsStatuses" value="7,37" />
3 Настройка, позволяющая выводить предупреждающее сообщение о снятии комиссии при оплате.
  • true — сообщение отображается;
  • false или отсутствие настройки — сообщение не отображается.
<add key="askUserBeforePayment" value="true" />
4 Настройка, определяющая дату, на которую будет подбираться курс валют для пересчета суммы к оплате.

Обработка настройки, начиная с релиза 9220SP31.

  • FixationDate или отсутствие настройки - курс на дату последней фиксации путевки на момент совершения платежа, а если путевка не зафиксирована, то на дату совершения платежа;
  • ConfirmDate — курс на дату последнего подтверждения заявки (если подтверждения путевки еще не было, либо курс на дату подтверждения не заведен, то будет отображаться курс на момент совершения платежа);
  • OrderDate — дата оформления заявки;
  • PaymentDate - курс на дату совершения платежа.

Обработка настройки до релиза 9220SP31.

  • OrderDate — дата оформления заявки;
  • Today — курс на текущую дату;
  • ConfirmDate — курс на дату подтверждения заявки (если подтверждения путевки еще не было, либо курс на дату подтверждения не заведен, то будет отображаться курс на текущую дату).
 <add key="courseExchangeDate" value="OrderDate" />
5 Настройка, включающая механизм хэширования пароля пользователя, сохраняемого в файлах cookie, что позволяет усилить безопасность ПК «Мастер-Web».

По умолчанию хэширование включено.
Важно!
Если данная настройка прописана в файле web.config основного приложения, то она должна быть прописана и в платежном сервисе с тем же значением.

  • false или отсутствие настройки - хэширование пароля в файлах cookie выключено;
  • true - хэширование пароля в файлах cookie включено.
<add key="HashPasswordForCookie" value="true" />
6 Настройка, позволяющая производить оплату в новой вкладке браузера.

Внимание! Настройка обрабатывается, начиная с релиза 9222SP0.
Важно!
Если данная настройка прописана в файле web.config основного приложения, то она должна быть прописана и в платежном сервисе с тем же значением.

  • false или отсутствие настройки - оплата производится в текущей вкладке браузера;
  • true - оплата производится в новой вкладке браузера.
<add key="OpenPaymentInNewWindow" value="true" />
7 Настройка, определяющая партнеров в базе ПК «Мастер-Тур», которым разрешено осуществлять оплату путёвок онлайн.

Внимание! Настройка обрабатывается, начиная с релиза 9222SP1

  • Ключи партнеров таблицы [tbl_Partners], которым разрешена онлайн-оплата путёвок;
  • пустое значение или отсутствие настройки – онлайн-оплата путёвок доступна всем партнёрам.
<add key="allowedPaymentPartnerKeys" value="10764"/>

Настройки приложения «Система онлайн платежей»

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

Предупреждение


Секция <Sberbank> должна начинаться с заглавной буквы. 



Описание Значение Настройка
1 Идентификатор клиента, который выдается платежной системой Sberbank.

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

Идентификатор клиента
<add key="userName" value="логин sberbank-api" />
2 Пароль клиента, который выдается платежной системой Sberbank.

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

Пароль клиента
<add key="password" value="пароль sberbank-api" />
3 Настройка, определяющая пользователя ПК «Мастер-Тур», к которому будет привязываться оплата.

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

Ключ пользователя, к которому привязывается оплата (Поле US_KEY из таблицы [UserList]).
<add key="masterTourUser" value="95" />
4 Определяет тип платежной операции.

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

Обязательная настройка.
Внимание! Настройка в данной секции указывается, начиная с релиза 9222SP0

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

Либо название настройки SYSPaymentOperationId из таблицы [SystemSettings].
<add key="PaymentOperationId" value="1" />
5 Настройка, позволяющая задавать размер комиссии, которая будет включена в сумму оплаты (для агентств).

Обрабатывается при включенной настройке AddPaymentsToMasterFinance. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0.

Значение комиссии, которую необходимо включить в сумму платежа (целая часть отделяется либо запятой, либо точкой).

Комиссия указывается в процентах.
По умолчанию комиссия для агентств равна нулю.

<add key="addAgencyComission" value="3.627" />
6 Настройка, позволяющая задавать размер комиссии, которая будет включена в сумму оплаты (для частных лиц).

Обрабатывается при включенной настройке AddPaymentsToMasterFinance. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0.

Значение комиссии, которую необходимо включить в сумму платежа (целая часть отделяется либо запятой, либо точкой).

Комиссия указывается в процентах.
По умолчанию комиссия для частных лиц равна нулю.

<add key="addPersonalComission" value="5.0" />
7 Включение режима записи нового платежа в систему «Мастер-Финанс». При этом в ПК «Мастер-Тур» платежи не сохраняются.
  • true - включена запись платежей в «Мастер-Финанс»;
  • false или отсутствие настройки - выключает запись платежей в «Мастер-Финанс».
<add key="AddPaymentsToMasterFinance" value="true"/>
8 Настройка, позволяющая создавать объект orderBundle (товарная корзина), в котором передаются все необходимые данные о товаре/услуге.
  • true - включено создание объекта orderBundle
  • false или отсутствие настройки - объект orderBundle не создается

По умолчанию настройка имеет значение false.

<add key="useFiscalization" value="false"/>
9 Настройка, определяющая тип операции при проведении платежа для комиссий. Ключ операции (Поле PO_ID из таблицы [PaymentOperations]).
<add key="paymentOperationCommissionId" value="6" />
10 Настройка, задающая услугу, которая добавится в путевку при наличии комиссии, и стоимость которой будет равна сумме комиссии. Работает вместе с настройками NewDogovorServiceSvKey и NewDogovorServicePartnerKey.

Обрабатывается с релиза 15.8.

Ключ услуги (Поле SL_KEY из таблицы [ServiceList]).
<add key="NewDogovorServiceServiceListKey" value="450" />
11 Настройка, задающая класс для услуги, добавляемой в путевку при наличии комиссии. Работает вместе с настройками NewDogovorServiceServiceListKey и NewDogovorServicePartnerKey.

Обрабатывается с релиза 15.8.

Ключ класса услуги (Поле SV_KEY из таблицы [Service]).
<add key="NewDogovorServiceSvKey" value="1055" />
12 Настройка, задающая партнера, которая будет являться поставщиком для услуги, добавляемой в путевку при наличии комиссии. Работает вместе с настройками NewDogovorServiceServiceListKey и NewDogovorServiceSvKey.

Обрабатывается с релиза 15.8.

Ключ класса услуги (Поле PR_KEY из таблицы [Partners]).
<add key="NewDogovorServicePartnerKey" value="12921" />


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

Описание Значение Настройка
1 Настройка, включающая механизм хэширования пароля пользователя, сохраняемого в файлах cookie, что позволяет усилить безопасность ПК «Мастер-Web».

По умолчанию хэширование включено.
Важно!
Если данная настройка прописана в файле web.config платежного сервиса, то она должна быть прописана и в основном приложении с тем же значением.

  • false или отсутствие настройки - хэширование пароля в файлах cookie выключено;
  • true - хэширование пароля в файлах cookie включено.
<add key="HashPasswordForCookie" value="true" />
2 Определяет тип платежной операции.

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

Обязательная настройка.
Внимание! Настройка в данной секции указывается до релиза 9220SP32 включительно

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

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

Информация о типе платежной системы записывается в историю по путевке.
Для системы «Мастер-Финанс» информация записывается в столбец DP_PAYMENTSSYS таблицы [FIN_DOGOVOR_PAID].
Обязательная настройка.

Название платежной системы
<add key="PaymentSystem" value="Sberbank"/>
4 Имя текущей установленной службы.

Внимание! Настройка обрабатывается только в версии Мастер-Тур 15.

Наименование службы, к которой может обращаться текущий клиент (по значению настройки acceptableServices в MasterTourService). По умолчанию настройка не заполнена. Значение настройки должно быть явно задано.
<add key="acceptableServices" value=""/>
5 Настройка, включающая экран редактирования суммы к оплате.

Внимание! Настройка обрабатывается, начиная с релиза 9222SP0.

  • true - экран корректировки суммы к оплате отображается;
  • false или отсутствие настройки - экран корректировки суммы к оплате не отображается.
<add key="allowCustomAmount" value="true" />
6 Настройка, позволяющая производить оплату в новой вкладке браузера.

Внимание! Настройка обрабатывается, начиная с релиза 9222SP0.
Важно!
Если данная настройка прописана в файле web.config платёжного сервиса, то она должна быть прописана и в основном приложении с тем же значением.
При сочетании включенных настроек ShowAlertAfterPayment и OpenPaymentInNewWindow, после вывода всплывающего сообщения и подтверждения пользователя, новое окно, открытое для оплаты, закрывается автоматически.

  • false или отсутствие настройки - оплата производится в текущей вкладке браузера;
  • true - оплата производится в новой вкладке браузера.
<add key="OpenPaymentInNewWindow" value="true" />
7 Настройка, позволяющая при завершении оплаты показывать всплывающее окно с сообщением о результатах оплаты.

Внимание! Настройка обрабатывается, начиная с релиза 9222SP0. При сочетании включенных настроек ShowAlertAfterPayment и OpenPaymentInNewWindow, после вывода всплывающего сообщения и подтверждения пользователя, новое окно, открытое для оплаты, закрывается автоматически.

  • false - при завершении оплаты показывать обычное сообщение о результатах оплаты;
  • true или отсутствие настройки - при завершении оплаты показывать всплывающее окно с сообщением о результатах оплаты.
<add key="ShowAlertAfterPayment" value="true" />
Начиная с релиза 15.8 появилась возможность добавления услуги комиссии от оплаты через платежный шлюз в путевку и формирования ПКО различным образом.

Сценарии работы

Предполагаются 3 сценария работы:
1. Заданы размеры комиссий и параметры paymentOperationId, paymentOperationComissionId, NewDogovorServiceSvKey, NewDogovorServiceServiceListKey, NewDogovorServicePartnerKey. В этом случае при оплате в базе данных формируется 1 ПКО (сумма за путевку + сумма комиссии), в путевке создается услуга "Комиссия при оплате через платежный шлюз" и сумма путевки увеличивается на размер стоимости созданной услуги.
2. Заданы размеры комиссий и параметры paymentOperationId, paymentOperationComissionId. Параметры NewDogovorServiceSvKey, NewDogovorServiceServiceListKey, NewDogovorServicePartnerKey не заданы. В этом случае при оплате в базе данных формируются 2 ПКО (отдельно за путевку и за комиссию). Услуга в путевке не создается и сумма путевки не меняется.
3. Заданы размеры комиссий и параметр paymentOperationId. Значение параметра paymentOperationComissionId=0 или параметр отсутствует. Оплата за комиссию уходит сразу в банк. В этом случае при оплате в базе данных формируется 1 ПКО за путевку.
Внимание! Данные настройки не работают при включенной настройке <add key="AddPaymentsToMasterFinance" value="true"/>.

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

Оплату можно произвести по путевкам, статус которых указан в настройке paymentsStatuses.
Необходимо, чтобы ISO-код валют справочника Список валют соответствовал стандарту ISO 4217 (например, для Российского рубля ISO-код должен быть "RUB").

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

Поиск путевки

Список заявок, забронированных в базе данных туроператора, доступен в экране «Список заказов» по адресу: http://ip-адрес сервера Мастер-Веб/MasterWebStandard/OrderList.aspx.

Предупреждение


Экран «Список заказов» доступен только для зарегистрированных и авторизованных в системе пользователей.


После ввода имени пользователя и пароля загрузится список заявок, оформленных на покупателя/агентство, указанного в поле «Партнер в БД МТ» при регистрации пользователя в Системе администрирования ПК «Мастер-Web», который сопоставлен имени текущего пользователя.

Экран «Список заказов»

Для отбора путевок можно использовать фильтры:

  • Поиск по номеру заявки;
  • Поиск по фамилии туриста;
  • Поиск по статусу документов на визу;
  • Поиск по стране;
  • Поиск по дате заявки;
  • Дата тура с... и Дата тура по...;
  • Путевки с наличием услуги «Виза»;
  • Путевки с задолженностями.

Оплата путевки

Предупреждение


Оплата доступна только для путевок имеющих статус, ключ которого указан в настройке paymentsStatuses.


Оплата путевок доступна в экранах «Список заявок» и «Информация о заказе».

Экран Список заказов доступен по адресу: http://ip-адрес сервера Мастер-Веб/MasterWebStandard/OrderList.aspx.

Оплата путевок в экране «Список заказов»

Экран Информация о заказе доступен по адресу: http://ip-адрес сервера Мастер-Веб/MasterWebStandard/OrderInfo.aspx.

Оплата путевок в экране «Информация о заказе»

Для оплаты путевки через Сбербанк необходимо нажать ссылку Оплатить для нужной путевки (или кнопку Оплатить on-line в экране Информация о заказе).

Ak 018.png
При успешном проведении платежа путёвка приобретает статус Ok. Если пользователь ввёл ошибочные данные при заполнении необходимых полей, то появится сообщение об ошибке и будет произведён возврат к странице заказа.

Ошибка SecureChannelFailure

Появление такой ошибки может быть вызвано невозможностью установить TLS соединение, которое используется для передачи данных от платежной системы. Вызвано некорректными настройками брандмауэра/firewall или некорректными настройками сервера. В случае обнаружения закрытого канала TLS необходимо обратиться к администратору вашей интернет-сети.

On error occurred during signing in. Contact our manager System.Exception: Some error occured: SecureChannelFailure at Megatec.MasterWeb.PaymentSystem.Tinkoff.TinkoffGateway.Authorization(TinkoffParameters parameters, String token) in C:\Users\vmizh\Work\MasterTour\Source\MW\Megatec.MasterWeb.PaymentSystem.Tinkoff\TinkoffGateway.cs:line 430 at Megatec.MasterWeb.PaymentSystem.Tinkoff.TinkoffGateway.Login(IPaymentParameters parameters) in C:\Users\vmizh\Work\MasterTour\Source\MW\Megatec.MasterWeb.PaymentSystem.Tinkoff\TinkoffGateway.cs:line 106 at MasterWebStandard2.Payment.ParseRequest(String action, String orderCode)

Для проверки доступности TLS соединения необходимо выполнить следующую команду в командной строке или в оболочке Powershell, заменив ссылку на ссылку для необходимой системы оплаты:
Invoke-WebRequest -Uri https://securepay.tinkoff.ru

Вариант успешного ответа при доступном соединении

Invoke-WebRequest : Удаленный сервер возвратил ошибку: (404) Не найден.
строка:1 знак:1
+ Invoke-WebRequest -Uri https://securepay.tinkoff.ru

Вариант некорректного ответа при закрытом соединении

Invoke-WebRequest : The request was aborted: Could not create SSL/TLS secure channel.
At line:1 char:2
+  Invoke-WebRequest -Uri https://securepay.tinkoff.ru