LOCUST CARDS — универсальное решение для работы с картами лояльности. С помощью этого API вы можете отправлять запросы на регистрацию карт, накопление и списание бонусов, изменять данные о владельце карты и многое другое.
API в качестве основного протокола использует HTTP, а значит, подходит для разработки на любом языке программирования, который умеет работать с HTTP-библиотеками (cURL и другими).
API поддерживает POST и GET-запросы. API всегда возвращает ответ в формате JSON, независимо от типа запроса.
PHP-класс для работы с API: MAXiDROME / LocustCards
Для аутентификации запросов необходимо использовать ваш секретный ключ (его можно сгенерировать в личном кабинете), который нужно передавать при каждом запросе к API.
Регистрация нового покупателя и бонусной карты.
В ответ на запрос придет номер карты и ключ, который нужно будет передать в request_key.
Параметры запроса | Описание |
---|---|
phone string, required |
Номер телефона покупателя. |
card string, optional |
Номер карты покупателя. Если не указан - будет сгенерирован автоматически. |
percent integer, optional |
Процент бонусов по карте. Если не передается, то будет установлен в 0. |
email string, optional |
Адрес электронной почты покупателя. |
lastname string, optional |
Фамилия покупателя. |
firstname string, optional |
Имя покупателя. |
patronymic string, optional |
Отчество покупателя. |
sex string, optional |
Пол покупателя (1 - мужчина, 0 - женщина). |
birthday integer, optional |
Дата рождения покупателя в формате YYYY-MM-DD. |
comment string, optional |
Комментарий. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->register_customer("+79126438021","",5,"john.dow@example.com","Иванов","Петр","Сергеевич",1,"Тестовый пользователь");
?>
Изменение информации о покупателе.
В ответ на запрос придет TRUE в случае успеха.
Параметры запроса | Описание |
---|---|
customer_id string, required |
id покупателя. |
email string, optional |
Адрес электронной почты покупателя. Если отличается от сохраненного значения, то значение email_activated устанавливается в 0. |
lastname string, optional |
Фамилия покупателя. |
firstname string, optional |
Имя покупателя. |
patronymic string, optional |
Отчество покупателя. |
sex string, optional |
Пол покупателя (1 - мужчина, 0 - женщина). |
comment string, optional |
Комментарий. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->edit_customer("e7422563640e72d3af753fef783e9e55","john.dow@example.com","Иванов","Петр","Сергеевич",1,"Тестовый пользователь");
?>
true
Запрос информации о покупателе по номеру телефона.
В ответ на запрос придет информация о пользователе.
Параметры запроса | Описание |
---|---|
phone string, required |
Номер телефона покупателя. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$customer=$api->get_customer_by_phone("+79126438021");
?>
{
"id": "e7422563640e72d3af753fef783e9e55",
"regdate": 1573116633,
"lastname": "Иванов",
"firstname": "Петр",
"patronymic": "Сергеевич",
"birthday": "0000-00-00",
"sex": 1,
"comment": "Тестовый покупатель",
"email": "john.dow@example.com",
"email_activated": true
}
Запрос информации о покупателе по адресу электронной почты.
В ответ на запрос придет информация о пользователе.
Параметры запроса | Описание |
---|---|
email string, required |
Адрес электронной почты покупателя. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$customer=$api->get_customer_by_email("john.dow@example.com");
?>
{
"id": "e7422563640e72d3af753fef783e9e55",
"regdate": 1573116633,
"lastname": "Иванов",
"firstname": "Петр",
"patronymic": "Сергеевич",
"birthday": "0000-00-00",
"sex": 1,
"comment": "Тестовый покупатель",
"email": "john.dow@example.com",
"email_activated": true
}
Регистрация новой карты.
В ответ на запрос придет номер карты и ключ, который нужно будет передать в request_key.
Параметры запроса | Описание |
---|---|
customer_id string, required |
id покупателя. |
phone string, required |
Номер телефона покупателя. |
card string, optional |
Номер карты покупателя. Если не указан - будет сгенерирован автоматически. |
percent integer, optional |
Процент бонусов по карте. Если не передается, то будет установлен в 0. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->register_card("e7422563640e72d3af753fef783e9e55","+79126438021","1122334455","10");
?>
Изменение данных карты (телефона, процента бонусов и покупателя).
В ответ на запрос придет TRUE в случае успеха.
Параметры запроса | Описание |
---|---|
card string, required |
Номер карты покупателя. |
phone string, required |
Номер телефона покупателя. |
percent integer, optional |
Процент бонусов по карте. Если не передается, то будет установлен в 0. |
customer_id string, optional |
id нового покупателя, если необходимо привязать карту к другому пользователю. История операций по карте перенесется к новому покупателю. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->edit_card("1234567890","89126438021","3","");
?>
true
Удаление карты и истории операций. Так же удаляет покупателя, если у него не заполнен адрес электронной почты и нет ни одной карты.
В ответ на запрос придет TRUE в случае успеха.
Параметры запроса | Описание |
---|---|
card string, required |
Номер карты покупателя. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->delete_card("1234567890");
?>
true
Возвращает признак активации карты. Карта считается активированной, если request_code и request_key для этой карты были выполнены успешно.
В ответ на запрос придет TRUE, если карта активна.
Параметры запроса | Описание |
---|---|
card string, required |
Номер карты покупателя. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->is_card_active("1234567890");
?>
true
Получение списка карт, привязанных к номеру телефона.
В ответ на запрос придет массив карт и инофрмация о покупателе.
Параметры запроса | Описание |
---|---|
phone string, required |
Номер телефона покупателя. Будет автоматически очищен от всех символов, кроме цифр. Если номер телефона начинается с 8, то она будет заменена на код страны из профиля компании. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->get_cards_by_phone("+79126438021");
?>
{
"cards":[
{
"id":"e7422563640e72d3af753fef783e9e55",
"card_number":"0000000001",
"percent":10,
"phone":"79126438021",
"balance":1100,
"active":true,
"regdate":"1572588885"
},
{
"id":"ceeeb7d6945bca1c0976eb2e1d6d2a10",
"card_number":"0000000002",
"percent":3,
"phone":"79126438021",
"balance":0,
"active":true,
"regdate":"1573539285"
}
],
"customer":{
"id":"e7422563640e72d3af753fef783e9e55",
"regdate":1573116633,
"lastname":"Иванов",
"firstname":"Петр",
"patronymic":"Сергеевич",
"birthday":"0000-00-00",
"sex":1,
"comment":"Тестовый покупатель",
"email":"john.dow@example.com",
"email_activated":true
}
}
Получение информации о карте по ее номеру.
В ответ на запрос придут данные карты и информация о покупателе.
Параметры запроса | Описание |
---|---|
card string, required |
Номер карты покупателя. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->get_card_by_number("1234567890");
?>
{
"card":{
"id":"e7422563640e72d3af753fef783e9e55",
"card_number":"0000000001",
"percent":10,
"phone":"79126438021",
"balance":1100,
"active":true,
"regdate":1572588885
},
"customer":{
"id":"e7422563640e72d3af753fef783e9e55",
"regdate":1573116633,
"lastname":"Иванов",
"firstname":"Петр",
"patronymic":"Сергеевич",
"birthday":"0000-00-00",
"sex":1,
"comment":"Тестовый покупатель",
"email":"john.dow@example.com",
"email_activated":true
}
}
Возвращает список операций по карте.
В ответ на запрос придет список операций по карте в заданном интервале дат или за текущий месяц, если даты не указаны.
Параметры запроса | Описание |
---|---|
card string, required |
Номер карты покупателя. |
date_start integer, optional |
Дата и время начала периода в формате UNIX (количество секунд, прошедших с начала эпохи Unix (1 января 1970 00:00:00 GMT)). Если не указана, то используется первое число текущего месяца. |
date_end integer, optional |
Дата и время конца периода в формате UNIX (количество секунд, прошедших с начала эпохи Unix (1 января 1970 00:00:00 GMT)). Если не указана, то используется последнее число текущего месяца. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->get_operations_by_card("1234567890","","");
?>
[
{
"adddate":1573017120,
"operation_date":1573017021,
"value_add":1000,
"value_sub":0,
"comment":"начисление за заказ 101",
"uid":"12ef878787f098098c098b09809800",
"status":"1"
},
{
"adddate":1573116696,
"operation_date":1573116696,
"value_add":0,
"value_sub":500,
"comment":"списание за заказ 123",
"uid":"12ef878787aaa8098c098b09809800",
"status":"1"
},
{
"adddate":1573313550,
"operation_date":1573313550,
"value_add":300,
"value_sub":0,
"comment":"заказ 123",
"uid":"12ef8787bcde8098c098b09809800",
"status":"0"
}
]
Добавление операции по карте.
В ответ на запрос придет UID операции. При недостаточном балансе при попытке списания выдаст ошибку.
Параметры запроса | Описание |
---|---|
card string, required |
Номер карты покупателя. |
value_add float, required |
Сумма операции начисления, дробная часть отделяется точкой и имеет два разряда. |
value_sub float, required |
Сумма операции списания, дробная часть отделяется точкой и имеет два разряда. |
uid string, optional |
Уникальный идентификатор операции. Если не задан, будет сгенерирован автоматически. |
date integer, optional |
Дата и время совершения операции в формате UNIX (количество секунд, прошедших с начала эпохи Unix (1 января 1970 00:00:00 GMT)). Если не указана, то записывается текущая дата и время. |
comment string, optional |
Текстовый комментарий к операции. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->add_operation("1234567890",100.20,0,"","Заказ №123");
?>
{
"uid": "12ef878787f098098c098b09809800"
}
Подтверждение операции по карте.
В ответ на запрос придет TRUE в случае успешного подтверждения операции.
Параметры запроса | Описание |
---|---|
uid string, required |
Идентификатор операции. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->confirm_operation("12ef878787f098098c098b09809800");
?>
true
Удаляет операцию по карте.
В ответ на запрос придет TRUE в случае успеха.
Параметры запроса | Описание |
---|---|
uid string, required |
Уникальный идентификатор операции. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->delete_operation("e7422563640e72d3af753fef783e9e55");
?>
true
Запрос смс-кода для подтверждения номера телефона, привязанного к карте.
В ответ на запрос придет ключ, который нужно будет передать в request_key.
Параметры запроса | Описание |
---|---|
card string, required |
Номер карты покупателя. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->request_code("1234567890");
?>
{
"key": "d293e58f23094586c34af85623094de6"
}
Проверка смс-кода для подтверждения номера телефона, привязанного к карте.
В ответ на запрос придет TRUE, если код верный.
Параметры запроса | Описание |
---|---|
code string, required |
Проверочный код из смс. |
key string, required |
Ключ, полученный после вызова request_code. |
<?php
$api=new LocustCard("e7422563640e72d3af753fef783e9e55");
$cards=$api->request_key("1234","1234567890987654321234567890");
?>
true