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

Материал из Megatec
Перейти к: навигация, поиск
[непроверенная версия][досмотренная версия]
(Установка)
 
(не показано 17 промежуточных версий 5 участников)
Строка 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 />
 +
<br><br />
 
Данный модуль реализует возможность оплаты путёвок в ПК «Мастер-Web» с помощью платежной карты через '''Сбербанк'''.<br> Широкое распространение Сбербанка позволяет предоставить возможность онлайн оплаты большому количеству пользователей. Особенно полезным данный модуль может быть туристическим компаниям, ориентированным на работу с частными клиентами.<br />
 
Данный модуль реализует возможность оплаты путёвок в ПК «Мастер-Web» с помощью платежной карты через '''Сбербанк'''.<br> Широкое распространение Сбербанка позволяет предоставить возможность онлайн оплаты большому количеству пользователей. Особенно полезным данный модуль может быть туристическим компаниям, ориентированным на работу с частными клиентами.<br />
  
 
==Установка==  
 
==Установка==  
 
Для установки дополнительного модуля '''Сервис интеграции с платежной системой Sberbank''' нужно создать директорию '''Payments''' в каталоге <code>C:/inetpub/wwwroot</code> (корневом каталоге '''IIS''')  и выложить туда распакованные файлы из архива<br />
 
Для установки дополнительного модуля '''Сервис интеграции с платежной системой Sberbank''' нужно создать директорию '''Payments''' в каталоге <code>C:/inetpub/wwwroot</code> (корневом каталоге '''IIS''')  и выложить туда распакованные файлы из архива<br />
<code>payments-sberbank-9.2.20.ХХXXX.zip</code>.<br>Устанавливать дополнительный модуль необходимо в том же домене, где расположено основное приложение ПК «Мастер-Web».<br />Начиная с релиза '''9222SP0''', если используется [[Платежные web-сервисы: Выбор платежной системы|дополнительный модуль Выбор платёжной системы]], то необходимо скопировать файл <code>Megatec.MasterWeb.PaymentSystem.Sberbank.dll</code> из '''<code>/Payments/bin/</code>''' и разместить в папке '''<code>/EntryPoint/bin/</code>'''.<br>
+
<code>payments-sberbank-9.2.20.ХХXXX.zip</code>.<br>Устанавливать дополнительный модуль необходимо в том же домене, где расположено основное приложение ПК «Мастер-Web».<br />Начиная с релиза '''9222SP0''', если используется [[Платежные web-сервисы: Выбор платежной системы (оплата картой в личном кабинете)|дополнительный модуль Выбор платежной системы (оплата картой в личном кабинете)]], то необходимо скопировать файл <code>Megatec.MasterWeb.PaymentSystem.Sberbank.dll</code> из '''<code>/Payments/bin/</code>''' и разместить в папке '''<code>/EntryPoint/bin/</code>'''.<br>
 
В '''управлении IIS''' необходимо создать ''виртуальный каталог'' для папки '''Payments'''.
 
В '''управлении IIS''' необходимо создать ''виртуальный каталог'' для папки '''Payments'''.
  
Строка 56: Строка 60:
 
| 1
 
| 1
 
| Включение дополнительного модуля '''Система онлайн платежей'''.
 
| Включение дополнительного модуля '''Система онлайн платежей'''.
Обязательная настройка.
+
Обязательная настройка.<br>
 +
<font style="color:red">'''Внимание!'''</font> Путь к приложению обязательно должен содержать ссылку на приложение из внешней сети. В противном случае, она не будет работать.
 
| '''Путь к приложению «Система онлайн платежей»'''.
 
| '''Путь к приложению «Система онлайн платежей»'''.
 
|<syntaxhighlight lang="xml" enclose="div">
 
|<syntaxhighlight lang="xml" enclose="div">
Строка 86: Строка 91:
  
 
| 4
 
| 4
 +
| Настройка, определяющая '''дату''', на которую будет '''подбираться курс валют''' для пересчета '''суммы к оплате'''.
 +
|
 +
<font style="color:red">''Обработка настройки, начиная с релиза 9220SP31.''</font><br />
 +
* '''FixationDate''' или '''отсутствие настройки''' - курс на дату последней фиксации путевки на момент совершения платежа, а если путевка не зафиксирована, то на дату совершения платежа;
 +
