Платежные web-сервисы: Сервис интеграции с платежной системой Uniteller (оплата картой в личном кабинете)

Материал из Megatec
Перейти к: навигация, поиск

Версия статьи от 5-11-2024

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


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



Введение

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


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



Данный модуль реализует возможность оплаты путевок через систему электронных платежей «Uniteller».
«Uniteller» - это мультибанковская система платежей по пластиковым и виртуальным картам через интернет, позволяющая в реальном времени производить авторизацию и обработку транзакций.

Установка

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

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

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

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

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

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

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

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

Настройка

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

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

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

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

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

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

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

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

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

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

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

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

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

  • false или отсутствие настройки - оплата производится в текущей вкладке браузера;
  • true - оплата производится в новой вкладке браузера.
<add key="OpenPaymentInNewWindow" value="true" />

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

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

Описание Значение Настройка
1 Точки продажи (shopIDP)

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

Uniteller Point ID из раздела Точки продажи ЛК «Uniteller».
<add key="shopIDP" value="00005432"/>
2 Логин

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

Login из раздела Параметры авторизации ЛК «Uniteller».
<add key="login" value="2281" />
3 Пароль

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

Password из раздела Параметры авторизации ЛК «Uniteller».
<add key="password" value="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />
4 Настройка, определяющая валюту, в которой будет совершаться платеж через систему «Uniteller».

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

  • Contract - оплата в валюте путевки;
  • Tour - оплата в валюте тура;
  • National – оплата в национальной валюте;
  • DefinedBySettings - оплата в валюте, определенной настройкой Сurrency.
<add key="currencyToPay" value="Contract" />
5 Настройка, определяющая код валюты, в которой будет совершаться платеж через платежную систему «Uniteller» при значении DefinedBySettings настройки currencyToPay. Код валюты (Поле RA_CODE из таблицы [Rates]).

Код валюты из ПК «Мастер-Тур» должен быть сопоставлен с кодом валюты в системе «Uniteller». Данное сопоставление задается в секции <currencyMap>, в качестве параметра key указывается код валюты из ПК «Мастер-Тур», в качестве параметра value задается код валюты в системе «Uniteller», например:

<currencyMap>
      <add key="рб" value="RUB"/>
      <add key="грн" value="UAH"/>
      <add key="azn" value="AZN"/>
      <add key="тг" value="KZT"/>
</currencyMap>
.
<add key="currency" value="рб" />
6 Настройка, определяющая тип операции при проведении платежа.

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

Ключ операции (Поле PO_ID из таблицы [PaymentOperations]).
<add key="PaymentOperationId" value="1" />
7 Настройка, определяющая тип операции при проведении платежа для комиссий. Ключ операции (Поле PO_ID из таблицы [PaymentOperations]).
<add key="paymentOperationCommissionId" value="6" />
8 Настройка, определяющая пользователя ПК «Мастер-Тур», к которому будет привязываться оплата.

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

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

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

Ключ филиала, к которому привязывается оплата (Поле PR_KEY из таблицы [Partners]).
<add key="paymentFilialKey" value="1" />
10 Настройка, определяющая отдел, к которому будет привязываться оплата.

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

Ключ отдела (кассы), к которому привязывается оплата (Поле PDP_KEY из таблицы [PrtDeps]).
<add key="departmentKey" value="2" />
11 Настройка, позволяющая задавать размер комиссии, которая будет включена в сумму оплаты (для агентств). Значение комиссии, которую необходимо включить в сумму платежа (целая часть отделяется запятой).

Комиссия указывается в процентах.
Сумма оплаты вычисляется следующим образом:
Если из конечной суммы платежа в системе «Uniteller» вычесть указанный процент - получится стоимость путевки.
Пример:
Стоимость путевки - 100 у.е.
В настройке указана комиссия - 50%.
Итоговая сумма платежа в системе «Uniteller» - 200 у.е.
200 у.е. - 50% * 200 у.е. = 100 у.е. (стоимость путевки).

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

