ПрограмаЛояльності: відмінності між версіями

Матеріал з expertsolution
Перейти до навігації Перейти до пошуку
(Створена сторінка: =API ServioLoyaltyService=)
 
Рядок 1: Рядок 1:
=API ServioLoyaltyService=
=API ServioLoyaltyService=
=Опис взаємодії=
Взаємодія системи HMS Servio і Servio Restaurant із процесинговим центром відбуватиметься через звернення цих систем до WCF служби процесингу за протоколом JSON, кодування передавання даних UTF8, методом POST.
Для цього протоколу всі типи і значення повинні передаватися в текстовому поданні. Тому необхідно використовувати такі формати для текстового представлення даних таких типів:
    1. datetime - строкове подання дати у форматі "yyyy-MM-dd HH:mm:ss"
    2. decimal - 18.2 - використовується округлення до 2х знаків після коми, як роздільник цілої та дробової частини виступає "." (крапка)
    3. int - стандартне десяткове строкове подання цілого числа
    4. string[N] - обмежений за розміром рядок, розмір рядка плаваючий від 0 до N символів.
    5. string - необмежений за розміром рядок, розмір рядка плаваючий від 0 до 8000 символів.
    6. bool - строкове представлення логічного типу, де "1" - істина (true), "0" - брехня (false)
Приклад запиту і відповіді у форматі JSON: запит
POST http://localhost:8000/ServioLoyaltyService/PayBonusesRequest
Content-Type: application/json; charset=utf-8
Host: localhost:8000
Content-Length: 241
Connection: Keep-Alive
{"MagneticCardID": "5", "Transactions":[{"Sum": "300.3", "ServiceGroupID": "3"}]}
результат HTTP/1.1 200 OK
Content-Length: 186
Content-Type: application/json; charset=utf-8
Сервер: Microsoft-HTTPAPI/2.0
Дата: Wed, 06 Sep 2023 11:58:56 GMT
{"Error":null,"MagneticCardID":5,"BonusBalance":0.00,"UserName":"666
666","Transactions":[{"BonusesToPay":0.00,"ServiceGroupID":3,"Sum":300.3,"TransactionDate":
"2023-09-06 14:58:56"}]}
=Функції протоколу=
Протокол обміну представлений у вигляді окремих відкритих функцій, до яких може будьякий клієнт POS системи.
==Get_eWallet_Info==
Метод за номером магнітної картки та\або ідентифікатором компанії та\або кодом бронювання  та\або  коротким  номером  картки  з  програмою  лояльності  повертає
інформацію щодо картки, учасника, якому вона належить, транзакцій і налаштувань програми лояльності.
Метод підходить для POS і HMS.
'''Вхідні параметри:'''
    • string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту)
    • int? CompanyAccount - ідентифікатор компанії HMS Servio.
    • string[20] AuthCode - код бронювання. (Не впливає на виконання запиту)
    • string[20] SynkLoyaltyCode - код синхронізації програми лояльності. (Не впливає на виконання запиту)
    • string[50] CardNumber - повний номер картки, за повним збігом якого шукають магнітну картку, що належить учаснику програми лояльності.
    • string[30] ShortCardNumber - короткий номер картки, за повним збігом якого (за наявності) шукають магнітну картку, що належить учаснику програми лояльності.
    • string[30] PhoneNumber - номер телефону, перевіряє збіг за останніми 9 цифрами з контактом або компанією програмою лояльності
    • int? PersonID - ІД персони Результат функції:
    • string Error - опис помилки, що виникла
    • eWallet[] eWallets - масив описів електронних гаманців eWallet. Елементи масиву структури з такими полями:
        ◦ int eWalletID - ID електронного гаманця o string[100] LoyaltyProgramName - назва програми лояльності