* '''ConfirmDate''' — курс на дату последнего ''подтверждения заявки'' (если '''подтверждения''' путевки еще '''не было''', либо '''курс''' на дату подтверждения '''не заведен''', то будет отображаться курс на '''момент совершения платежа''');
 +
* '''OrderDate''' — дата оформления заявки;
 +
* '''PaymentDate''' - курс на дату совершения платежа.
 +
 +
<font style="color:red">''Обработка настройки до релиза 9220SP31.''</font><br />
 +
 +
* '''OrderDate''' — дата оформления заявки;
 +
* '''Today''' — курс на текущую дату;
 +
* '''ConfirmDate''' — курс на дату подтверждения заявки (если подтверждения путевки еще не было, либо курс на дату подтверждения не заведен, то будет отображаться курс на текущую дату).
 +
|<syntaxhighlight lang="xml" enclose="div">
 +
<add key="courseExchangeDate" value="OrderDate" />
 +
</syntaxhighlight>
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 5
 
| Настройка, включающая '''механизм хэширования пароля пользователя''', сохраняемого в файлах <code>cookie</code>, что позволяет усилить безопасность ПК «Мастер-Web».
 
| Настройка, включающая '''механизм хэширования пароля пользователя''', сохраняемого в файлах <code>cookie</code>, что позволяет усилить безопасность ПК «Мастер-Web».
 
По умолчанию хэширование включено.<br />
 
По умолчанию хэширование включено.<br />
Строка 91: Строка 116:
 
Если данная настройка прописана в файле <code>web.config</code> основного приложения, то она должна быть прописана и в платежном сервисе с тем же значением.
 
Если данная настройка прописана в файле <code>web.config</code> основного приложения, то она должна быть прописана и в платежном сервисе с тем же значением.
 
|  
 
|  
* '''false''' - хэширование пароля в файлах <code>cookie</code> ''выключено'';
+
* '''false''' или '''отсутствие настройки''' - хэширование пароля в файлах <code>cookie</code> ''выключено'';
* '''true''' или '''отсутствие настройки''' - хэширование пароля в файлах <code>cookie</code> ''включено''.
+
* '''true''' - хэширование пароля в файлах <code>cookie</code> ''включено''.
 
|<syntaxhighlight lang="xml" enclose="div">
 
|<syntaxhighlight lang="xml" enclose="div">
 
<add key="HashPasswordForCookie" value="true" />
 
<add key="HashPasswordForCookie" value="true" />
Строка 99: Строка 124:
 
|- style="vertical-align:text-top"
 
|- style="vertical-align:text-top"
  
| 5
+
| 6
 
| Настройка, позволяющая производить оплату в новой вкладке браузера.<br>
 
| Настройка, позволяющая производить оплату в новой вкладке браузера.<br>
 
<font style="color:red">Внимание! Настройка обрабатывается, начиная с релиза '''9222SP0'''.</font>
 
<font style="color:red">Внимание! Настройка обрабатывается, начиная с релиза '''9222SP0'''.</font>
Строка 113: Строка 138:
 
|- style="vertical-align:text-top"
 
|- style="vertical-align:text-top"
  
| 6
+
| 7
 
|Настройка, определяющая партнеров в базе ПК «Мастер-Тур», которым разрешено осуществлять оплату путёвок онлайн. <br>
 
|Настройка, определяющая партнеров в базе ПК «Мастер-Тур», которым разрешено осуществлять оплату путёвок онлайн. <br>
 
<font style="color:red">''Внимание!''</font> Настройка обрабатывается, начиная с релиза '''9222SP1'''
 
<font style="color:red">''Внимание!''</font> Настройка обрабатывается, начиная с релиза '''9222SP1'''
Строка 160: Строка 185:
 
|- style="vertical-align:text-top"
 
|- style="vertical-align:text-top"
 
| 3
 
| 3
 +
| Настройка, определяющая '''пользователя''' ПК «Мастер-Тур», к которому будет '''привязываться оплата'''.
 +
Обязательная настройка.
 +
| '''Ключ пользователя''', к которому ''привязывается оплата'' (Поле '''US_KEY''' из таблицы <code>'''[UserList]'''</code>).
 +
|<syntaxhighlight lang="xml" enclose="div">
 +
<add key="masterTourUser" value="95" />
 +
</syntaxhighlight>
 +
 +
|- style="vertical-align:text-top"
 +
| 4
 
