承接 alekciy/php-ofd-sdk 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

alekciy/php-ofd-sdk

Composer 安装命令:

composer require alekciy/php-ofd-sdk

包简介

Библиотека работает с API операторов фискальных данных (ОФД)

README 文档

README

Библиотека предоставляет унифицированный интерфейс (см. ProviderInterface) работы с различными ОФД (оператор фискальных данных) при получении данных о фискальных документах (чеках).

Основная цель - облегчить интеграцию проекта при работе с разными API операторов. Например, при синхронизации данных о выбитых на кассе чеках и данных ушедших в налоговую.

Scrutinizer Code Quality Build Status

Поддерживаемые ОФД

Установка

Через composer командой: composer require alekciy/php-ofd-sdk

Пример

Ниже приведен пример работы для Такском и Яндекс.ОФД.

<?php

include_once __DIR__ . '/vendor/autoload.php';

use alekciy\ofd\providers\taxcom\Client as TaxcomClient;
use alekciy\ofd\providers\taxcom\Credentials as TaxcomCredentials;
use alekciy\ofd\providers\taxcom\Taxcom;
use alekciy\ofd\providers\yandex\Client as YandexClient;
use alekciy\ofd\providers\yandex\Credentials as YandexCredentials;
use alekciy\ofd\providers\yandex\Yandex;

// ============ Инициализация клиента ============
// У каждого провайдера свои требование при работе через API поэтому инициализация клиента
// зависит от используемого провайдера.

// Инициализируем Такском API клиент
$credentials = new TaxcomCredentials(
	'api-lk-ofd.taxcom.ru',
	'логин',
	'пароль',
	'токен'
);
$agreementNumber = 'Номер договора';
$client = new TaxcomClient($credentials, $agreementNumber);
$taxcom = new Taxcom($client);

// Инициализация Яндекс.ОФД клиент
$credentials = new YandexCredentials(
	'api.ofd.yandex.net',
	'аутентификационный ключ',
	'авторизационный ключ'
);
$client = new YandexClient($credentials);
$yandex = new Yandex($client);

// ============ Получение данных ============
// Получаем список точек продаж с Такском...
$outletList = $taxcom->getOutletList();
$outlet = current($outletList);
// ...список касс с первой точки...
$cashDeskList = $taxcom->getCashDeskList($outlet);
$cashDesk = current($cashDeskList);
// ...и список смен с первой кассы
$shiftList = $taxcom->getShiftList($cashDesk);

// Получение смен через Яндекс.ОФД выглядит точно так же
$outletList = $yandex->getOutletList();
$outlet = current($outletList);
$cashDeskList = $taxcom->getCashDeskList($outlet);
$cashDesk = current($cashDeskList);
$shiftList = $taxcom->getShiftList($cashDesk);

Тесты

В библиотеке используются два вида тестов:

  • юнит для проверки правильности работы самой библиотеки;
  • интеграционные для проверки работы API заданного ОФД.

Юнит тесты

Для запуска тестов нужно:

  1. выполнить командуcomposer test-unit.

Интеграционные тесты

Для запуска тестов нужно:

  1. скопировать файл нужного ОФД (например, taxcom) tests/credentials/ОФД.example.php в файл tests/credentials/ОФД.php;
  2. вписать требуемые реквизиты доступа в tests/credentials/ОФД.php;
  3. выполнить команду composer test-integration-ОФД.

Основные термины

В таблице приведены термины в порядке удобном для понимания.

ОФД Оператор Фискальных Данных Сервис принимающий с кассово аппарата данные о выбитых чеках и передающий их в налоговую службу.
ККТ Контрольно Кассовая Техника Кассовый аппарат выбивающий чеки либо на бумаге, либо в электронном виде.
ККМ Контрольно Кассовая Машина Устаревшее название ККТ.
ФД Фискальный Документ Документ отправляемый в налоговую службу. Кассовый чек является частным случаем ФД. Все типы ФД перечисленые в константах DocumentInterface в виде классов документов.
ФФД Формат Фискальных Данных По сути спецификация описывающая свойства (реквизиты) и их значения, которые могут быть у ФД. Регламентируется приказами ФНС России (на основании 54-ФЗ). Например, приказ № ЕД-7-20/662 По состоянию на 2022 год есть три версии ФФД: 1.0, 1.05, 1.1 и 1.2.
Тег ФД - По сути имя свойства (реквизита) ФД которые передаются в ОФД. Например, в теге 1037 касса передает свой регистрационный номер. Поддерживаемые теги находятся в директории tags.

alekciy/php-ofd-sdk 适用场景与选型建议

alekciy/php-ofd-sdk 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.36k 次下载、GitHub Stars 达 10, 最近一次更新时间为 2019 年 12 月 29 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「sdk」 「ОФД」 「оператор фискал�」 「ных данных」 「ФФД」 「фор�」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 alekciy/php-ofd-sdk 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 alekciy/php-ofd-sdk 我们能提供哪些服务?
定制开发 / 二次开发

基于 alekciy/php-ofd-sdk 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 2.36k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 10
  • 点击次数: 7
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 10
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-12-29