Мастер-Тур(15):PaymentService — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Biryukov (обсуждение | вклад) (→Информация по туристу, выводимая по ключу туриста (SelectTouristInfoByKey)) |
Biryukov (обсуждение | вклад) |
||
Строка 481: | Строка 481: | ||
"dogovorPartnerKey": 505 | "dogovorPartnerKey": 505 | ||
} | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | </TD></TR></TABLE> | ||
+ | </div></div><br /> | ||
+ | |||
+ | ====Информация по партнеру по ключу партнера (SelectPartnerInfoByKey)==== | ||
+ | Метод возвращает детальную информацию по партнеру по ключу партнера. | ||
+ | * Формат запроса: | ||
+ | ** POST .../PaymentService/SelectPartnerInfoByKey? | ||
+ | |||
+ | * Принимаемые параметры ('''*''' – обязательный): | ||
+ | ** '''key *''' – ключ партнера | ||
+ | |||
+ | * Возвращаемый результат: | ||
+ | ** '''partnerKey''' – ключ партнера | ||
+ | ** '''partnerCode''' – код партнера | ||
+ | ** '''name''' – название партнера | ||
+ | ** '''fullName''' – полное название партнера | ||
+ | ** '''phones''' – телефоны | ||
+ | ** '''email''' – e-mail | ||
+ | ** '''physicalAddress''' – физический адрес | ||
+ | ** '''legalAddress''' – юридический адрес | ||
+ | ** '''inn''' – ИНН | ||
+ | ** '''kpp''' – КПП | ||
+ | ** '''okpo''' – код по ОКПО | ||
+ | ** '''okonh''' – код по ОКОНХ | ||
+ | ** '''cityKey''' – ключ города | ||
+ | ** '''cityName''' – название города | ||
+ | |||
+ | <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> | ||
+ | Вызов метода SelectPartnerInfoByKey | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | POST http://localhost:5010/PaymentService/SelectPartnerInfoByKey?key=12667 | ||
+ | </syntaxhighlight> | ||
+ | Возвращаемый результат метода SelectPartnerInfoByKey | ||
+ | <syntaxhighlight lang="java" enclose="div"> | ||
+ | [{ | ||
+ | "partnerKey": 12667, | ||
+ | "partnerCode": "DOV", | ||
+ | "name": "Megatec", | ||
+ | "fullName": "ООО Megatec", | ||
+ | "phones": [ | ||
+ | "+7(495)111-22-33" | ||
+ | ], | ||
+ | "email": "info@megatec.ru", | ||
+ | "physicalAddress": "Москва, ул. Ленина, д. 1", | ||
+ | "legalAddress": "Москва, ул. Ленина, д. 1", | ||
+ | "inn": "123456789012", | ||
+ | "kpp": "1231231231", | ||
+ | "okpo": "54846546546584", | ||
+ | "okonh": "65468465165466", | ||
+ | "cityKey": 5458, | ||
+ | "cityName": "Москва" | ||
+ | } | ||
] | ] | ||
</syntaxhighlight> | </syntaxhighlight> |
Версия 10:55, 21 июля 2022
Содержание
- 1 Введение
- 2 Установка службы сервиса оплат
- 3 Работа службы сервиса оплат
- 3.1 Добавить оплату (AddPayment)
- 3.2 Список прошедших заездов по турам (TourList)
- 3.3 Финансовая информация по турам (TourFinInfo)
- 3.4 Информация по туристу, выводимая по ключу туриста (SelectTouristInfoByKey)
- 3.5 Информация по туристам, выводимая по номеру путевки (SelectTouristsByDogovorKey)
- 3.6 Информация по путевкам за период (SelectDogovorsInPeriod)
- 3.7 Информация по партнеру по ключу партнера (SelectPartnerInfoByKey)
Введение
Начиная с релиза 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)
Метод возвращает детальную информацию по туристу, выводимую по ключу туриста.
- Формат запроса:
- POST .../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)
Метод возвращает детальную информацию по туристам, выводимая по номеру путевки.
- Формат запроса:
- POST .../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"
}
|
Информация по путевкам за период (SelectDogovorsInPeriod)
Метод возвращает детальную информацию по путевкам за период.
- Формат запроса:
- GET .../PaymentService/SelectDogovorsInPeriod?
- Принимаемые параметры (* – обязательный):
- beginDate * – дата начала отбора
- endDate * – дата окончания отбора
- selectionType – тип дополнительного отбора
- additionalSelection – значение дополнительного отбора
В качестве параметров нужно передать две даты: дата начала и даты окончания. В отбор попадут путевки, у которых дата создания попадает в указанный период. Можно усилить отбор. Для этого нужно передать в качестве третьего параметра число, определяющее тип отбора:
- 1 – поиск по коду путевки. В качестве четвертого параметра передается код путевки (или его часть). Поиск производится методом LIKE. В отбор попадут все путевки с датой создания в заданном периоду, у которых код путевки содержит строку, указанную в четвертом параметре
- 2 – поиск производится по ФИО главного туриста. При этом используется следующий алгоритм: берется строка: (Фамилия + " " + Имя + " " + Отчество) и в этой строке ищется строка, переданная в четвертом параметре
- 3 – поиск по названию партнера. Поиск производится методом LIKE
- 4 – поиск по ИНН партнера. Поиск производится методом LIKE
- 5 – поиск по ключу статуса путевки
- 6 – поиск по ключу путевки
- 7 – отбор путевок, по которым были сделаны детализации платежей за указанный период (без удаленных платежей). В качестве четвертого параметра можно указать список ключей типов платежей, разделенных знаком ";". Тогда в отборе будут участвовать платежи только с указанным типом. Отбор производится по датам СОЗДАНИЯ платежа.
- 8 – отбор путевок по ключу тура (tourProgramsId)
- 9 – отбор путевок по диапазону дат тура (заезда), в этом случае четвертый параметр не заполняется
- 10 – аналогично варианту 7, только отбор производится по датам ПЛАТЕЖА.
Во всех вариантах кроме 7, 9, 10 в качестве дат используются даты СОЗДАНИЯ ПУТЕВКИ.
- Возвращаемый результат:
- dogovorKey – ключ путевки
- dogovorCode – номер путевки
- createDate – дата создания путевки
- createTime – время создания путевки
- externalNumberPartnerDogovor – номер путевки партнера (поле из Работы менеджеров)
- price – стоимость путевки
- payed – оплачено
- isoCode – ISO-код валюты путевки
- touristId – ключ главного туриста по путевке
- lastName – фамилия главного туриста (лат)
- firstName – имя главного туриста (лат)
- patronymic – отчество главного туриста (лат)
- lastNameRus – фамилия главного туриста (рус)
- firstNameRus – имя главного туриста (рус)
- patronymicRus – отчество главного туриста (рус)
- sex – пол туриста (0 – муж, 1 – жен)
- partnerKey – ключ партнера покупателя путевки
- partnerCode – код партнера
- partnerName – название партнера
- discountSum – сумма скидки по путевке
- priceNationalRate – стоимость путевки в национальной валюте
- payedNationalRate – оплачено по путевке в национальной валюте
- discountNationalRate – сумма скидки по путевке в национальной валюте
- filialKey – ключ филиала
- orderStatusCode – ключ статуса путевки
- orderStatusName – название статуса путевки
- tourDate – дата заезда
- daysCount – количество дней по путевке
- touristCount – количество туристов по путевке
- countryId – ключ страны
- countryName – название страны
- cityId – ключ города
- cityName – название города
- tourProgramsId – ключ тура
- dogovorPartnerKey – ключ договора партнера по путевке
Вызов метода SelectDogovorsInPeriod GET http://localhost:5010/PaymentService/SelectDogovorsInPeriod?beginDate=05.01.2022&endDate=31.05.2022&selectionType=1&additionalSelection=AU
Возвращаемый результат метода SelectDogovorsInPeriod [{
"dogovorKey": 48690,
"dogovorCode": "AU2006000C",
"createDate": "12.05.2022",
"createTime": "11:51:18",
"externalNumberPartnerDogovor": null,
"price": 1200,
"payed": 600,
"isoCode": "USD",
"touristId": 111148,
"lastName": "Ivanov",
"firstName": "Ivan",
"patronymic": "Ivanovich",
"lastNameRus": "Иванов",
"firstNameRus": "Иван",
"patronymicRus": "Иванович",
"sex": 0,
"partnerKey": 12667,
"partnerCode": "658",
"partnerName": "Партнер-покупатель",
"discountSum": 10,
"priceNationalRate": 120000,
"payedNationalRate": 60000,
"discountNationalRate": 10000,
"filialKey": 11587,
"orderStatusCode": 3,
"orderStatusName": "Wait-лист",
"tourDate": "20.06.2022",
"daysCount": 8,
"touristCount": 2,
"countryId": 90,
"countryName": "Австрия",
"cityId": 35,
"cityName": "Вена",
"tourProgramsId": 100011071,
"dogovorPartnerKey": 505
}
]
|
Информация по партнеру по ключу партнера (SelectPartnerInfoByKey)
Метод возвращает детальную информацию по партнеру по ключу партнера.
- Формат запроса:
- POST .../PaymentService/SelectPartnerInfoByKey?
- Принимаемые параметры (* – обязательный):
- key * – ключ партнера
- Возвращаемый результат:
- partnerKey – ключ партнера
- partnerCode – код партнера
- name – название партнера
- fullName – полное название партнера
- phones – телефоны
- email – e-mail
- physicalAddress – физический адрес
- legalAddress – юридический адрес
- inn – ИНН
- kpp – КПП
- okpo – код по ОКПО
- okonh – код по ОКОНХ
- cityKey – ключ города
- cityName – название города
Вызов метода SelectPartnerInfoByKey POST http://localhost:5010/PaymentService/SelectPartnerInfoByKey?key=12667
Возвращаемый результат метода SelectPartnerInfoByKey [{
"partnerKey": 12667,
"partnerCode": "DOV",
"name": "Megatec",
"fullName": "ООО Megatec",
"phones": [
"+7(495)111-22-33"
],
"email": "info@megatec.ru",
"physicalAddress": "Москва, ул. Ленина, д. 1",
"legalAddress": "Москва, ул. Ленина, д. 1",
"inn": "123456789012",
"kpp": "1231231231",
"okpo": "54846546546584",
"okonh": "65468465165466",
"cityKey": 5458,
"cityName": "Москва"
}
]
|