Библиотека для PHP
Для упрощения интеграции c проектами на PHP мы сделали специальную библиотеку, она поддерживает работу для версий PHP 7.4.x и 8.x
Описание библиотеки
Библиотека доступна по ссылке https://github.com/b24io/loyalty-php-sdk/ и позволяет работать с основными сущностями:
карты
контакты
операции с картами и начислениями
Установка и подключение для PHP 8.*
Создайте в папке файл composer.json
{
"require": {
"b24io/loyalty-php-sdk": "4.*",
"monolog/monolog": "^3"
},
"require-dev": {
"roave/security-advisories": "dev-master"
}
}
Установка и подключение для PHP 7.4
Создайте в папке файл
composer.json
{
"require": {
"b24io/loyalty-php-sdk": "3.*",
"monolog/monolog": "^2.5"
},
"require-dev": {
"roave/security-advisories": "dev-master"
}
}
Выполните команду
composer install
Она установит нужную версию библиотеки и все необходимые зависимости
Возьмите токены доступа к API в админке приложения, вам понадобится клиентский ключ и токен для роли admin
Пример скрипта, который производит подключение к API приложения и получает все контакты
<?php
declare(strict_types=1);
use B24io\Loyalty\SDK;
use B24io\Loyalty\SDK\Common\Requests\ItemsOrder;
use B24io\Loyalty\SDK\Common\Requests\OrderDirection;
use Money\Currencies\ISOCurrencies;
use Money\Formatter\DecimalMoneyFormatter;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Monolog\Processor\IntrospectionProcessor;
use Monolog\Processor\MemoryUsageProcessor;
require_once 'vendor/autoload.php';
print('GET ALL CONTACTS EXAMPLE' . PHP_EOL . PHP_EOL);
$apiEndpoint = 'https://loyalty.b24.cloud/api/v2/';
$apiClientId = 'INSERT_HERE_CLIENT_ID';
$apiAdminKey = 'INSERT_HERE_ADMIN_KEY';
// configure logger
$log = new Logger('loyalty-php-sdk-integration');
$logLevel = 100;
$logFileName = 'loyalty-php-sdk-exchange.log';
$log->pushHandler(new StreamHandler($logFileName, $logLevel));
$log->pushProcessor(new MemoryUsageProcessor(true, true));
$log->pushProcessor(new IntrospectionProcessor());
$serviceBuilder = SDK\Services\ServiceBuilderFactory::createAdminRoleServiceBuilder(
$apiEndpoint,
$apiClientId,
$apiAdminKey,
$log
);
$decimalMoneyFormatter = new DecimalMoneyFormatter(new ISOCurrencies());
// fetch all contacts from rest-api page by page
$contactsCounter = 0;
print('# | loyalty id | full name | mobile |created | b24 id |' . PHP_EOL);
foreach ($serviceBuilder->contactsScope()->fetcher()->list(
null,
new ItemsOrder('created', OrderDirection::desc())) as $contact) {
$contactsCounter++;
print(sprintf('%s | %s | %s | %s | %s | %s ',
$contactsCounter,
$contact->id->toRfc4122(),
$contact->mobilePhone !== null ? $contact->mobilePhone->phoneNumber->getNationalNumber() : 'none',
sprintf('%s %s %s', $contact->fullName->name, $contact->fullName->surname, $contact->patronymic),
$contact->created->format('Y.m.d H:i:s'),
$contact->externalIds['bitrix24']
) . PHP_EOL);
}
Запустите скрипт в консоли
php -f get-all-contacts.php
Last updated
Was this helpful?