Комиссия указывается в процентах.
Сумма оплаты вычисляется следующим образом:
Если из конечной суммы платежа в системе «Uniteller» вычесть указанный процент - получится стоимость путевки.
Пример:
Стоимость путевки - 100 у.е.
В настройке указана комиссия - 50%.
Итоговая сумма платежа в системе «Uniteller» - 200 у.е.
200 у.е. - 50% * 200 у.е. = 100 у.е. (стоимость путевки).

<add key="addPersonalComission" value="5" />
13 Настройка, задающая услугу, которая добавится в путевку при наличии комиссии, и стоимость которой будет равна сумме комиссии. Работает вместе с настройками NewDogovorServiceSvKey и NewDogovorServicePartnerKey.

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

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

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

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

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

Ключ класса услуги (Поле PR_KEY из таблицы [Partners]).
<add key="NewDogovorServicePartnerKey" value="12921" />
16 Настройка, задающая услугу страхования, добавляемую в фискальный чек. Применяется в случае если в путевке отсутствует скрытая услуга "Операторский тур".

Обрабатывается с релиза 15.8. Описание формирования чека с данными настройками находится в разделе Формирование чека при использовании скрытой услуги "Операторский тур" в путевке.

Ключ класса услуги (Поле SV_KEY из таблицы [Service]).
<add key="InsuranceServiceKey" value="6"/>
17 Настройка задающая название услуги в фискальном чеке если в путевке имеется скрытая услуга "Операторский тур". Обрабатывается с релиза 15.8. Описание формирования чека с данными настройками находится в разделе Формирование чека при использовании скрытой услуги "Операторский тур" в путевке. Ключ класса услуги (Поле SV_KEY из таблицы [Service]).
<add key="OperatorTourServiceKey" value="1134"/>
18 Платёжная система кредитной карты.
  • 0 или отсутствует значение - любая
  • 1 - VISA
  • 2 - MasterCard
  • 3 - Diners Club
  • 4 - JCB
  • 5 - American Express
<add key="meanType" value="" />
19 Тип электронной валюты.
  • 0 или отсутствует значение - любая система электронных платежей
  • 1 - Яндекс.Деньги
  • 2 - RBK Money
  • 3 - MoneyMail
  • 4 - WebCreds
  • 6 - Platezh.ru
  • 7 - Деньги@Mail.Ru
  • 8 - Мобильный платёж Мегафон
  • 9 - Мобильный платёж МТС
  • 10 - Мобильный платёж Билайн
  • 11 - PayPal
  • 12 - ВКонтакте
  • 13 - Евросеть
  • 14 - Yota.money
  • 15 - QIWI Кошелек
  • 16 - ПлатФон
  • 17 - Moneybookers
  • 29 - WebMoney WMR
<add key="eMoneyType" value="" />
20 Адреса конечных точек сервиса.

Только для релиза 2009.2.21 данные настройки являются обязательными.

В тегах endpoint указываются сервер и порт сервиса. По умолчанию указан локальный компьютер и стандартный порт. Если служба установлена на другом компьютере, то необходимо указать его ip-адрес и порт. Если на компьютере, где устанавливается сервис, стандартный порт 8080 занят, то необходимо указать другой свободный порт.
<endpoint address="http://localhost:8080//PaymentSignatureServiceHost/SignService/"
--/>
<endpoint address="http://localhost:8080//PaymentSignatureServiceHost/PaymentService/"
--/>

подробное описание блока для подключения к службе подписи путевок и платежей

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

По умолчанию хэширование включено.

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

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

Название платежной системы
<add key="PaymentSystem" value="Uniteller"/>
23 Включение функционала фискализации платежей.

После включения необходимо заполнить настройки Код системы налогообложения (TaxMode) и Код ставки налогообложения (TaxRateCode).
Обрабатывается с релиза 9.2.23.0 и 15.2.

  • true – использовать фискализацию при оплате
  • false или отсутствие настройки – не использовать фискализацию при оплате