| Определяет '''тип платежной операции'''.<br /><br />Тип платежной операции так же может задаваться в настройке '''SYSPaymentOperationId''' в таблице ''SystemSettings''. В таком случае в настройке '''PaymentOperationId''' задается название настройки из таблицы ''SystemSettings''.
 
| Определяет '''тип платежной операции'''.<br /><br />Тип платежной операции так же может задаваться в настройке '''SYSPaymentOperationId''' в таблице ''SystemSettings''. В таком случае в настройке '''PaymentOperationId''' задается название настройки из таблицы ''SystemSettings''.
 
Обязательная настройка.
 
Обязательная настройка.
Строка 169: Строка 203:
  
 
|- style="vertical-align:text-top"
 
|- style="vertical-align:text-top"
| 4
+
| 5
 
| Настройка, позволяющая задавать '''размер комиссии''', которая будет '''включена в сумму оплаты''' ('''для агентств''').<br>
 
| Настройка, позволяющая задавать '''размер комиссии''', которая будет '''включена в сумму оплаты''' ('''для агентств''').<br>
 
Обрабатывается при включенной настройке '''AddPaymentsToMasterFinance'''.
 
Обрабатывается при включенной настройке '''AddPaymentsToMasterFinance'''.
Строка 177: Строка 211:
 
По умолчанию комиссия для агентств равна нулю.
 
По умолчанию комиссия для агентств равна нулю.
 
|<syntaxhighlight lang="xml" enclose="div">
 
|<syntaxhighlight lang="xml" enclose="div">
<add key="addAgencyComission" value="3,627" />
+
<add key="addAgencyComission" value="3.627" />
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
|- style="vertical-align:text-top"
 
|- style="vertical-align:text-top"
  
| 5
+
| 6
 
| Настройка, позволяющая задавать '''размер комиссии''', которая будет '''включена в сумму оплаты''' ('''для частных лиц''').<br>
 
| Настройка, позволяющая задавать '''размер комиссии''', которая будет '''включена в сумму оплаты''' ('''для частных лиц''').<br>
 
Обрабатывается при включенной настройке '''AddPaymentsToMasterFinance'''.
 
Обрабатывается при включенной настройке '''AddPaymentsToMasterFinance'''.
Строка 190: Строка 224:
 
По умолчанию комиссия для частных лиц равна нулю.
 
По умолчанию комиссия для частных лиц равна нулю.
 
|<syntaxhighlight lang="xml" enclose="div">
 
|<syntaxhighlight lang="xml" enclose="div">
<add key="addPersonalComission" value="5" />
+
<add key="addPersonalComission" value="5.0" />
 
</syntaxhighlight>
 
</syntaxhighlight>
 
|- style="vertical-align:text-top"
 
|- style="vertical-align:text-top"
 +
 +
| 7
 +
| Включение режима '''записи нового платежа''' в систему '''«Мастер-Финанс»'''. При этом в ПК «Мастер-Тур» платежи '''не сохраняются'''.
 +
|
 +
* '''true''' - включена запись платежей в «Мастер-Финанс»;
 +
* '''false''' или '''отсутствие настройки''' - выключает запись платежей в «Мастер-Финанс».
 +
|<syntaxhighlight lang="xml" enclose="div">
 +
<add key="AddPaymentsToMasterFinance" value="true"/>
 +
</syntaxhighlight>
 +
|- style="vertical-align:text-top"
 +
 +
| 8
 +
| Настройка, позволяющая создавать объект '''orderBundle''' (товарная корзина), в котором передаются все необходимые данные о товаре/услуге.
 +
|
 +
* '''true''' - включено создание объекта '''orderBundle'''
 +
* '''false''' или отсутствие настройки -  объект '''orderBundle''' не создается <br />
 +
По умолчанию настройка имеет значение false.
 +
|<syntaxhighlight lang="xml" enclose="div">
 +
<add key="useFiscalization" value="false"/>
 +
</syntaxhighlight>
 +
|- style="vertical-align:text-top"
 +
 +
| 9
 +
| Настройка, определяющая '''тип операции при проведении платежа для комиссий'''.
 +
| '''Ключ операции''' (Поле '''PO_ID''' из таблицы <code>'''[PaymentOperations]'''</code>).
 +
|<syntaxhighlight lang="xml" enclose="div">
 +
<add key="paymentOperationCommissionId" value="6" />
 +
</syntaxhighlight>
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 10
 +
| Настройка, задающая услугу, которая добавится в путевку при наличии комиссии, и стоимость которой будет равна сумме комиссии. Работает вместе с настройками ''NewDogovorServiceSvKey'' и ''NewDogovorServicePartnerKey''.
 +
