Библиотека для PHP

Для упрощения интеграции c проектами на PHP мы сделали специальную библиотеку, она поддерживает работу для версий PHP 7.4.x и 8.x

Описание библиотеки

Библиотека доступна по ссылке https://github.com/b24io/loyalty-php-sdk/ и позволяет работать с основными сущностями:

  • карты

  • контакты

  • операции с картами и начислениями

Установка и подключение для PHP 8.*

Для PHP версии 8.* требуется загружать версию библиотеки из ветки 4.*

Создайте в папке файл composer.json

composer.json
{
  "require": {
    "b24io/loyalty-php-sdk": "4.*",
    "monolog/monolog": "^3"
  },
  "require-dev": {
    "roave/security-advisories": "dev-master"
  }
}

Установка и подключение для PHP 7.4

Для PHP версии 7.4 требуется загружать версию библиотеки из ветки 3.*

  1. Создайте в папке файл composer.json

{
  "require": {
    "b24io/loyalty-php-sdk": "3.*",
    "monolog/monolog": "^2.5"
  },
  "require-dev": {
    "roave/security-advisories": "dev-master"
  }
}
  1. Выполните команду

composer install

Она установит нужную версию библиотеки и все необходимые зависимости

  1. Возьмите токены доступа к API в админке приложения, вам понадобится клиентский ключ и токен для роли admin

  2. Пример скрипта, который производит подключение к API приложения и получает все контакты

get-all-contats.php
<?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);
}
  1. Запустите скрипт в консоли

php -f get-all-contacts.php

Last updated

Was this helpful?