<add key="UseFiscalization" value="true"/>
24 Код системы налогообложения, его значение должно соответствовать режимам налогообложения, сконфигурированным в ККМ при регистрации. Данная настройка необходима для работы фискализации платежей.

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

  • 0 – общая система налогообложения
  • 1 – упрощенная система налогообложения (Доход)
  • 2 – упрощенная СН (Доход минус Расход)
  • 3 – единый налог на вмененный доход
  • 4 – единый сельскохозяйственный налог
  • 5 – патентная система налогообложения
<add key="TaxMode" value=""/>
25 Код ставки налогообложения. Данная настройка необходима для работы фискализации платежей.

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

  • -1 – не облагается НДС
  • 0 – облагается НДС по ставке 0%
  • 10 – облагается НДС по ставке 10%
  • 18 – облагается НДС по ставке 18%
  • 110 – облагается НДС по ставке 10/110
  • 118 – облагается НДС по ставке 18/118
<add key="TaxRateCode" value=""/>
26 Настройка, определяющая, что для генерации параметров будет использоваться стратегия из кастомной сборки. Работает в паре с настройкой paymentFilialToShopIdMappings. Название кастомной сборки
<add key="parametersGenerator" value="Megatec.Plugins.KurortiYuga.FilialKeyGetter.KYParametersGeneratorStrategy, Megatec.Plugins.KurortiYuga.FilialKeyGetter"/>
27 Настройка, создающая правила отправки оплаты на определенный ShopID. Отправка денежных средств на тот или иной ShopID зависит от филиала, на который создается проводка. Работает в паре с настройкой parametersGenerator. filial3,filial4:shopId2/login2/password2 | filial6:shopId5/login5/password5
<add key="paymentFilialToShopIdMappings" value="11526,12663,1:00005432/2281/y2WOqJc4k8PQckLJQsmN4l9OMpYnxQZWsYnlfMRzXjONpSbYhk4WlunjfaHq4l | 2 : 00123452/un15/y2WOqJ8PQckLJQsmN49OW61tZmMpYnxQZWsYnlRxTzXjte0cONpSbYhk4WlaHX4"/>


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

Описание Значение Настройка
1 Имя текущей установленной службы.

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

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

В версиях до релиза 9222SP0 может использоваться старая настройка:

<add key="paymentFactory" value="MasterSoft.Payments.PaymentFactoryWebPay, MasterSoft.Payments" />
3 Настройка, определяющая, что филиал, на который создается проводка при оплате через Uniteller, будет рассчитываться по правилам из кастомной сборки туроператора.
Настройка регистрозависимая.
Название кастомной сборки
<add key="filialKeyGetter" value="Megatec.Plugins.KurortiYuga.FilialKeyGetter.FilialKeyGetterByServicePartner, Megatec.Plugins.KurortiYuga.FilialKeyGetter"/>
4 Настройка, включающая экран редактирования суммы к оплате.

Текст с правилами оплаты и фиксации курса можно отредактировать в файле Payment.aspx платежного приложения. После изменения файла требуется перезагрузить пул приложения.

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

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

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

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

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

  • OrderDate — дата оформления заявки;
  • Today — курс на текущую дату;
  • ConfirmDate — курс на дату подтверждения заявки (если подтверждения путевки еще не было, либо курс на дату подтверждения не заведен, то будет отображаться курс на текущую дату).
<add key="courseExchangeDate" value="FixationDate" />
Предупреждение


В случае если необходимо вместо метода оплаты Uniteller применить метод оплаты UnitellerMir или UnitellerChildren необходимо переименовать секцию Uniteller в UnitellerMir и UnitellerChildren соответственно, а также параметр paymentSystem в секции <appSettings>.



Начиная с релиза 15.8 не нужно указывать ссылку на возврат после оплаты в личном кабинете Uniteller. Параметр URL-адрес уведомления магазина нужно оставить пустым.

Ea 230.png

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

Предполагаются 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"/>.

