Мастер-Тур(15):PaymentService — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
Строка 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.

Внимание!

  • Обратите внимание, что в целях безопасности необходимо ограничить доступ к этому конфигурационному файлу. Он должен быть доступен только для данного приложения.
  • Для корректной работы в поле User Id достаточно указать пользователя, привязанного к группе avServices в модуле Мастер-Администратор (обрабатывается с релиза 15.6).
  • Пароль пользователей системы, от которых работают службы и приложения, не должен содержать ни одного из следующих символов: < > " ' &
"MtDatabase": "Server=Server; Database=Database; User Id=User; Password=Password;"
2 Путь к службе сервиса оплат По умолчанию служба сервиса оплат использует порт 5010 и название PaymentService. Рекомендуется использование значений по умолчанию.

Внимание!
При смене порта необходимо также изменить порт в установочном скрипте _Install.cmd.

"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"
}