Платежные web-сервисы: Сервис интеграции с платежной системой Sberbank (оплата картой в личном кабинете)
Версия статьи от 26-05-2023.
Поддерживаемые версии: |
Содержание
Введение
Перед началом работы с платежными системами необходимо удостовериться в соответствии оборудования и программного обеспечения системно-аппаратным требованиям. Если версия операционной системы не соответствует рекомендуемой, то работа с платежными сервисами не гарантирована в связи с ограничениями протоколов безопасности операционной системы.
Данный модуль реализует возможность оплаты путёвок в ПК «Мастер-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
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 | Настройка, позволяющая выводить предупреждающее сообщение о снятии комиссии при оплате. |
|
<add key="askUserBeforePayment" value="true" />
|
4 | Настройка, определяющая дату, на которую будет подбираться курс валют для пересчета суммы к оплате. |
Обработка настройки, начиная с релиза 9220SP31.
Обработка настройки до релиза 9220SP31.
|
<add key="courseExchangeDate" value="OrderDate" />
|
5 | Настройка, включающая механизм хэширования пароля пользователя, сохраняемого в файлах cookie , что позволяет усилить безопасность ПК «Мастер-Web».
По умолчанию хэширование включено. |
|
<add key="HashPasswordForCookie" value="true" />
|
6 | Настройка, позволяющая производить оплату в новой вкладке браузера. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0.
|
|
<add key="OpenPaymentInNewWindow" value="true" />
|
7 | Настройка, определяющая партнеров в базе ПК «Мастер-Тур», которым разрешено осуществлять оплату путёвок онлайн. Внимание! Настройка обрабатывается, начиная с релиза 9222SP1 |
|
<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. Обязательная настройка.
|
Идентификатор типа операции - поле 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 | Включение режима записи нового платежа в систему «Мастер-Финанс». При этом в ПК «Мастер-Тур» платежи не сохраняются. |
|
<add key="AddPaymentsToMasterFinance" value="true"/>
|
8 | Настройка, позволяющая создавать объект 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».
По умолчанию хэширование включено. |
|
<add key="HashPasswordForCookie" value="true" />
|
2 | Определяет тип платежной операции. Тип платежной операции так же может задаваться в настройке SYSPaymentOperationId в таблице SystemSettings. В таком случае в настройке PaymentOperationId задается название настройки из таблицы SystemSettings. Обязательная настройка.
|
Идентификатор типа операции - поле PO_Id из таблицы [PaymentOperations] .Либо название настройки SYSPaymentOperationId из таблицы [SystemSettings] .
|
<add key="PaymentOperationId" value="1" />
|
3 | Определяет тип платежной системы при сохранении платежей.
Информация о типе платежной системы записывается в историю по путевке. |
Название платежной системы | <add key="PaymentSystem" value="Sberbank"/>
|
4 | Имя текущей установленной службы.
Внимание! Настройка обрабатывается только в версии Мастер-Тур 15. |
Наименование службы, к которой может обращаться текущий клиент (по значению настройки acceptableServices в MasterTourService). По умолчанию настройка не заполнена. Значение настройки должно быть явно задано. |
<add key="acceptableServices" value=""/>
|
5 | Настройка, включающая экран редактирования суммы к оплате. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0. |
|
<add key="allowCustomAmount" value="true" />
|
6 | Настройка, позволяющая производить оплату в новой вкладке браузера. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0.
|
|
<add key="OpenPaymentInNewWindow" value="true" />
|
7 | Настройка, позволяющая при завершении оплаты показывать всплывающее окно с сообщением о результатах оплаты. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0. При сочетании включенных настроек ShowAlertAfterPayment и OpenPaymentInNewWindow, после вывода всплывающего сообщения и подтверждения пользователя, новое окно, открытое для оплаты, закрывается автоматически. |
|
<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 в экране Информация о заказе).
При успешном проведении платежа путёвка приобретает статус 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