Фискализация

При использовании фискализации при оплате необходимо заполнить соответствующие параметры в файле web.config.
Настройки задаются в секции <basic> файла web.config приложения Система онлайн платежей.

Описание Значение Настройка
1 Включение функционала фискализации платежей.

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

  • true – использовать фискализацию при оплате
  • false или отсутствие настройки – не использовать фискализацию при оплате
<add key="UseFiscalization" value="true"/>
2 Настройка, определяющая тип системы налогооблажения.
Код системы налогообложения, его значение должно соответствовать режимам налогообложения, сконфигурированным в ККМ при регистрации.

Допустимые значения taxmode:
0 — Общая система налогообложения
1 — Упрощенная система налогообложения (Доход)/
2 — Упрощенная СН (Доход минус Расход)
3 — Единый налог на вмененный доход
4 — Единый сельскохозяйственный налог
5 — Патентная система налогообложения

<add key="TaxMode" value="2"/>
3 Настройка, определяющая размер ставки налогооблажения.
Код ставки налогообложения.

Допустимые значения TaxRateCode:
-1 – не облагается НДС/
0 – облагается НДС по ставке 0%
10 – облагается НДС по ставке 10%
18 – облагается НДС по ставке 18%
110 – облагается НДС по ставке 10/110
118 – облагается НДС по ставке 18/118

<add key="TaxRateCode" value="18"/>
4 Тип отображения комиссии платежной системы в фискальном чеке.
Работает начиная с релиза 15.8 если используется дополнительный модуль Выбор платежной системы (оплата картой в личном кабинете)

0 - увеличивает стоимость позиций по чеку на размер (%) комиссию
1 - добавляет в чек комиссию отдельной строкой

<add key="ComissionShowModeInVoucher" value ="0"/>
5 Наименование позиции в чеке для комиссии для <add key="ComissionShowModeInVoucher" value ="1"/>.
Работает начиная с релиза 15.8 если используется дополнительный модуль Выбор платежной системы (оплата картой в личном кабинете)

По умолчанию - "Комиссия платежной системы"

<add key="ComissionTextInVoucher" value ="Юнителлер комиcсия"/>
6 Вид формирования чека
Работает начиная с релиза 15.8 если используется дополнительный модуль Выбор платежной системы (оплата картой в личном кабинете)

true - разбить по услугам отдельно,
false - одной строкой из ключа VoucherServiceText
По умолчанию настройка в состоянии false.

<add key="VoucherShowDetails" value="false"/>
7 Наименование услуги в чеке
Работает начиная с релиза 15.8 если используется дополнительный модуль Выбор платежной системы (оплата картой в личном кабинете)

%dogovor% (не обязательно) - для вставки номера договора.

<add key="VoucherServiceText" value="Туристическая услуга по договору %dogovor%"/>

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

Описание Значение Настройка
1 Настройка, определяющая адрес шлюза оплаты с включенной фискализацией v.1.0.
<add key="unitellerLoginWithFiscalizationUrl" value="https://fpay.uniteller.ru/v1/pay"/>
2 Настройка, определяющая адрес шлюза оплаты с включенной фискализацией v.2.0.
<add key="unitellerLoginWithFiscalizationUrl" value="https://fpay.uniteller.ru/v2/pay"/>

Отличие версии 2.0 от версии 1.0

Добавлены следующие возможности:

  • Продажа подарочных карт, начисления бонусов-авансов, фискализация авансов.
  • Частичная либо полная оплаты заказа подарочными картами, бонусами либо другими авансами.
  • Возврат авансов и покупок, оплаченых частично либо полностью авансами.
  • Отнесение авансов в доход.
  • Осуществления агентских продаж.
  • Настройка механизма «Защита от штрафов» для интерфейсов версии 2.0.