<span style="color:red">Обрабатывается с релиза 15.8.</span>
 +
| Ключ услуги (Поле '''SL_KEY''' из таблицы <code>'''[ServiceList]'''</code>).
 +
|<syntaxhighlight lang="xml" enclose="div">
 +
<add key="NewDogovorServiceServiceListKey" value="450" />
 +
</syntaxhighlight>
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 11
 +
| Настройка, задающая класс для услуги, добавляемой в путевку при наличии комиссии. Работает вместе с настройками ''NewDogovorServiceServiceListKey'' и ''NewDogovorServicePartnerKey''.
 +
<span style="color:red">Обрабатывается с релиза 15.8.</span>
 +
| Ключ класса услуги (Поле '''SV_KEY''' из таблицы <code>'''[Service]'''</code>).
 +
|<syntaxhighlight lang="xml" enclose="div">
 +
<add key="NewDogovorServiceSvKey" value="1055" />
 +
</syntaxhighlight>
 +
 +
|- style="vertical-align:text-top"
 +
 +
| 12
 +
| Настройка, задающая партнера, которая будет являться поставщиком для услуги, добавляемой в путевку при наличии комиссии. Работает вместе с настройками ''NewDogovorServiceServiceListKey'' и ''NewDogovorServiceSvKey''.
 +
<span style="color:red">Обрабатывается с релиза 15.8.</span>
 +
| Ключ класса услуги (Поле '''PR_KEY''' из таблицы <code>'''[Partners]'''</code>).
 +
|<syntaxhighlight lang="xml" enclose="div">
 +
<add key="NewDogovorServicePartnerKey" value="12921" />
 +
</syntaxhighlight>
  
 
|}
 
|}
Строка 215: Строка 307:
 
Если данная настройка прописана в файле <code>web.config</code> платежного сервиса, то она должна быть прописана и в основном приложении с тем же значением.
 
Если данная настройка прописана в файле <code>web.config</code> платежного сервиса, то она должна быть прописана и в основном приложении с тем же значением.
 
|  
 
|  
* '''false''' - хэширование пароля в файлах <code>cookie</code> ''выключено'';
+
* '''false''' или '''отсутствие настройки''' - хэширование пароля в файлах <code>cookie</code> ''выключено'';
* '''true''' или '''отсутствие настройки''' - хэширование пароля в файлах <code>cookie</code> ''включено''.
+
* '''true''' - хэширование пароля в файлах <code>cookie</code> ''включено''.
 
|<syntaxhighlight lang="xml" enclose="div">
 
|<syntaxhighlight lang="xml" enclose="div">
 
<add key="HashPasswordForCookie" value="true" />
 
<add key="HashPasswordForCookie" value="true" />
Строка 230: Строка 322:
 
<add key="PaymentOperationId" value="1" />
 
<add key="PaymentOperationId" value="1" />
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
|- style="vertical-align:text-top"
  
|- style="vertical-align:text-top"
 
 
| 3
 
