Облачная бонусная система. API
Общие сведения
Для работы с бонусной системы необходимо получить в техподдержке адрес сервера и ключ API
Получить текущий баланс клиента
GET /get_balance.php
Параметры запроса
- format - всегда "json"
 - key - секретный ключ API (выдается техподдержкой)
 - client_phone - номер телефона клиента в формате 89060938273 (только цифры, 11 символов, начинается с 8). Если передан client_id, то телефон можно не передавать.
 - client_id - уникальный идентификатор клиента в бонусной системе. Обязательно передавать, если известен.
 
Параметры ответа
- result - результат обработки запроса
 - id - уникальный идентификатор клиента в бонусной системе
 - phone - основной номер телефона клиента
 - balance - текущее кол-во бонусов на балансе клиента
 - desc - описание ошибки (в случае ошибки)
 - err_num - код ошибки (в случае ошибки)
 
Логика работы
- Находит клиента по номеру телефона или по GUID. Возвращает его текущее кол-во бонусов.
 
Примеры
GET запрос:
https://{адрес-сервера}/get_balance.php?format=json&key={ключ-api}&client_phone=89060938273&client_id=4092538C-AFB0-3C29-E7FF-F2C0BAB81AC8
Ответ успех:
{
   "result": "true",
   "id": "4092538C-AFB0-3C29-E7FF-F2C0BAB81AC8",
   "phone": "89060938273",
   "balance": 576
}
Ответ ошибка:
{
   "result": "false",
   "desc": "Клиент не найден в БД",
   "err_num": "FU_13"
}
Получить список клиентов, у которых изменился баланс баланс
GET /get_change.php
Параметры запроса
- key - секретный ключ API (выдается техподдержкой)
 - date - дата в формате ГГГГ-ММ-ДД
 
Параметры ответа
- client_id - уникальный идентификатор клиента в бонусной системе
 - phone - основной номер телефона клиента
 - balance_total- текущее кол-во бонусов на балансе клиента
 - desc - описание ошибки (в случае ошибки)
 - err_num - код ошибки (в случае ошибки)
 
Логика работы
- Находит и возвращает всех клиентов, у которых изменилось кол-во бонусов (баланс) после указанной даты.
 
Примеры
GET запрос:
https://{адрес-сервера}/get_change.php?key={ключ-api}&date=2021-02-01
Ответ успех:
{
   "0": {
      "client_id": "4092538C-AFB0-3C29-E7FF-F2C0BAB81AC8",
      "balance_total": "576",
      "phone": "89060938273"
   },
   "1": {
      "client_id": "6D63C237-DFFE-B5BA-6080-86B5FA84A84C",
      "balance_total": "0",
      "phone": "84952231996"
   },
   "2": {
      "client_id": "B8B5BCC6-69AF-1321-ECD4-87ACA8D05D4B",
      "balance_total": "0",
      "phone": "89646441996"
   },
   "3": {
      "client_id": "CA9E5EDF-658D-80CC-BD37-6379A624C13F",
      "balance_total": "0",
      "phone": "89020938273"
   }
}
Ответ ошибка:
{
   "result": "false",
   "desc": "Ключ не авторизован в бонусной системе",
   "err_num": "FU_L_154"
}
Получить текущий ранг клиента
GET /get_rank.php
Параметры запроса
- format - всегда "json"
 - key - секретный ключ API (выдается техподдержкой)
 - client_phone - номер телефона клиента в формате 89060938273 (только цифры, 11 символов, начинается с 8). Если передан client_id, то телефон можно не передавать.
 - client_id - уникальный идентификатор клиента в бонусной системе. Обязательно передавать, если известен.
 
Параметры ответа
- result - результат обработки запроса
 - id - уникальный идентификатор клиента в бонусной системе
 - phone - основной номер телефона клиента
 - balance - текущее кол-во бонусов на балансе клиента
 - rank - текущий ранг клиента
 - start_date - дата\время начала действия ранга
 - reset_date - дата\время окончания действия ранга (когда ранг будет сброшен, если не накопить нужную сумму)
 - save_sum - сколько нужно потратить денег (до reset_date ), чтобы сохранить текущий ранг. Если ранг минимальный, то возвращает 0
 - up_sum - сколько нужно потратить денег (до reset_date ), чтобы перейти на следующий ранг. Если ранг максимальный, то возвращает 0
 - saveup_percent - сколько % накапливается бонусов с суммы заказа (в соответствии с текущим рангом)
 - pay_percent - максимальный % от суммы заказа, который клиент может оплатить бонусами (в соответствии с текущим рангом)
 - desc - описание ошибки (в случае ошибки)
 - err_num - код ошибки (в случае ошибки)
 