Добавлены следующие сценарии:

  • Операция оплаты с использованием платежной формы (версия 2.0).
  • Операция оплаты с использованием API (версия 2.0).
  • Операция оплаты через ApplePay с использованием API (версия 2.0).
  • Операция подтверждения преавторизации (версия 2.0).
  • Операция отнесения авансов в доход с помощью API.
  • Операция отнесения авансов в доход с помощью ЛК.
  • Частичная или полная отмена платежа с фискализацией, выполненного через Uniteller (версия 2.0).
  • Частичная или полная отмена платежа с фискализацией, выполненного через Uniteller через ЛК (версия 2.0).
  • В сценарии регистрации заказа добавлена возможность регистрации для интерфейса 2.0.
  • Добавлены программные интерфейсы для новых сценариев.
  • Для интерфейсов версии 2.0 изменен формат фискального чека.

Формирование чека при использовании скрытой услуги "Операторский тур" в путевке

В случае если в путевке имеется скрытая услуга "Операторский тур", то чек формируется на весь тур одной суммой.
Платёжной системе Uniteller передаются следующие параметры:
1. Данные по поставщику: пустое поле.
2. Наименование продукта, который продаётся по чеку: передаётся название услуги класса "Операторский тур" + номер заявки.
3. Полный расчёт или предоплата: всегда передаётся "Полный расчёт".
4. Передаётся полная стоимость тура в рублях по внутреннему курсу на дату платежа.

В случае если в путевке отсутствует скрытая услуга "Операторский тур", то тур считается агентским. В таком случае чек формируется с детализацией по некоторым услугам с делением по поставщикам: отдельным блоком выводится страховка с отображением ее стоимости и отдельным блоком с комплексом остальных туристических услуг с ценой за вычетом страховки.
Платёжной системе Uniteller передаются следующие параметры:
Основной комплекс услуг:
1. Данные по поставщику на комплекс услуг: Передаётся полное название партнёра по услуге отель/круиз. + передаётся ИНН поставщика + телефон поставщика.
2. В наименование продукта передаётся текст: «Ком-кс тур. услуг» + Страна по путёвке + номер заявки.
3. Передаётся признак продавца: АГЕНТ.
4. Полный расчёт или предоплата: всегда передаётся "Полный расчёт".
5. Стоимость: Передаётся стоимость тура в рублях по внутреннему курсу, за вычетом стоимости страховки в рублях, по курсу ЦБ РФ.
Отдельным блоком выводится информация по страховке, если она есть в туре:
1. Данные по поставщику на комплекс услуг: Передаётся полное название партнёра по услуге Страховка + ИНН партнёра по страховке + телефон партнёра по страховке.
2. В наименование продукта передаётся текст: «Страховка» + Страна по услуге + номер заявки.
3. Передаётся признак продавца: АГЕНТ.
4. Полный расчёт или предоплата: всегда передаётся "Полный расчёт".
5. Стоимость: Передаётся сумма брутто стоимостей всех услуг страхования в рублях по курсу ЦБ РФ.
Так же передаём общую стоимость путёвки в рублях по внутреннему курсу.

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

Оплату можно произвести по путевкам, статус которых указан в настройке paymentsStatuses.
Для возможности оплаты через платёжную систему Uniteller тип платёжной операции (PaymentOperation), ключ которой указан в настройке kindOfPay, должен иметь бланки и иметь признак «Приходный» (PO_Type is null or PO_Type = 0).
В личном кабинете Uniteller в разделе Точки продажи необходимо указать URL-адрес уведомления магазина в формате: somesite/Uniteller/Payment.aspx?action=reply.


Определение оплаты в зависимости от филиала бронирования