| 3
| Имя текущей установленной службы.
+
|Определяет '''тип платежной системы''' при сохранении платежей.
<span style="color:red">Внимание!</span> Настройка обрабатывается только в версии Мастер-Тур 15.
+
Информация о типе платежной системы записывается в [[Мастер-Тур:Работа с группой путевок#История путевки|историю по путевке]].<br />
| Наименование службы, к которой может обращаться текущий клиент (по значению настройки [[Мастер-Тур(15):Установка#Установка службы MasterTourService|''acceptableServices'']] в ''MasterTourService''). По умолчанию настройка не заполнена. Значение настройки должно быть явно задано.<br />
+
Для системы '''«Мастер-Финанс»''' информация записывается в столбец '''DP_PAYMENTSSYS''' таблицы <code>'''[FIN_DOGOVOR_PAID]'''</code>.<br />
 +
Обязательная настройка.
 +
|Название платежной системы
 
|<syntaxhighlight lang="xml" enclose="div">
 
|<syntaxhighlight lang="xml" enclose="div">
<add key="acceptableServices" value=""/>
+
<add key="PaymentSystem" value="Sberbank"/>
 
</syntaxhighlight>
 
</syntaxhighlight>
 
|- style="vertical-align:text-top"
 
|- style="vertical-align:text-top"
  
 
| 4
 
| 4
| Включение режима '''записи нового платежа''' в систему '''«Мастер-Финанс»'''. При этом в ПК «Мастер-Тур» платежи '''не сохраняются'''.
+
| Имя текущей установленной службы.
|  
+
<span style="color:red">Внимание!</span> Настройка обрабатывается только в версии Мастер-Тур 15.
* '''true''' - включена запись платежей в «Мастер-Финанс»;
+
| Наименование службы, к которой может обращаться текущий клиент (по значению настройки [[Мастер-Тур(15):Установка#Установка службы MasterTourService|''acceptableServices'']] в ''MasterTourService''). По умолчанию настройка не заполнена. Значение настройки должно быть явно задано.<br />
* '''false''' или '''отсутствие настройки''' - выключает запись платежей в «Мастер-Финанс».
 
 
|<syntaxhighlight lang="xml" enclose="div">
 
|<syntaxhighlight lang="xml" enclose="div">
<add key="AddPaymentsToMasterFinance" value="true"/>
+
<add key="acceptableServices" value=""/>
 
</syntaxhighlight>
 
</syntaxhighlight>
 
|- style="vertical-align:text-top"
 
|- style="vertical-align:text-top"
Строка 290: Строка 383:
 
|}
 
|}
  
 +
Начиная с релиза 15.8 появилась возможность добавления услуги комиссии от оплаты через платежный шлюз в путевку и формирования ПКО различным образом.
 +
 +
===Сценарии работы===
 +
Предполагаются 3 сценария работы:<br />
 +
1. Заданы размеры комиссий и параметры '''paymentOperationId''', '''paymentOperationComissionId''', '''NewDogovorServiceSvKey''', '''NewDogovorServiceServiceListKey''', '''NewDogovorServicePartnerKey'''. В этом случае при оплате в базе данных формируется 1 ПКО (сумма за путевку + сумма комиссии), в путевке создается услуга "Комиссия при оплате через платежный шлюз" и сумма путевки увеличивается на размер стоимости созданной услуги.<br />
 +
2. Заданы размеры комиссий и параметры '''paymentOperationId''', '''paymentOperationComissionId'''. Параметры '''NewDogovorServiceSvKey''', '''NewDogovorServiceServiceListKey''', '''NewDogovorServicePartnerKey''' не заданы. В этом случае при оплате в базе данных формируются 2 ПКО (отдельно за путевку и за комиссию). Услуга в путевке не создается и сумма путевки не меняется.<br />
 +
3. Заданы размеры комиссий и параметр '''paymentOperationId'''. Значение параметра '''paymentOperationComissionId=0''' или параметр отсутствует. Оплата за комиссию уходит сразу в банк. В этом случае при оплате в базе данных формируется 1 ПКО за путевку.<br />
 +
<span style="color:red">Внимание!</span> Данные настройки не работают при включенной настройке <add key="AddPaymentsToMasterFinance" value="true"/>.<br />
 
==Подготовка данных==
 
==Подготовка данных==
 
Оплату можно произвести по путевкам, '''статус''' которых указан в настройке '''paymentsStatuses'''.<br />
 
Оплату можно произвести по путевкам, '''статус''' которых указан в настройке '''paymentsStatuses'''.<br />
Строка 342: Строка 443:
 
Если пользователь ввёл ошибочные данные при заполнении необходимых полей, то появится сообщение об ошибке и будет произведён возврат к странице заказа.
 
Если пользователь ввёл ошибочные данные при заполнении необходимых полей, то появится сообщение об ошибке и будет произведён возврат к странице заказа.
  
[[Category:Платежные web-сервисы]]
+
==Ошибка 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)
 +
 
 +
<font style="color:red">''Для проверки доступности TLS соединения необходимо выполнить следующую команду в командной строке или в оболочке Powershell, заменив ссылку на ссылку для необходимой системы оплаты:''</font><br />
 +
'''Invoke-WebRequest -Uri https://securepay.tinkoff.ru'''<br />
 +
 
 +
Вариант успешного ответа при доступном соединении<br />
 +
Invoke-WebRequest : Удаленный сервер возвратил ошибку: (404) Не найден.
 +
строка:1 знак:1
 +
+ Invoke-WebRequest -Uri https://securepay.tinkoff.ru
 +
 
 +
Вариант некорректного ответа при закрытом соединении<br />
 +
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
 +
 
 +
[[Category:Платежные_web-сервисы]]

Текущая версия на 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