(string.Empty) o string[50] BonusStatusName - назва статусу програми лояльності o decimal BonusBalance - поточний бонусний баланс електронного гаманця o decimal AccumulatedBonuses - поточна кількість накопичених бонусів електронного гаманця
        ◦ string[50] DiscountStatusName - назва статусу програми лояльності o string[20] DiscountPriceListCode - код прейскуранта поточного дисконтного статусу, потрібен для синхронізації знижки за прейскурантом, якщо гаманець відноситься до дисконтної програми і для нього заведений код прейскуранта. (string.Empty)
        ◦ decimal DiscountTransactionsSum - сума всіх неанульованих транзакцій з урахуванням знижки, проведених для цього гаманця
        ◦ string[20] ServioSynkCode - код синхронізації програми лояльності o int? CompanyAccount - ідентифікатор компанії HMS Servio.
        ◦ string[30] MagneticCardShortNumber - короткий номер магнітної картки o string[30] MagneticCardFullNumber - довгий номер магнітної картки o decimal BonusSum - сума бонусів o decimal PaySum - сума на платіжній картці o decimal Credit - сума кредиту o decimal Accumulation - сума оборотів за карткою
        ◦ bool IsPayCard - прапор, що визначає налаштування лояльності "Робота з грошовими коштами"
        ◦ decimal ExtraMoneySum - сума екстра-грошей o bool IsSmartCard - ознака смарт карти (false)
        ◦ string ShortCode - короткий номер магнітної картки o decimal DayLimit - ліміт списання за день
        ◦ decimal WeekLimit - ліміт списання за тиждень o decimal MonthLimit - ліміт списання за місяць
        ◦ decimal YearLimit - ліміт списання за рік o bool UsePayLimits - ознака використання лімітів списання (false)
        ◦  bool UseCatLimits - ознака використання лімітів категорій (false)
        ◦ datetime ValidityStart - дата початку дії картки/сертифіката o datetime Validity - дата закінчення дії картки/сертифіката o bool Issue - ознака Issued (false)
        ◦ int Cardid - ІД картки
        ◦ string Comment - коментар (string.Empty)
        ◦ string Description - Примітка (string.Empty)
        ◦ decimal Discount - розмір знижки за карткою (0)
        ◦ string SynkLoyaltyCode - код лояльності з налаштувань програми лояльності
        ◦ int RoomNightBalance - кількість безкоштовних номероночей учасника o int MagneticCardID - ідентифікатор картки
        ◦ string UserName - ім'я власника
        ◦ string MobilePhone - номер телефону
        ◦ int DiscountGroupID - ідентифікатор дисконтної групи
        ◦ bool IsBonusProgram - приналежність до бонусної системи
        ◦ bool IsDiscountProgram - приналежність до дисконтної системи
        ◦ bool IsActive - ознака активності
За вхідними даними система шукає учасників, інформацію про них і налаштування програми лояльності в базі даних.
Після чого повертаємо результат функції, заповнюючи відповідні поля.

Версія за 08:08, 19 травня 2025

API ServioLoyaltyService

Опис взаємодії

Взаємодія системи HMS Servio і Servio Restaurant із процесинговим центром відбуватиметься через звернення цих систем до WCF служби процесингу за протоколом JSON, кодування передавання даних UTF8, методом POST. Для цього протоколу всі типи і значення повинні передаватися в текстовому поданні. Тому необхідно використовувати такі формати для текстового представлення даних таких типів:

   1. datetime - строкове подання дати у форматі "yyyy-MM-dd HH:mm:ss"
   2. decimal - 18.2 - використовується округлення до 2х знаків після коми, як роздільник цілої та дробової частини виступає "." (крапка)
   3. int - стандартне десяткове строкове подання цілого числа
   4. string[N] - обмежений за розміром рядок, розмір рядка плаваючий від 0 до N символів.
   5. string - необмежений за розміром рядок, розмір рядка плаваючий від 0 до 8000 символів.
   6. bool - строкове представлення логічного типу, де "1" - істина (true), "0" - брехня (false)

Приклад запиту і відповіді у форматі JSON: запит POST http://localhost:8000/ServioLoyaltyService/PayBonusesRequest Content-Type: application/json; charset=utf-8 Host: localhost:8000 Content-Length: 241 Connection: Keep-Alive {"MagneticCardID": "5", "Transactions":[{"Sum": "300.3", "ServiceGroupID": "3"}]} результат HTTP/1.1 200 OK Content-Length: 186 Content-Type: application/json; charset=utf-8 Сервер: Microsoft-HTTPAPI/2.0 Дата: Wed, 06 Sep 2023 11:58:56 GMT {"Error":null,"MagneticCardID":5,"BonusBalance":0.00,"UserName":"666 666","Transactions":[{"BonusesToPay":0.00,"ServiceGroupID":3,"Sum":300.3,"TransactionDate": "2023-09-06 14:58:56"}]}

Функції протоколу

Протокол обміну представлений у вигляді окремих відкритих функцій, до яких може будьякий клієнт POS системи.

Get_eWallet_Info