В папке templates расположен файл filialsMerchantsMappings.xml, в котором находятся следующие значения:

  • ключ филиала бронирования (dogovorFilialID);
  • логин – логин в личном кабинете Uniteller (login);
  • пароль – пароль в личном кабинете Uniteller (password);
  • валюта, в которой будет совершаться платеж через систему «Uniteller» (currencyToPay);
  • код валюты, в которой будет совершаться платеж через платежную систему «Uniteller» при значении DefinedBySettings настройки currencyToPay (currency);
  • тип операции при проведении платежа (kindOfPay);
  • пользователь ПК «Мастер-Тур», к которому будет привязываться оплата (masterTourUser);
  • отдел, к которому будет привязываться оплата (departmentKey);
  • размер комиссии, которая будет включена в сумму оплаты (для агентств) (addAgencyComission);
  • размер комиссии, которая будет включена в сумму оплаты (для частных лиц) (addPersonalComission);
  • ключ филиала, к которому привязывается оплата (paymentFilialKey).

Пример заполнения файла шаблона:

<?xml version="1.0" encoding="utf-8" ?> 
  <mappings> 
       <mapping dogovorFilialID="1" shopIDP="00005432" login="2281" password="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" meanType="" 
eMoneyType="" currencyToPay="National" currency="рб" kindOfPay="6" masterTourUser="80" departmentKey="2"
addAgencyComission="3,627" addPersonalComission="5" paymentFilialKey="1"/>
</mappings>


Дополнительная информация


При подготовке запроса к платежной системе в файле filialsMerchantsMappings.xml ищется филиал с ключом филиала 
бронирования путевки, если он есть, то используется логин (login), пароль (password)
и остальные настройки данного филиала. В случае, когда в файле filialsMerchantsMappings.xml нет подходящего филиала
или одной из настроек, используются данные по умолчанию, т.е. из настроек сервиса web.config.

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

Процесс оплаты путевки через платежную систему

Создание заказа

Процесс оплаты начинается с выбора путевки и нажатия на ссылку «Оплатить» на странице заказа в MasterWeb, что инициирует создание заказа и переход пользователя на страницу электронной платежной системы. На этом этапе система автоматически формирует запрос к платежной системе, а в базе данных появляется запись о платеже с начальным статусом «Отправлено». Этот статус означает, что запрос на оплату был отправлен, но подтверждение еще не получено (в таблице Payments добавляются детали платежа в PaymentDetails с OperationStatus - 0). На этом создание заказа завершается, и пользователь временно покидает систему, чтобы завершить оплату на стороне платежного сервиса.

Проверка оплаты

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

Обновление данных путевки после оплаты

После подтверждения успешной оплаты система обновляет данные по путевке. В базе сохраняется информация о сумме оплаты, добавляется отметка о проведении платежа в истории путевки (в таблице Payments OperationStatus прописывается статус 1), а также, если это требуется, включаются дополнительные услуги, связанные с оплаченной путевкой.

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

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

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


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


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

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

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

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

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

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


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


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

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

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

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

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

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

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


Сумма к оплате выводится в национальной валюте. При необходимости, она конвертируется по соответствующему курсу.


Для оплаты путевки необходимо ввести данные банковской карты, с помощью которой производится оплата:

Ввод данных банковской карты

После того, как все поля заполнены, нужно нажать на кнопку Оплатить, по нажатию которой загрузится экран Информация о платеже:

«Информация о платеже»

В поле Номер платежа записывается номер путевки в Мастер-Тур и уникальный идентификатор платежа, пример OM20901231@s@9865278c-85de-4d91-805d-1316a129c2fe.
Для того чтобы вернуться к списку заявок нужно нажать на кнопку Вернуться в магазин.

Если включена фискализация платежей, то чеки можно просмотреть по ссылке Просмотреть фискальные чеки, либо в личном кабинете «Uniteller» в разделе Фискальные чеки.

Фискальные чеки

При успешном проведении платежа в базе автоматически создается проводка и у путевки прописывается сумма оплаты. Также в истории путевки добавляется запись об оплате через платежную систему «Uniteller».

Возможные ошибки при работе

Ошибка "Вы не авторизованы для выполнения операции"

Ошибка может возникать при настроенном шлюзе Uniteller по ссылке через localhost. Для устранения ошибки необходимо поменять localhost на внешний адрес в сети Internet и попробовать осуществить оплату с другого компьютера. Ошибка

Ошибка 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