Мастер-Тур(15):PaymentService
Содержание
Введение
Начиная с релиза 15.8 разработан сервис оплат (PaymentService), который нужен для проведения оплаты в ПК Мастер-Тур.
В этот сервис постепенно будут добавляться новые методы из Мастер-Центр оплат. На текущий момент реализован метод ДобавитьОплатуРассчитывать
Установка службы сервиса оплат
- Скопировать папку PaymentService из дистрибутива на сервер. Служба PaymentService должна устанавливаться на компьютере, имеющем доступ к серверу баз данных, или на компьютере, который сам является сервером баз данных (установлен MS SQL Server).
- Перед установкой службы сервиса оплат необходимо настроить конфигурационный файл appsettings.json.
№ | Название | Описание | Настройка |
---|---|---|---|
1 | Строка подключения | Строка подключения к базе данных ПК «Мастер-Тур» указывается в секции ConnectionStrings.
Внимание!
|
"MtDatabase": "Server=Server; Database=Database; User Id=User; Password=Password;"
|
2 | Путь к службе сервиса оплат | По умолчанию служба сервиса оплат использует порт 5010 и название PaymentService. Рекомендуется использование значений по умолчанию. Внимание! |
"applicationUrl": "http://*:5010",
"ApplicationName": "PaymentService",
|
3 | Путь к службе MTS | Необходимо указать адрес и порт к установленной службе MTS (для подписи проводимых платежей) |
"SoapServiceAddress": "http://localhost:80/MTS",
|
- Установка осуществляется запуском скрипта _Install.cmd от имени администратора.
- При установке в Брандмауэре Windows создаются правила для входящих подключений для открытия порта PaymentService.
- В Службах Windows добавляется служба PaymentService.
- Для удаления службы необходимо запустить скрипт _UnInstall.cmd от имени администратора. При этом будут удалены правила для входящих подключений.
Работа службы сервиса оплат
Добавить оплату (AddPayment)
Метод производит внесение оплаты в базу данных Мастер-Тур.
- Формат запроса:
- POST .../PaymentService/AddPayment?
- Принимаемые параметры (* – обязательный):
- PaymentOperation * – ключ типа операции (PO_Id из таблицы PaymentOperations)
- PaymentSum * – сумма платежа в валюте платежа
- CurrencyISOCode * – ISO код валюты (RA_ISOCode из таблицы Rates)
- DogovorKey * – ключ путевки
- DogovorCode – код путевки (отрабатывает, если не указан DogovorKey)
- PaymentDate * – дата платежа (в формате yyyy-mm-dd
- CourseDate – курс (если не указан, берется на дату платежа)
- DocNumber – номер документа
- ReceivedFrom – от кого получен платеж
- PaymentFor – за что произведен платеж
- PartnerKey – если платеж производиться партнеру, то этот ключ определяет конкретного партнера
- NoDetails – детализация платежа (по умолчанию - false, детализация платежа будет создана)
- Возвращаемый результат:
- ключ платежа
Вызов метода AddPayment POST http://localhost:5010/PaymentService/AddPayment?PaymentOperation=1&PaymentSum=100&CurrencyISOCode=RUB&DogovorCode=IS28070006&NoDetails=false? HTTP/1.1
Возвращаемый результат метода AddPayment 4455
|
Список прошедших заездов по турам (TourList)
Метод возвращает список туров, по которым в заданные даты были совершены заезды (то есть, есть оформленные путевки).
- Формат запроса:
- GET .../PaymentService/TourList?
- Принимаемые параметры (* – обязательный):
- dateFrom * – дата заезда с в формате yyyy.mm.dd
- dateTo * – дата заезда по в формате yyyy.mm.dd
- Возвращаемый результат:
- tourProgramsId – ключ программы тура
- tourName – название программы тура
- dateBegin – массив дат заездов по указанному туру в заданный период
Вызов метода TourList GET http://localhost:5010/PaymentService/TourList?dateFrom=2022.04.01&dateTo=2022.04.10
Возвращаемый результат метода TourList [{
"tourProgramsId": 100001232,
"tourName": "Общая проверка системы",
"dateBegin": [
"03.04.2022",
"05.04.2022"
]
}, {
"tourProgramsId": 100001247,
"tourName": "Тур в Кострому",
"dateBegin": [
"01.04.2022",
"03.04.2022",
"05.04.2022"
]
}
]
|
Финансовая информация по турам (TourFinInfo)
Метод возвращает детальную информацию по услугам и оплатам по туру.
- Формат запроса:
- GET .../PaymentService/TourFinInfo?
- Принимаемые параметры (* – обязательный):
- tourProgramsId * – ключ программы тура
- tourDate * – дата заезда по туру в формате yyyy.mm.dd
- Возвращаемый результат:
- tourName – название программы тура
- arrivalDate – дата заезда по туру
- touristCount – общее количество туристов по путевкам
- payed – сумма оплат от покупателей по всем путевкам в национальной валюте
- services – массив услуг (группировка по классу услуг)
- serviceType – название класса услуги
- serviceName – название услуги
- serviceTouristCount – количество туристов, пользующихся услугой по всем путевкам
- partner – поставщик по услуге
- netto – стоимость нетто по всем путевкам по каждой услуге
- brutto – стоимость брутто по всем путевкам по каждой услуге
Вызов метода TourFinInfo GET http://localhost:5010/PaymentService/TourFinInfo?tourProgramsId=100001232&tourDate=2022.04.05
Возвращаемый результат метода TourFinInfo {
"tourName": "Общая проверка системы",
"arrivalDate": "05.04.2022",
"touristCount": 50,
"payed": "350400 RUB",
"services": [{
"serviceType": "Авиаперелет",
"serviceName": "А_П::Варшава/Канкун/3G5656, WAW-VIE, 05:50-08:50/C Бизнес класс",
"serviceTouristCount": 50,
"partner": "Партнер",
"netto": "100000,00 RUB",
"brutto": "120000,00RUB"
},
"serviceType": "Отель/Круиз",
"serviceName": "HOTEL::Канкун/Sheraton-1*,7 ночей/Double(Standart),2 взр./AI Шведский стол",
"serviceTouristCount": 50,
"partner": "Партнер",
"netto": "200000,00 RUB",
"brutto": "230000,00 RUB"
},
"serviceType": "Авиаперелет",
"serviceName": "А_П::Канкун/Варшава/AF3444, VIE-WAW, 15:50-18:50/C Бизнес класс",
"serviceTouristCount": 50,
"partner": "Партнер",
"netto": "0,00 RUB",
"brutto": "0,00 RUB"
}
]
}
|
Информация по туристу по ключу (SelectTouristInfoByKey)
Метод возвращает детальную информацию по ключу туриста.
- Формат запроса:
- GET .../PaymentService/SelectTouristInfoByKey?
- Принимаемые параметры (* – обязательный):
- key * – ключ туриста
- Возвращаемый результат:
- key – ключ туриста
- isMain – признак главного туриста
- ageType – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант)
- sex – пол туриста (0 – мужской, 1 – женский)
- firstName – имя (лат)
- lastName – фамилия (лат)
- patronymic – отчество (лат)
- firstNameRus – имя (рус)
- lastNameRus – фамилия (рус)
- patronymicRus – отчество (рус)
- phone – телефон
- email – e-mael
- birthDay – дата рождения
- birthPlace – место рождения
- citizen – гражданство
- internationalPassportSer – серия паспорта
- internationalPassportNum – номер паспорта
- internationalPassportDate – дата выдачи паспорта
- internationalPassportDateEnd – дата окончания паспорта
- internationalPassportByWhom – кем выдан паспорт
- nationalPassportSer – серия загранпаспорта
- nationalPassportNum – номер загранпаспорта
- nationalPassportDate – дата выдачи загранпаспорта
- nationalPassportByWhom – кем выдан загранпаспорт
- postIndex – индекс
- city – город
- street – улица
- build – дом
- flat – квартира
- citizenID – ID туриста
Вызов метода SelectTouristInfoByKey POST http://localhost:5010/PaymentService/SelectTouristInfoByKey?key=111125
Возвращаемый результат метода SelectTouristInfoByKey {
"key": 111125,
"isMain": 1,
"ageType": 0,
"sex": 0,
"firstName": "Ivan",
"lastName": "Ivanov",
"patronymic": "Ivanovich",
"firstNameRus": "Иван",
"lastNameRus": "Иванов",
"patronymicRus": "Иванович",
"phone": "+79991234567",
"email": "ivan@mail.ru",
"birthDay": "01.02.1980",
"birthPlace": "Москва",
"citizen": "Россия",
"internationalPassportSer": "1111",
"internationalPassportNum": "222222",
"internationalPassportDate": "01.05.2022",
"internationalPassportDateEnd": "01.05.2027",
"internationalPassportByWhom": "Отделом УФМС год. Москвы",
"nationalPassportSer": "11",
"nationalPassportNum": "6665544",
"nationalPassportDate": "01.05.2030",
"nationalPassportByWhom": "УФМС 52",
"postIndex": "151515",
"city": "Москва",
"street": "Ленина",
"build": "5",
"flat": "2",
"citizenID": "123456789"
}
|