63pokupki/yii2-taxcom-sdk

Yii2 SDK 用于与 taxcom.ru 的 ОФД API 操作员进行交互

v0.1.0 2019-11-20 19:06 UTC

This package is not auto-updated.

Last update: 2024-09-20 20:16:11 UTC


README

该库简化了与 ОФД Такском(税务数据运营商)的集成工作,在获取数据和处理POS机(销售点终端设备)时使用。

要求

在注册 Такском-Касса 服务并开始工作之前,需要获取集成者的ID。为此,需要向 "Такском" 公司的技术支持发送相应请求 技术支持

服务特点

时区处理。在所有 API 调用中,时间位于 UTC 时区。POS机不传输时区信息,服务根据个人账户中的设置将时间转换为UTC。因此,需要确保在POS机和该POS机的服务设置中正确指定时区。

示例

<?php

use pokupki63\Taxcom\Client;
use pokupki63\Taxcom\Model\Document;
use pokupki63\Taxcom\Request\Login;
use pokupki63\Taxcom\Taxcom;

// Инициализируем такском API клиент
$client = new Client(
    // api-lk-ofd.taxcom.ru - боевой, api-tlk-ofd.taxcom.ru - тестовый
    'api-tlk-ofd.taxcom.ru',
    new Login([
        'login' => 'логин',
        'password' => 'пароль',
        'agreementNumber' => 'номер договора',
    ]),
    'ID итегратора'
);
$taxcom = new Taxcom($client);
// Список офисов
$outletList = $taxcom->getOutletList();
foreach ($outletList as $outlet) {
    echo 'Офис: ' . $outlet->name . PHP_EOL;
    // Список касс
    $cashDeskList = $taxcom->getCashDeskList($outlet);
    foreach ($cashDeskList as $cashDesk) {
        echo "\tкасса #{$cashDesk->fnFactoryNumber} (рег. номер {$cashDesk->kktRegNumber})" . PHP_EOL;
        // Список смен на кассе
        $shiftList = $taxcom->getShiftList($cashDesk);
        foreach ($shiftList as $shift) {
            echo "\t\tсмена №" . $shift->shiftNumber . PHP_EOL;
            // Список документов (чеки) смены
            $docList = $taxcom->getDocumentList($shift, Document::TYPE_CHECK);
            foreach ($docList as $doc) {
                // ФФД теги документа
                $docTag = $taxcom->getDocumentTag($doc);
                $sum = round($doc->sum / 100, 2);
                echo $this->getLogMessage("\t\t\tФД №{$doc->fdNumber} {$sum} рублей");
            }
        }
    }
}