igormakarov/ikassa.cloud.php.sdk

Client for work with IKassa.Cloud REST API and auth

v0.2.1 2025-05-13 12:50 UTC

This package is auto-updated.

Last update: 2025-06-13 12:57:19 UTC


README

iKassa Dusik Cloud
Облачная касса в Республике Беларусь без физического СКО

Официальная документация:

Описание облачной кассы: https://ikassa.by/box-solutions/dusik_cloud
API: https://ikassa.pages.imlab.by/cloud-cashbox/doc/auth.html

Подключение к проекту:

composer require igormakarov/ikassa.cloud.php.sdk
require_once 'vendor/autoload.php';

Работа с Авторизацией(получение device_code, получение прав для работы с API):

Для работы с авторизаций с iKassa потребуется класс Auth:

$auth = new Auth(
    new AuthData(
        'https://accounts.stage.imlab.by',
        '<client_id>'
    )
);

client_id - предприятие или клиент получает при регистрации и личном обращении в поддержку iKassa

Получение данных для подтверждения:

$bindData = $auth->bindingData("_os", "_osVer", '_deviceName', '_appName');

при успешно выполнении в $bindData запишет объект BindingData, котором хранится и можно будет получить user_code для привязки кассы в ЛК iKassa и device_code для дальнейшего получения токена авторизации

Пример получения user_code и device_code из BindingData

$deviceCode = $bindData->getDeviceCode(); // метод получения device_code
$userCode = $bindData->getUserCode(); // метод получения user_code
$expireIn = $bindData->getExpiresIn(); // метод получения скрока действия user_code для привязки кассы в ЛК 

Только после того, как получили $userCode и привязали по нему кассу в ЛК, можно получить ключ для работы с API

Получаем права доступа для работы с API

$accessTokenData = $auth->getAccessTokenData('<ваш_device_code_полученный_выше>');

$accessTokenData->getAccessToken() // получаем access_token для работы с API
$accessTokenData->getRefreshToken() // получаем refresh_token для обновления access_token через expire_in времени
$accessTokenData->getExpiresIn() // получаем время по истечению которого нужно обновить access_token,

Обновление прав доступа

$newAccessTokenData = $auth->refreshAccessTokenData('<your_refresh_token>') //your_refresh_token - токен получены с помощью $accessTokenData->getRefreshToken() ранее

refreshAccessTokenData - получает тот же объект AccessTokenData что и getAccessTokenData