Платежные web-сервисы: Сервис интеграции с платежной системой Sberbank (оплата картой в личном кабинете) — различия между версиями
Aefremov (обсуждение | вклад) |
|||
(не показаны 34 промежуточные версии 6 участников) | |||
Строка 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 /> | + | <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'''. | ||
Строка 35: | Строка 39: | ||
В файле <code>web.config</code>, расположенном в папке '''Payments''' пропишите необходимые параметры подключения (<span style="color:red">красным цветом</span> выделены значения, которые необходимо ввести). | В файле <code>web.config</code>, расположенном в папке '''Payments''' пропишите необходимые параметры подключения (<span style="color:red">красным цветом</span> выделены значения, которые необходимо ввести). | ||
Строка подключения к базе данных ПК «Мастер-Тур»:<br /> | Строка подключения к базе данных ПК «Мастер-Тур»:<br /> | ||
− | + | <code><add key = "connectionString" value = "Data Source=<span style="color:red">ip-адрес сервера базы данных ПК «Мастер-Тур»</span>;Initial Catalog=<span style="color:red">название базы данных ПК «Мастер-Тур»</span>;User ID=<span style="color:red">логин пользователя ПК «Мастер-Тур»</span>;Password=<span style="color:red">пароль пользователя ПК «Мастер-Тур»</span>"/></code> | |
− | |||
==Настройка== | ==Настройка== | ||
Строка 57: | Строка 60: | ||
| 1 | | 1 | ||
| Включение дополнительного модуля '''Система онлайн платежей'''. | | Включение дополнительного модуля '''Система онлайн платежей'''. | ||
− | Обязательная настройка. | + | Обязательная настройка.<br> |
+ | <font style="color:red">'''Внимание!'''</font> Путь к приложению обязательно должен содержать ссылку на приложение из внешней сети. В противном случае, она не будет работать. | ||
| '''Путь к приложению «Система онлайн платежей»'''. | | '''Путь к приложению «Система онлайн платежей»'''. | ||
|<syntaxhighlight lang="xml" enclose="div"> | |<syntaxhighlight lang="xml" enclose="div"> | ||
Строка 87: | Строка 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 /> | ||
Строка 92: | Строка 116: | ||
Если данная настройка прописана в файле <code>web.config</code> основного приложения, то она должна быть прописана и в платежном сервисе с тем же значением. | Если данная настройка прописана в файле <code>web.config</code> основного приложения, то она должна быть прописана и в платежном сервисе с тем же значением. | ||
| | | | ||
− | * '''false''' - хэширование пароля в файлах <code>cookie</code> ''выключено''; | + | * '''false''' или '''отсутствие настройки''' - хэширование пароля в файлах <code>cookie</code> ''выключено''; |
− | * '''true | + | * '''true''' - хэширование пароля в файлах <code>cookie</code> ''включено''. |
|<syntaxhighlight lang="xml" enclose="div"> | |<syntaxhighlight lang="xml" enclose="div"> | ||
<add key="HashPasswordForCookie" value="true" /> | <add key="HashPasswordForCookie" value="true" /> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 6 | ||
+ | | Настройка, позволяющая производить оплату в новой вкладке браузера.<br> | ||
+ | <font style="color:red">Внимание! Настройка обрабатывается, начиная с релиза '''9222SP0'''.</font> | ||
+ | <br><font style="color:red">'''Важно!'''</font><br /> | ||
+ | Если данная настройка прописана в файле <code>web.config</code> основного приложения, то она должна быть прописана и в платежном сервисе с тем же значением. | ||
+ | |||
+ | | | ||
+ | * '''false''' или '''отсутствие настройки''' - оплата производится в текущей вкладке браузера; | ||
+ | * '''true''' - оплата производится в новой вкладке браузера. | ||
+ | |<syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="OpenPaymentInNewWindow" value="true" /> | ||
+ | </syntaxhighlight> | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 7 | ||
+ | |Настройка, определяющая партнеров в базе ПК «Мастер-Тур», которым разрешено осуществлять оплату путёвок онлайн. <br> | ||
+ | <font style="color:red">''Внимание!''</font> Настройка обрабатывается, начиная с релиза '''9222SP1''' | ||
+ | | | ||
+ | *'''Ключи партнеров''' таблицы [tbl_Partners], которым разрешена онлайн-оплата путёвок; | ||
+ | *'''пустое значение''' или '''отсутствие настройки''' – онлайн-оплата путёвок доступна всем партнёрам. | ||
+ | | <syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="allowedPaymentPartnerKeys" value="10764"/> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
|} | |} | ||
Строка 133: | Строка 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''. | ||
Обязательная настройка. | Обязательная настройка. | ||
− | <br><font style="color:red">Внимание! Настройка в данной секции указывается, начиная с релиза ''' | + | <br><font style="color:red">Внимание! Настройка в данной секции указывается, начиная с релиза '''9222SP0'''</font> |
| '''Идентификатор типа операции''' - поле '''PO_Id''' из таблицы <code>'''[PaymentOperations]'''</code>.<br /><br />Либо '''название настройки SYSPaymentOperationId''' из таблицы <code>'''[SystemSettings]'''</code>. | | '''Идентификатор типа операции''' - поле '''PO_Id''' из таблицы <code>'''[PaymentOperations]'''</code>.<br /><br />Либо '''название настройки SYSPaymentOperationId''' из таблицы <code>'''[SystemSettings]'''</code>. | ||
|<syntaxhighlight lang="xml" enclose="div"> | |<syntaxhighlight lang="xml" enclose="div"> | ||
Строка 142: | Строка 203: | ||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
+ | | 5 | ||
+ | | Настройка, позволяющая задавать '''размер комиссии''', которая будет '''включена в сумму оплаты''' ('''для агентств''').<br> | ||
+ | Обрабатывается при включенной настройке '''AddPaymentsToMasterFinance'''. | ||
+ | <span style="color:red">Внимание! Настройка обрабатывается, начиная с релиза '''9222SP0'''.</span> | ||
+ | | '''Значение комиссии''', которую необходимо ''включить в сумму платежа'' (целая часть отделяется либо запятой, либо точкой). | ||
+ | Комиссия указывается '''в процентах'''.<br /> | ||
+ | По умолчанию комиссия для агентств равна нулю. | ||
+ | |<syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="addAgencyComission" value="3.627" /> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 6 | ||
+ | | Настройка, позволяющая задавать '''размер комиссии''', которая будет '''включена в сумму оплаты''' ('''для частных лиц''').<br> | ||
+ | Обрабатывается при включенной настройке '''AddPaymentsToMasterFinance'''. | ||
+ | <span style="color:red">Внимание! Настройка обрабатывается, начиная с релиза '''9222SP0'''.</span> | ||
+ | | '''Значение комиссии''', которую необходимо ''включить в сумму платежа'' (целая часть отделяется либо запятой, либо точкой). | ||
+ | Комиссия указывается '''в процентах'''.<br /> | ||
+ | По умолчанию комиссия для частных лиц равна нулю. | ||
+ | |<syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="addPersonalComission" value="5.0" /> | ||
+ | </syntaxhighlight> | ||
+ | |- 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> | ||
+ | |||
|} | |} | ||
<br /> | <br /> | ||
Строка 163: | Строка 307: | ||
Если данная настройка прописана в файле <code>web.config</code> платежного сервиса, то она должна быть прописана и в основном приложении с тем же значением. | Если данная настройка прописана в файле <code>web.config</code> платежного сервиса, то она должна быть прописана и в основном приложении с тем же значением. | ||
| | | | ||
− | * '''false''' - хэширование пароля в файлах <code>cookie</code> ''выключено''; | + | * '''false''' или '''отсутствие настройки''' - хэширование пароля в файлах <code>cookie</code> ''выключено''; |
− | * '''true | + | * '''true''' - хэширование пароля в файлах <code>cookie</code> ''включено''. |
|<syntaxhighlight lang="xml" enclose="div"> | |<syntaxhighlight lang="xml" enclose="div"> | ||
<add key="HashPasswordForCookie" value="true" /> | <add key="HashPasswordForCookie" value="true" /> | ||
Строка 178: | Строка 322: | ||
<add key="PaymentOperationId" value="1" /> | <add key="PaymentOperationId" value="1" /> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |- style="vertical-align:text-top" | ||
+ | | 3 | ||
+ | |Определяет '''тип платежной системы''' при сохранении платежей. | ||
+ | Информация о типе платежной системы записывается в [[Мастер-Тур:Работа с группой путевок#История путевки|историю по путевке]].<br /> | ||
+ | Для системы '''«Мастер-Финанс»''' информация записывается в столбец '''DP_PAYMENTSSYS''' таблицы <code>'''[FIN_DOGOVOR_PAID]'''</code>.<br /> | ||
+ | Обязательная настройка. | ||
+ | |Название платежной системы | ||
+ | |<syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="PaymentSystem" value="Sberbank"/> | ||
+ | </syntaxhighlight> | ||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
− | | | + | |
+ | | 4 | ||
| Имя текущей установленной службы. | | Имя текущей установленной службы. | ||
<span style="color:red">Внимание!</span> Настройка обрабатывается только в версии Мастер-Тур 15. | <span style="color:red">Внимание!</span> Настройка обрабатывается только в версии Мастер-Тур 15. | ||
Строка 187: | Строка 342: | ||
<add key="acceptableServices" value=""/> | <add key="acceptableServices" value=""/> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 5 | ||
+ | | Настройка, '''включающая экран редактирования суммы к оплате'''.<br> | ||
+ | <span style="color:red">Внимание! Настройка обрабатывается, начиная с релиза '''9222SP0'''.</span> | ||
+ | | | ||
+ | * '''true''' - экран корректировки суммы к оплате ''отображается''; | ||
+ | * '''false''' или '''отсутствие настройки''' - экран корректировки суммы к оплате ''не отображается''. | ||
+ | |<syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="allowCustomAmount" value="true" /> | ||
+ | </syntaxhighlight> | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 6 | ||
+ | | Настройка, позволяющая производить оплату в новой вкладке браузера.<br> | ||
+ | <font style="color:red">Внимание! Настройка обрабатывается, начиная с релиза '''9222SP0'''.</font> | ||
+ | <br><font style="color:red">'''Важно!'''</font><br /> | ||
+ | Если данная настройка прописана в файле <code>web.config</code> платёжного сервиса, то она должна быть прописана и в основном приложении с тем же значением.<br> | ||
+ | При сочетании ''включенных'' настроек '''ShowAlertAfterPayment''' и '''OpenPaymentInNewWindow''', после вывода всплывающего сообщения и подтверждения пользователя, новое окно, открытое для оплаты, закрывается автоматически. | ||
+ | |||
+ | | | ||
+ | * '''false''' или '''отсутствие настройки''' - оплата производится в текущей вкладке браузера; | ||
+ | * '''true''' - оплата производится в новой вкладке браузера. | ||
+ | |<syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="OpenPaymentInNewWindow" value="true" /> | ||
+ | </syntaxhighlight> | ||
+ | |- style="vertical-align:text-top" | ||
+ | |||
+ | | 7 | ||
+ | | Настройка, позволяющая при завершении оплаты показывать всплывающее окно с сообщением о результатах оплаты.<br> | ||
+ | <font style="color:red">Внимание! Настройка обрабатывается, начиная с релиза '''9222SP0'''.</font> | ||
+ | При сочетании ''включенных'' настроек '''ShowAlertAfterPayment''' и '''OpenPaymentInNewWindow''', после вывода всплывающего сообщения и подтверждения пользователя, новое окно, открытое для оплаты, закрывается автоматически. | ||
+ | | | ||
+ | * '''false''' - при завершении оплаты показывать обычное сообщение о результатах оплаты; | ||
+ | * '''true''' или '''отсутствие настройки''' - при завершении оплаты показывать всплывающее окно с сообщением о результатах оплаты. | ||
+ | |<syntaxhighlight lang="xml" enclose="div"> | ||
+ | <add key="ShowAlertAfterPayment" value="true" /> | ||
+ | </syntaxhighlight> | ||
+ | |- style="vertical-align:text-top" | ||
|} | |} | ||
+ | Начиная с релиза 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 /> | ||
− | + | Необходимо, чтобы ISO-код валют справочника [[Мастер-Тур:Справочники#Список Валют|Список валют]] соответствовал [http://www.currency-iso.org/dam/downloads/lists/list_one.xls стандарту ISO 4217] (например, для Российского рубля ISO-код должен быть "RUB"). | |
− | |||
<br /> | <br /> | ||
Строка 241: | Строка 442: | ||
При '''успешном''' проведении платежа путёвка приобретает статус Ok. | При '''успешном''' проведении платежа путёвка приобретает статус Ok. | ||
Если пользователь ввёл ошибочные данные при заполнении необходимых полей, то появится сообщение об ошибке и будет произведён возврат к странице заказа. | Если пользователь ввёл ошибочные данные при заполнении необходимых полей, то появится сообщение об ошибке и будет произведён возврат к странице заказа. | ||
− | [[Category: | + | |
+ | ==Ошибка 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.
Поддерживаемые версии: |
Начиная с релиза 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
3 В открывшемся дереве каталогов выбрать Web Sites – Default Web Site. В открывшемся списке найти папку, для которой нужно создать виртуальный каталог, кликнуть по ней правой кнопкой мыши и выбрать Преобразовать в приложение
4 В открывшемся окне нужно нажать кнопку ОК
Подключение к базе данных ПК «Мастер-Тур»
В файле web.config
, расположенном в папке Payments пропишите необходимые параметры подключения (красным цветом выделены значения, которые необходимо ввести).
Строка подключения к базе данных ПК «Мастер-Тур»:
<add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК «Мастер-Тур»;Initial Catalog=название базы данных ПК «Мастер-Тур»;User ID=логин пользователя ПК «Мастер-Тур»;Password=пароль пользователя ПК «Мастер-Тур»"/>
Настройка
После установки надстройка Сервис интеграции с платежной системой Sberbank доступна в экранах «Список заявок» и «Информация о заказе».
Настройки ПК «Мастер-Web»
Настройки задаются в секции <appSettings>
файла web.config
основного приложения ПК «Мастер-Web».
№ | Описание | Значение | Настройка |
---|---|---|---|
1 | Включение дополнительного модуля Система онлайн платежей.
Обязательная настройка. |
Путь к приложению «Система онлайн платежей». | <add key="paymentsLink" value="http://somesite/Payments" />
|
2 | Настройка, определяющая статусы путевок, при которых доступна возможность оплаты через Сбербанк.
Обязательная настройка. |
Ключи статусов из таблицы [Order_Status] , при которых доступна оплата через Сбербанк.
|
<add key="paymentsStatuses" value="7,37" />
|
3 | Настройка, позволяющая выводить предупреждающее сообщение о снятии комиссии при оплате. |
|
<add key="askUserBeforePayment" value="true" />
|
4 | Настройка, определяющая дату, на которую будет подбираться курс валют для пересчета суммы к оплате. |
Обработка настройки, начиная с релиза 9220SP31.
Обработка настройки до релиза 9220SP31.
|
<add key="courseExchangeDate" value="OrderDate" />
|
5 | Настройка, включающая механизм хэширования пароля пользователя, сохраняемого в файлах cookie , что позволяет усилить безопасность ПК «Мастер-Web».
По умолчанию хэширование включено. |
|
<add key="HashPasswordForCookie" value="true" />
|
6 | Настройка, позволяющая производить оплату в новой вкладке браузера. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0.
|
|
<add key="OpenPaymentInNewWindow" value="true" />
|
7 | Настройка, определяющая партнеров в базе ПК «Мастер-Тур», которым разрешено осуществлять оплату путёвок онлайн. Внимание! Настройка обрабатывается, начиная с релиза 9222SP1 |
|
<add key="allowedPaymentPartnerKeys" value="10764"/>
|
Настройки приложения «Система онлайн платежей»
Настройки задаются в секции <Sberbank>
файла web.config
приложения Система онлайн платежей.
Секция <Sberbank> должна начинаться с заглавной буквы.
№ | Описание | Значение | Настройка |
---|---|---|---|
1 | Идентификатор клиента, который выдается платежной системой Sberbank.
Обязательная настройка. |
Идентификатор клиента | <add key="userName" value="логин sberbank-api" />
|
2 | Пароль клиента, который выдается платежной системой Sberbank.
Обязательная настройка. |
Пароль клиента | <add key="password" value="пароль sberbank-api" />
|
3 | Настройка, определяющая пользователя ПК «Мастер-Тур», к которому будет привязываться оплата.
Обязательная настройка. |
Ключ пользователя, к которому привязывается оплата (Поле US_KEY из таблицы [UserList] ).
|
<add key="masterTourUser" value="95" />
|
4 | Определяет тип платежной операции. Тип платежной операции так же может задаваться в настройке SYSPaymentOperationId в таблице SystemSettings. В таком случае в настройке PaymentOperationId задается название настройки из таблицы SystemSettings. Обязательная настройка.
|
Идентификатор типа операции - поле PO_Id из таблицы [PaymentOperations] .Либо название настройки SYSPaymentOperationId из таблицы [SystemSettings] .
|
<add key="PaymentOperationId" value="1" />
|
5 | Настройка, позволяющая задавать размер комиссии, которая будет включена в сумму оплаты (для агентств). Обрабатывается при включенной настройке AddPaymentsToMasterFinance. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0. |
Значение комиссии, которую необходимо включить в сумму платежа (целая часть отделяется либо запятой, либо точкой).
Комиссия указывается в процентах. |
<add key="addAgencyComission" value="3.627" />
|
6 | Настройка, позволяющая задавать размер комиссии, которая будет включена в сумму оплаты (для частных лиц). Обрабатывается при включенной настройке AddPaymentsToMasterFinance. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0. |
Значение комиссии, которую необходимо включить в сумму платежа (целая часть отделяется либо запятой, либо точкой).
Комиссия указывается в процентах. |
<add key="addPersonalComission" value="5.0" />
|
7 | Включение режима записи нового платежа в систему «Мастер-Финанс». При этом в ПК «Мастер-Тур» платежи не сохраняются. |
|
<add key="AddPaymentsToMasterFinance" value="true"/>
|
8 | Настройка, позволяющая создавать объект orderBundle (товарная корзина), в котором передаются все необходимые данные о товаре/услуге. |
По умолчанию настройка имеет значение false. |
<add key="useFiscalization" value="false"/>
|
9 | Настройка, определяющая тип операции при проведении платежа для комиссий. | Ключ операции (Поле PO_ID из таблицы [PaymentOperations] ).
|
<add key="paymentOperationCommissionId" value="6" />
|
10 | Настройка, задающая услугу, которая добавится в путевку при наличии комиссии, и стоимость которой будет равна сумме комиссии. Работает вместе с настройками NewDogovorServiceSvKey и NewDogovorServicePartnerKey.
Обрабатывается с релиза 15.8. |
Ключ услуги (Поле SL_KEY из таблицы [ServiceList] ).
|
<add key="NewDogovorServiceServiceListKey" value="450" />
|
11 | Настройка, задающая класс для услуги, добавляемой в путевку при наличии комиссии. Работает вместе с настройками NewDogovorServiceServiceListKey и NewDogovorServicePartnerKey.
Обрабатывается с релиза 15.8. |
Ключ класса услуги (Поле SV_KEY из таблицы [Service] ).
|
<add key="NewDogovorServiceSvKey" value="1055" />
|
12 | Настройка, задающая партнера, которая будет являться поставщиком для услуги, добавляемой в путевку при наличии комиссии. Работает вместе с настройками NewDogovorServiceServiceListKey и NewDogovorServiceSvKey.
Обрабатывается с релиза 15.8. |
Ключ класса услуги (Поле PR_KEY из таблицы [Partners] ).
|
<add key="NewDogovorServicePartnerKey" value="12921" />
|
Настройки задаются в секции <appSettings>
файла web.config
приложения Система онлайн платежей
№ | Описание | Значение | Настройка |
---|---|---|---|
1 | Настройка, включающая механизм хэширования пароля пользователя, сохраняемого в файлах cookie , что позволяет усилить безопасность ПК «Мастер-Web».
По умолчанию хэширование включено. |
|
<add key="HashPasswordForCookie" value="true" />
|
2 | Определяет тип платежной операции. Тип платежной операции так же может задаваться в настройке SYSPaymentOperationId в таблице SystemSettings. В таком случае в настройке PaymentOperationId задается название настройки из таблицы SystemSettings. Обязательная настройка.
|
Идентификатор типа операции - поле PO_Id из таблицы [PaymentOperations] .Либо название настройки SYSPaymentOperationId из таблицы [SystemSettings] .
|
<add key="PaymentOperationId" value="1" />
|
3 | Определяет тип платежной системы при сохранении платежей.
Информация о типе платежной системы записывается в историю по путевке. |
Название платежной системы | <add key="PaymentSystem" value="Sberbank"/>
|
4 | Имя текущей установленной службы.
Внимание! Настройка обрабатывается только в версии Мастер-Тур 15. |
Наименование службы, к которой может обращаться текущий клиент (по значению настройки acceptableServices в MasterTourService). По умолчанию настройка не заполнена. Значение настройки должно быть явно задано. |
<add key="acceptableServices" value=""/>
|
5 | Настройка, включающая экран редактирования суммы к оплате. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0. |
|
<add key="allowCustomAmount" value="true" />
|
6 | Настройка, позволяющая производить оплату в новой вкладке браузера. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0.
|
|
<add key="OpenPaymentInNewWindow" value="true" />
|
7 | Настройка, позволяющая при завершении оплаты показывать всплывающее окно с сообщением о результатах оплаты. Внимание! Настройка обрабатывается, начиная с релиза 9222SP0. При сочетании включенных настроек ShowAlertAfterPayment и OpenPaymentInNewWindow, после вывода всплывающего сообщения и подтверждения пользователя, новое окно, открытое для оплаты, закрывается автоматически. |
|
<add key="ShowAlertAfterPayment" value="true" />
|
Начиная с релиза 15.8 появилась возможность добавления услуги комиссии от оплаты через платежный шлюз в путевку и формирования ПКО различным образом.
Сценарии работы
Предполагаются 3 сценария работы:
1. Заданы размеры комиссий и параметры paymentOperationId, paymentOperationComissionId, NewDogovorServiceSvKey, NewDogovorServiceServiceListKey, NewDogovorServicePartnerKey. В этом случае при оплате в базе данных формируется 1 ПКО (сумма за путевку + сумма комиссии), в путевке создается услуга "Комиссия при оплате через платежный шлюз" и сумма путевки увеличивается на размер стоимости созданной услуги.
2. Заданы размеры комиссий и параметры paymentOperationId, paymentOperationComissionId. Параметры NewDogovorServiceSvKey, NewDogovorServiceServiceListKey, NewDogovorServicePartnerKey не заданы. В этом случае при оплате в базе данных формируются 2 ПКО (отдельно за путевку и за комиссию). Услуга в путевке не создается и сумма путевки не меняется.
3. Заданы размеры комиссий и параметр paymentOperationId. Значение параметра paymentOperationComissionId=0 или параметр отсутствует. Оплата за комиссию уходит сразу в банк. В этом случае при оплате в базе данных формируется 1 ПКО за путевку.
Внимание! Данные настройки не работают при включенной настройке <add key="AddPaymentsToMasterFinance" value="true"/>.
Подготовка данных
Оплату можно произвести по путевкам, статус которых указан в настройке paymentsStatuses.
Необходимо, чтобы ISO-код валют справочника Список валют соответствовал стандарту ISO 4217 (например, для Российского рубля ISO-код должен быть "RUB").
Работа в системе
Поиск путевки
Список заявок, забронированных в базе данных туроператора, доступен в экране «Список заказов» по адресу: http://ip-адрес сервера Мастер-Веб/MasterWebStandard/OrderList.aspx
.
Экран «Список заказов» доступен только для зарегистрированных и авторизованных в системе пользователей.
После ввода имени пользователя и пароля загрузится список заявок, оформленных на покупателя/агентство, указанного в поле «Партнер в БД МТ» при регистрации пользователя в Системе администрирования ПК «Мастер-Web», который сопоставлен имени текущего пользователя.
Для отбора путевок можно использовать фильтры:
- Поиск по номеру заявки;
- Поиск по фамилии туриста;
- Поиск по статусу документов на визу;
- Поиск по стране;
- Поиск по дате заявки;
- Дата тура с... и Дата тура по...;
- Путевки с наличием услуги «Виза»;
- Путевки с задолженностями.
Оплата путевки
Оплата доступна только для путевок имеющих статус, ключ которого указан в настройке paymentsStatuses.
Оплата путевок доступна в экранах «Список заявок» и «Информация о заказе».
Экран Список заказов доступен по адресу: http://ip-адрес сервера Мастер-Веб/MasterWebStandard/OrderList.aspx
.
Экран Информация о заказе доступен по адресу: http://ip-адрес сервера Мастер-Веб/MasterWebStandard/OrderInfo.aspx
.
Для оплаты путевки через Сбербанк необходимо нажать ссылку Оплатить для нужной путевки (или кнопку Оплатить on-line в экране Информация о заказе).
При успешном проведении платежа путёвка приобретает статус Ok.
Если пользователь ввёл ошибочные данные при заполнении необходимых полей, то появится сообщение об ошибке и будет произведён возврат к странице заказа.
Ошибка SecureChannelFailure
Появление такой ошибки может быть вызвано невозможностью установить TLS соединение, которое используется для передачи данных от платежной системы. Вызвано некорректными настройками брандмауэра/firewall или некорректными настройками сервера. В случае обнаружения закрытого канала TLS необходимо обратиться к администратору вашей интернет-сети.
On error occurred during signing in. Contact our manager System.Exception: Some error occured: SecureChannelFailure at Megatec.MasterWeb.PaymentSystem.Tinkoff.TinkoffGateway.Authorization(TinkoffParameters parameters, String token) in C:\Users\vmizh\Work\MasterTour\Source\MW\Megatec.MasterWeb.PaymentSystem.Tinkoff\TinkoffGateway.cs:line 430 at Megatec.MasterWeb.PaymentSystem.Tinkoff.TinkoffGateway.Login(IPaymentParameters parameters) in C:\Users\vmizh\Work\MasterTour\Source\MW\Megatec.MasterWeb.PaymentSystem.Tinkoff\TinkoffGateway.cs:line 106 at MasterWebStandard2.Payment.ParseRequest(String action, String orderCode)
Для проверки доступности TLS соединения необходимо выполнить следующую команду в командной строке или в оболочке Powershell, заменив ссылку на ссылку для необходимой системы оплаты:
Invoke-WebRequest -Uri https://securepay.tinkoff.ru
Вариант успешного ответа при доступном соединении
Invoke-WebRequest : Удаленный сервер возвратил ошибку: (404) Не найден. строка:1 знак:1 + Invoke-WebRequest -Uri https://securepay.tinkoff.ru
Вариант некорректного ответа при закрытом соединении
Invoke-WebRequest : The request was aborted: Could not create SSL/TLS secure channel. At line:1 char:2 + Invoke-WebRequest -Uri https://securepay.tinkoff.ru