Версия: 6.x
burger close
Удаленный провайдер выдачи бонусных карт

В мобильном приложении второго поколения сервиса ReadyScript Mobile предусмотрена возможность получения и отображения штрихкода, привязанной к пользователю бонусной карты.

bonus_card_show_app.jpg
Бонусные карты в приложении

То есть через приложение вы можете запросить выдачу бонусной карты, приложение выполнит запрос к вашему сайту, а сайт выполнит запрос на указанный URL к удаленной системе, передав сведения о пользователе в формате JSON. В ответ, ожидается, что удаленный сервер вернет штрихкод бонусной карты в формате EAN-13 (13 цифр). В дальнейшем в приложении будет отображаться данный штрихкод и его можно будет использовать, например, в offline магазинах, если торговые системы в offline магазинах будут это поддерживать.

Для настройки удаленного адаптера получения бонусных карт, перейдите в раздел Веб-сайт -> Настройка модулей -> Магазин -> Вкладка "бонусные карты". Укажите параметры соединения с удаленным сервером.

remote_gen_card.png
Настройки соединения с внешним сервером выдачи карт

На удаленный сервер будет передана следующая структура данных:

{
"user": {
"id": "143",
"name": "Иван",
"surname": "Петров",
"midname": "",
"e_mail": "supervisor@example.com",
"login": "supervisor@example.com",
"pass": "09de33e2f4407339f37aaadbd5d7b2e8",
"phone": "+70000000000",
"sex": "",
"hash": "eacc26e3b6f707ac49ffc34eaa9718922f09891424a189596b0e13821f94f47e",
"subscribe_on": "0",
"dateofreg": "0000-00-00 00:00:00",
"balance": "126585.20",
"is_company": "0",
"company": "",
"company_inn": "",
"passport": "",
"company_kpp": "",
"company_v_lice": "",
"company_deistvuet": "",
"company_bank": "",
"company_bank_bik": "",
"company_bank_ks": "",
"company_rs": "",
"company_address": "",
"company_director_post": "",
"company_director_fio": "",
"company_ogrn": "",
"company_post_address": "",
"ban_reason": "",
"ban_expire": null,
"last_visit": "2022-01-16 22:52:35",
"birthday": null,
"bonuses": "0",
"last_ip": "127.0.0.1",
"registration_ip": "",
"manager_user_id": "0",
"source_id": "-1",
"basket_min_limit": null,
"creator_app_id": "",
},
"extra_data": {
"phone": +70000000000,
"birthday": 2000-01-01
}
}

В ответ от удаленного сервера ожидается следующая структура данных.

В случае успешной генерации карты:

{
"success": true,
"barcode":"1234567890123"
}

В случае возникновения ошибки:

{
"success": false,
"error": "текст ошибки"
}

Тестовый скрипт

Вы можете исполоьзовать следующий тестовый скрипт, если желаете протестировать работу удаленного центра выдачи карт. Создайте файл getbarcode.php в корне вашего сайта со следующим содержимым:

<?php
/**
* Тестовый скрипт, позволяющий протестировать успешую и неуспешную генерацию карты.
* Используйте Basic авторизацию.
* Логин: user
* Пароль: pass
*
* Если запустить скрипт с GET параметром fail=1, то результат будет отрицательным,
* в противном случае будет возвращаться демо-штрихкод, состоящий из 13 цифр
*/
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
exit;
} else {
if ($_SERVER['PHP_AUTH_USER'] !== 'user' || $_SERVER['PHP_AUTH_PW'] !== 'pass') {
echo "Неверный логин или пароль. Используйте Логин user, пароль pass";
exit(1);
}
}
if (isset($_GET['fail'])) {
$result = [
'success' => false,
'error' => 'К сожалению, карты больше не выдаются'
];
} else {
$result = [
'success' => true,
'barcode' => '9780201379624' //Демо - номер карты в формате EAN13
];
}
header('Content-type: application/json; charset=utf-8');
echo json_encode($result, JSON_UNESCAPED_UNICODE);

Укажите в настройках модуля Магазин на вкладке Бонусные карты - провайдер "Сторонние бонусные карты".

Установите для получения успешного результата: URL-адрес для получения бонусной карты: http://вашдомен.ру/getbarcode.php Пользователь для Basic авторизации: user Пароль для Basic авторизации: pass

Для получения неуспешного результата, можно изненить URL: http://вашдомен.ру/getbarcode.php?fail=1

Логирование

Запросы к внешнему сервису выполняются через модуль "Внешних запросов" в ReadyScript. Вы можете включить логикование в разделе Управление -> Настройка системы -> Вкладка "Система логирования". Установите флажки напротив необходимых уровней логирования и поставьте общий флажок "Включен".

external_request_log.png
Настройка логирования

Просмотреть лог-файл вы можете в разделе Управление -> Логи.