Метод за номером магнітної картки та\або ідентифікатором компанії та\або кодом бронювання та\або коротким номером картки з програмою лояльності повертає інформацію щодо картки, учасника, якому вона належить, транзакцій і налаштувань програми лояльності. Метод підходить для POS і HMS.

Вхідні параметри:

   • string[32] POSCode - унікальний код POS системи, за яким шукається зв'язка POS системи та користувача програми лояльності. (Не впливає на виконання запиту)
   • int? CompanyAccount - ідентифікатор компанії HMS Servio.
   • string[20] AuthCode - код бронювання. (Не впливає на виконання запиту)
   • string[20] SynkLoyaltyCode - код синхронізації програми лояльності. (Не впливає на виконання запиту)
   • string[50] CardNumber - повний номер картки, за повним збігом якого шукають магнітну картку, що належить учаснику програми лояльності.
   • string[30] ShortCardNumber - короткий номер картки, за повним збігом якого (за наявності) шукають магнітну картку, що належить учаснику програми лояльності.
   • string[30] PhoneNumber - номер телефону, перевіряє збіг за останніми 9 цифрами з контактом або компанією програмою лояльності
   • int? PersonID - ІД персони Результат функції:
   • string Error - опис помилки, що виникла
   • eWallet[] eWallets - масив описів електронних гаманців eWallet. Елементи масиву структури з такими полями:
       ◦ int eWalletID - ID електронного гаманця o string[100] LoyaltyProgramName - назва програми лояльності 

(string.Empty) o string[50] BonusStatusName - назва статусу програми лояльності o decimal BonusBalance - поточний бонусний баланс електронного гаманця o decimal AccumulatedBonuses - поточна кількість накопичених бонусів електронного гаманця

       ◦ string[50] DiscountStatusName - назва статусу програми лояльності o string[20] DiscountPriceListCode - код прейскуранта поточного дисконтного статусу, потрібен для синхронізації знижки за прейскурантом, якщо гаманець відноситься до дисконтної програми і для нього заведений код прейскуранта. (string.Empty)
       ◦ decimal DiscountTransactionsSum - сума всіх неанульованих транзакцій з урахуванням знижки, проведених для цього гаманця
       ◦ string[20] ServioSynkCode - код синхронізації програми лояльності o int? CompanyAccount - ідентифікатор компанії HMS Servio.
       ◦ string[30] MagneticCardShortNumber - короткий номер магнітної картки o string[30] MagneticCardFullNumber - довгий номер магнітної картки o decimal BonusSum - сума бонусів o decimal PaySum - сума на платіжній картці o decimal Credit - сума кредиту o decimal Accumulation - сума оборотів за карткою
       ◦ bool IsPayCard - прапор, що визначає налаштування лояльності "Робота з грошовими коштами"
       ◦ decimal ExtraMoneySum - сума екстра-грошей o bool IsSmartCard - ознака смарт карти (false) 
       ◦ string ShortCode - короткий номер магнітної картки o decimal DayLimit - ліміт списання за день 
       ◦ decimal WeekLimit - ліміт списання за тиждень o decimal MonthLimit - ліміт списання за місяць 
       ◦ decimal YearLimit - ліміт списання за рік o bool UsePayLimits - ознака використання лімітів списання (false) 
       ◦  bool UseCatLimits - ознака використання лімітів категорій (false) 
       ◦ datetime ValidityStart - дата початку дії картки/сертифіката o datetime Validity - дата закінчення дії картки/сертифіката o bool Issue - ознака Issued (false) 
       ◦ int Cardid - ІД картки 
       ◦ string Comment - коментар (string.Empty) 
       ◦ string Description - Примітка (string.Empty) 
       ◦ decimal Discount - розмір знижки за карткою (0) 
       ◦ string SynkLoyaltyCode - код лояльності з налаштувань програми лояльності 
       ◦ int RoomNightBalance - кількість безкоштовних номероночей учасника o int MagneticCardID - ідентифікатор картки 
       ◦ string UserName - ім'я власника 
       ◦ string MobilePhone - номер телефону 
       ◦ int DiscountGroupID - ідентифікатор дисконтної групи 
       ◦ bool IsBonusProgram - приналежність до бонусної системи 
       ◦ bool IsDiscountProgram - приналежність до дисконтної системи 
       ◦ bool IsActive - ознака активності

За вхідними даними система шукає учасників, інформацію про них і налаштування програми лояльності в базі даних. Після чого повертаємо результат функції, заповнюючи відповідні поля.