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

Материал из Megatec
Версия от 12:22, 28 ноября 2018; Porunova (обсуждение | вклад) (Подготовка данных)
Перейти к: навигация, поиск

Версия статьи от 28-11-2018

Введение

Данный модуль реализует возможность оплаты путевок через систему электронных платежей «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"/>

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

Настройки задаются в секции <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="kindOfPay" value="6" />
7 Настройка, определяющая пользователя ПК «Мастер-Тур», к которому будет привязываться оплата.

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

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

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

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

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

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

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

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

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

<add key="addPersonalComission" value="5" />
12 Платёжная система кредитной карты.
  • 0 или отсутствует значение - любая
  • 1 - VISA
  • 2 - MasterCard
  • 3 - Diners Club
  • 4 - JCB
  • 5 - American Express
<add key="meanType" value="" />
13 Тип электронной валюты.
  • 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="" />
14 Настройка, определяющая дату, на которую будет подбираться курс валют для пересчета суммы к оплате.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • -1 – не облагается НДС
  • 0 – облагается НДС по ставке 0%
  • 10 – облагается НДС по ставке 10%
  • 18 – облагается НДС по ставке 18%
  • 110 – облагается НДС по ставке 10/110
  • 118 – облагается НДС по ставке 18/118
<add key="TaxRateCode" value=""/>
21 Настройка, определяющая, что для генерации параметров будет использоваться стратегия из кастомной сборки. Работает в паре с настройкой paymentFilialToShopIdMappings. Название кастомной сборки
<add key="parametersGenerator" value="Megatec.Plugins.KurortiYuga.FilialKeyGetter.KYParametersGeneratorStrategy, Megatec.Plugins.KurortiYuga.FilialKeyGetter"/>
22 Настройка, создающая правила отправки оплаты на определенный 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 Настройка, необходимая при использовании системы «Мастер-Финанс». Библиотека, с помощью которой ПК «Мастер-Web» может записывать данные в сторонние финансовые таблицы.
<add key="paymentFactory" value="MasterSoft.Payments.PaymentFactoryPayOnline, MasterSoft.Payments" />
3 Настройка, определяющая, что филиал, на который создается проводка при оплате через Uniteller, будет рассчитываться по правилам из кастомной сборки туроператора.
Настройка регистрозависимая.
Название кастомной сборки
<add key="filialKeyGetter" value="Megatec.Plugins.KurortiYuga.FilialKeyGetter.FilialKeyGetterByServicePartner, Megatec.Plugins.KurortiYuga.FilialKeyGetter"/>

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

Оплату можно произвести по путевкам, статус которых указан в настройке 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.

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

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

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

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


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


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

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

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

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

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

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


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


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

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

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

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

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

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

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


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


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

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

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

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

Для того чтобы вернуться к списку заявок нужно нажать на кнопку Вернуться в магазин.

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

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

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