Логика работы
Общее описание ранговой системы:
- В системе 4 ранга, на каждом ранге клиент накапливает разный % бонусов с заказа.
- 0 ранг - 5%
 - 1 ранг - 10%
 - 2 ранг - 15%
 - 3 ранг - 20%
 
 - От ранга зависит % от суммы заказа, который клиент может оплатить бонусам.
- 0 ранг - 20%
 - 1 ранг - 30%
 - 2 ранг - 40%
 - 3 ранг - 50%
 
 - Ранги имеют ограниченное время действия. Отсчёт действия ранга начинается с момента перехода на ранг (при повышении или понижении).
- 0 ранг - бессрочно
 - 1 ранг - 90 дней
 - 2 ранг - 120 дней
 - 3 ранг - 180 дней
 
 - Если по истечении периода действия ранга, клиент не совершит покупки на нужную сумму, то ранг будет понижен на 1.
- 0 ранг - не понижается
 - 1 ранг - 12 000 руб.
 - 2 ранг - 24 000 руб.
 - 3 ранг - 50 000 руб.
 
 - Если в течении периода действия ранга, клиент совершит покупки на нужную сумму, то ранг будет повышен на 1.
- 0 ранг - от 12 000 руб.
 - 1 ранг - от 24 000 руб.
 - 2 ранг - от 50 0000 руб.
 - 3 ранг - не повышается
 
 - При повышении ранга, клиент может "перепрыгнуть" ранг при разовой большой покупке.
- Пример:
- Текущий ранг 0 (условие повышения 12 000).
 - Клиент сделал заказ на 26 000 руб.,
 - Клиенту будет присвоен сразу 2ой ранг, т.к. эта сумма покрывает сразу два условия перехода: с 0 на 1 ранг, и с 1 на 2 ранг
 
 
 - Пример:
 - При переходе на ранг (повышении или понижении) сумма покупок обнуляется.
- Пример:
- Текущий ранг 1 (условие повышения 24 000 руб.)
 - 01-01-2022 11:10 клиент сделал заказ на 37 000 руб.
 - Ранг повышается на 1. Становится 2
 - Чтобы перейти на 3 ранг, клиент должен сделать покупки на 50 000 руб. до 30-06-2022 11:10
 - Чтобы удержать 2 ранг, клиент должен сделать покупки на 24 000 руб. до 30-06-2022 11:10
 - Т.е. сумма сверх необходимого (13 000 руб.) не учитывается в прогрессе следующих рангов
 
 - Пример №2:
- Текущий ранг 1 (условие удержания 12 000 руб.)
 - Ранг действует до 30-06-2022 11:00
 - На момент окончания действия ранга, клиент потратил 13 000 руб.
 - 30-06-2022 11:00 ранг будет пересчитывается
 - Т.к. клиент потратил нужную сумму для сохранения ранга, но недостаточную для повышения, у клиента сохраняется 1ый ранг
 - После пересчета ранга, чтобы снова удержать 1ый ранг, клиент должен сделать покупки на 12 000 руб.
 - Т.е. сумма сверх необходимого (1 000 руб.) не учитывается в прогрессе следующих рангов
 
 
 - Пример:
 - Смена ранга происходит после накопления бонусов.
- Пример:
- Текущий ранг 0 (накопление 5%).
 - Клиент сделал заказ на 100 000 руб.
 - С заказа будет начислено 5 000 руб. (5%).
 
 
 - Пример:
 - Отмены заказа и возвраты на ранг не влияют
 
Примеры
GET запрос:
https://{адрес-сервера}/get_rank.php?format=json&key={ключ-api}&client_phone=89060938273&client_id=4092538C-AFB0-3C29-E7FF-F2C0BAB81AC8
Ответ успех:
{
 "result": "true",
 "id": "4092538C-AFB0-3C29-E7FF-F2C0BAB81AC8",
 "phone": "89060938273",
 "balance": 297,
 "rank": 1,
 "start_date": "2022-01-27 18:13:15",
 "reset_date": "2022-04-27 18:13:15",
 "save_sum": 12000,
 "up_sum": 24000,
 "saveup_percent": 10,
 "pay_percent": 30
}
Ответ ошибка:
{
   "result": "false",
   "desc": "Клиент не найден в БД",
   "err_num": "FU_13"
}
Система JUPITER www.jupiter.systems (с) 2024г.
                                                    
Нет комментариев