Мастер-Тур(15):PaymentService — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Biryukov (обсуждение | вклад) |
Biryukov (обсуждение | вклад) |
||
Строка 203: | Строка 203: | ||
====Информация по туристу по ключу (SelectTouristInfoByKey)==== | ====Информация по туристу по ключу (SelectTouristInfoByKey)==== | ||
− | Метод возвращает детальную информацию по ключу туриста. | + | Метод возвращает детальную информацию по туристу по ключу туриста. |
* Формат запроса: | * Формат запроса: | ||
** GET .../PaymentService/SelectTouristInfoByKey? | ** GET .../PaymentService/SelectTouristInfoByKey? | ||
Строка 250: | Строка 250: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Возвращаемый результат метода SelectTouristInfoByKey | Возвращаемый результат метода SelectTouristInfoByKey | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | { | ||
+ | "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" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ====Информация по туристам по номеру путевки (SelectTouristsByDogovorKey)==== | ||
+ | Метод возвращает детальную информацию по туристам по номеру путевки. | ||
+ | * Формат запроса: | ||
+ | ** GET .../PaymentService/SelectTouristsByDogovorKey? | ||
+ | |||
+ | * Принимаемые параметры ('''*''' – обязательный): | ||
+ | ** '''dgCode *''' – номер путевки | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''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 туриста | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
+ | Вызов метода SelectTouristsByDogovorKey | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST http://localhost:5010/PaymentService/SelectTouristsByDogovorKey?dgCode=AU20050005 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода SelectTouristsByDogovorKey | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
{ | { |
Версия 16:30, 13 мая 2022
Введение
Начиная с релиза 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"
}
|
Информация по туристам по номеру путевки (SelectTouristsByDogovorKey)
Метод возвращает детальную информацию по туристам по номеру путевки.
- Формат запроса:
- GET .../PaymentService/SelectTouristsByDogovorKey?
- Принимаемые параметры (* – обязательный):
- dgCode * – номер путевки
- Возвращаемый результат:
- 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 туриста
Вызов метода SelectTouristsByDogovorKey POST http://localhost:5010/PaymentService/SelectTouristsByDogovorKey?dgCode=AU20050005
Возвращаемый результат метода SelectTouristsByDogovorKey {
"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"
}
|