komtet-kassa-php-sdk
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° Ρ ΠΎΠ±Π»Π°ΡΠ½ΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ°ΡΠΈ ΡΠ΅ΠΊΠΎΠ² ΠΠΠΠ’ΠΠ’ ΠΠ°ΡΡΠ°, (*1)
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Composer:, (*2)
composer require komtet/kassa-sdk
ΠΡΡΡΠ½ΡΡ:, (*3)
git clone https://github.com/Komtet/komtet-kassa-php-sdk
<?php
require __DIR__.'/komtet-kassa-php-sdk/autoload.php';
ΠΠ»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΠ· examples ΠΈΠ· php-cli:, (*4)
make build
make cli_php_7 ΠΈΠ»ΠΈ make cli_php_8
php -f examples/v1/send_check_example.php
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ v1
ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ:, (*5)
<?php
use Komtet\KassaSdk\v1\Client;
use Komtet\KassaSdk\v1\QueueManager;
$key = 'ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°';
$secret = 'ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ';
// PSR-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Π»ΠΎΠ³Π³Π΅Ρ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ)
$logger = null;
$client = new Client($key, $secret, $logger);
$manager = new QueueManager($client);
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ:, (*6)
$manager->registerQueue('queue-name-1', 'queue-id-1');
$manager->registerQueue('queue-name-2', 'queue-id-2');
// 'queue-name-1' ΠΈ 'queue-name-2' - ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠΌΠΈΠΌΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΎΡΠ΅ΡΠ΅Π΄ΡΠΌ.
// 'queue-id-1' ΠΈ 'queue-id-2' - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ
Π² Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅.
Π§Π΅ΠΊ
Π§ΡΠΎΠ±Ρ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΈΠΌΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:, (*7)
<?php
$manager->setDefaultQueue('queue-name-1');
$manager->putCheck($check);
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ:, (*8)
<?php
$manager->isQueueActive('queue-name-1');
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° ΡΠΈΡΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°Π΄Π°ΡΠ΅:, (*9)
<?php
$taskManager = new TaskManager($client);
try {
$taskManager->getTaskInfo('task-id');
} catch (SdkException $e) {
echo $e->getMessage();
}
ΠΠ°ΠΊΠ°Π·
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π° Π½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΡ:, (*10)
<?php
$orderManager = new OrderManager($client);
$order_id = 1;
$order = new Order('123', TaxSystem::COMMON, 'new', 0);
$order->setClient('Π³.ΠΠ΅Π½Π·Π°, ΡΠ».Π‘ΡΠ²ΠΎΡΠΎΠ²Π° Π΄.10 ΠΊΠ².25',
'+87654443322',
'client@email.com',
'Π‘Π΅ΡΠ³Π΅Π΅Π² ΠΠΈΠΊΡΠΎΡ Π‘Π΅ΡΠ³Π΅Π΅Π²ΠΈΡ');
$order->setDeliveryTime('2018-02-28 14:00',
'2018-02-28 15:20');
$orderPosition = new OrderPosition(['oid' => '1',
'name' => 'position name1',
'price' => 555.0,
'type' => 'product'
]);
$order->addPosition($orderPosition);
try {
$orderManager->updateOrder($order_id, $order);
} catch (SdkException $e) {
echo $e->getMessage();
}
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°ΠΊΠ°Π·Π΅:, (*11)
<?php
$orderManager = new OrderManager($client);
$order_id = 1;
try {
$info = $orderManager->getOrderInfo($order_id);
} catch (SdkException $e) {
echo $e->getMessage();
}
ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ±ΡΡΡ ΡΠΊΠΈΠ΄ΠΊΡ Π½Π° Π·Π°ΠΊΠ°Π·:, (*12)
<?php
$discount = 250;
$order->applyDiscount($discount);
Π£Π΄Π°Π»ΠΈΡΡ Π·Π°ΠΊΠ°Π·:, (*13)
<?php
$orderManager = new OrderManager($client);
$order_id = 1;
try {
$orderManager->deleteOrder($order_id);
} catch (SdkException $e) {
echo $e->getMessage();
}
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΊΠ°Π·ΠΎΠ²:, (*14)
<?php
$orderManager = new OrderManager($client);
try {
$orderList = $orderManager->getOrders();
} catch (SdkException $e) {
echo $e->getMessage();
}
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ²:, (*15)
<?php
use Komtet\KassaSdk\EmployeeManager;
use Komtet\KassaSdk\EmployeeType;
$employeeManager = new EmployeeManager(client);
try {
$employeeList = $employeeManager->getEmployees(EmployeeType::COURIER);
} catch (SdkException $e) {
echo $e->getMessage();
}
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΡ:, (*16)
<?php
$employeeManager = new EmployeeManager(client);
$employeeID = 1;
try {
$employee = $employeeManager->getEmployee($employeeID);
} catch (SdkException $e) {
echo $e->getMessage();
}
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°:, (*17)
<?php
$employeeManager = new EmployeeManager(client);
$employee = new Employee(EmployeeType::CASHIER, 'Full Name',
'login_employee', 'password', 'POS_KEY');
$employee->setPaymentAddress('payment address');
$employee->setAccessSettings(true, false, none);
try {
$employeeManager->createEmployee($employee);
} catch (SdkException $e) {
echo $e->getMessage();
}
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°:, (*18)
<?php
$employeeManager = new EmployeeManager(client);
$employee = new Employee(EmployeeType::CASHIER, 'Full Name',
'login_employee', 'new_password', 'POS_KEY');
$employee->setPaymentAddress('new payment address');
$employee->setAccessSettings(true, true, true);
$employeeID = 1;
try {
$employeeManager->updateEmployee($employeeID, $employee);
} catch (SdkException $e) {
echo $e->getMessage();
}
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°:, (*19)
<?php
$employeeManager = new EmployeeManager(client);
$employeeID = 1;
try {
$employeeManager->deleteEmployee($employeeID);
} catch (SdkException $e) {
echo $e->getMessage();
}
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ v2
ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ:, (*20)
<?php
use Komtet\KassaSdk\v2\Client;
use Komtet\KassaSdk\v2\QueueManager;
$key = 'ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°';
$secret = 'ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ';
// PSR-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Π»ΠΎΠ³Π³Π΅Ρ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ)
$logger = null;
$client = new Client($key, $secret, $logger);
$manager = new QueueManager($client);
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ:, (*21)
$manager->registerQueue('queue-name-1', 'queue-id-1');
$manager->registerQueue('queue-name-2', 'queue-id-2');
// 'queue-name-1' ΠΈ 'queue-name-2' - ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠΌΠΈΠΌΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΎΡΠ΅ΡΠ΅Π΄ΡΠΌ.
// 'queue-id-1' ΠΈ 'queue-id-2' - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ
Π² Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅.
Π§Π΅ΠΊ
Π§ΡΠΎΠ±Ρ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΈΠΌΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:, (*22)
<?php
$manager->setDefaultQueue('queue-name-1');
$manager->putCheck($check);
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ:, (*23)
<?php
$manager->isQueueActive('queue-name-1');
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° ΡΠΈΡΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°Π΄Π°ΡΠ΅:, (*24)
<?php
$taskManager = new TaskManager($client);
try {
$taskManager->getTaskInfo('task-id');
} catch (SdkException $e) {
echo $e->getMessage();
}
ΠΠ°ΠΊΠ°Π·
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π° Π½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΡ:
<?php
$orderManager = new OrderManager($client);
$order_id = 1;
$order = new Order('12345', 'new', true);
$orderCompany = new OrderCompany(TaxSystem::COMMON, 'Π£Π»ΠΈΡΠ° ΠΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ Π΄.4');
$order->setCompany($orderCompany);
$orderBuyer = new OrderBuyer('+87654443322',
'Π³.ΠΠ΅Π½Π·Π°, ΡΠ».Π‘ΡΠ²ΠΎΡΠΎΠ²Π° Π΄.10 ΠΊΠ².25')
$order->setOrderBuyer($orderBuyer);
$order->setDeliveryTime('20.02.2022 14:00',
'20.02.2022 15:20');
$orderPosition = new OrderPosition(['name' => 'position name1',
'price' => 555.0,
'quantity' => 1,
'total' => 555.0,
'vat' => '20',
]);
$order->addPosition($orderPosition);
try {
$orderManager->updateOrder($order_id, $order);
} catch (ApiValidationException $e) {
echo $e->getMessage();
echo $e->getVLDCode();
echo $e->getDescription();
} catch (SdkException $e) {
echo $e->getMessage();
}
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² API v2 ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ ΠΏΠΎ Π²ΡΠ·ΠΎΠ²Ρ Ρ API v1(ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π²ΡΡΠ΅ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ API v1):
- ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°ΠΊΠ°Π·Π΅
- ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ±ΡΡΡ ΡΠΊΠΈΠ΄ΠΊΡ Π½Π° Π·Π°ΠΊΠ°Π·
- Π£Π΄Π°Π»ΠΈΡΡ Π·Π°ΠΊΠ°Π·
- ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΠΊΠ°Π·ΠΎΠ²
- ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ²
- ΠΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΡ
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°
- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°