承接 djjerry85/atol-online 相关项目开发

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

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

djjerry85/atol-online

Composer 安装命令:

composer require djjerry85/atol-online

包简介

Библиотека для работы с АТОЛ Онлайн. Fork it-quasar/atol-online

README 文档

README

Библиотека на PHP для работы с АТОЛ Онлайн v4.

Библиотека содержит набор классов на PHP для формирования запросов в АТОЛ Онлайн и обработки ответов из АТОЛ Онлайн. Все классы сделаны таким образом, чтоб их названия и свойства максимально соответствовали официальной документации АТОЛ Онлайн v4.

Требования

  • PHP 7.1 или выше
  • PHP расширение для работы с cURL (ext-curl)
  • PHP расширение для работы с JSON (ext-json)

Библиотека использует в своей работы стандартный PSR-совместимый кеш (см. http://www.php-cache.com) для хранения временного ключа доступа к API АТОЛ Онлайн.

Поддерживается любой PSR-совместимый кеш, например, можно использовать файловый кеш (https://github.com/php-cache/filesystem-adapter). Для этого его необходимо установить при помощи Composer:

$ composer require cache/filesystem-adapter

Установка

Пакет доступен для установки при помощи пакетного менеджера Composer:

$ composer require it-quasar/atol-online

Использование

Для регистрации документа в ККТ необходимо выполнить следующий код:

<?php

// Классы PSR-совместимого кеша (в данном примере используется Filesystem кеш, может быть любой другой)
use Cache\Adapter\Filesystem\FilesystemCachePool;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;

use ItQuasar\AtolOnline\AtolClient;
use ItQuasar\AtolOnline\Client;
use ItQuasar\AtolOnline\Company;
use ItQuasar\AtolOnline\Item;
use ItQuasar\AtolOnline\Payment;
use ItQuasar\AtolOnline\Receipt;
use ItQuasar\AtolOnline\Sell;
use ItQuasar\AtolOnline\Service;
use ItQuasar\AtolOnline\SnoSystem;
use ItQuasar\AtolOnline\Vat;
use ItQuasar\AtolOnline\VatType;

// Создадим время заказа
$timestamp = new DateTime();
$timestamp
  ->setDate(2017, 05, 29)
  ->setTime(17, 56, 18);
  
// Создадим запрос на продажу
// Параметры запроса соответствуют параметрам запроса, описанным в 
// https://raw.githubusercontent.com/0x6368656174/atol-online/master/api/atol-online-v4.6.pdf
$request = new Sell();
$request
  ->setExternalId('17052917561851307')
  ->setTimestamp($timestamp);

// Создадим чек
$receipt = new Receipt();
$receipt->setTotal(7612);

// Установми чек для запроса
$request->setReceipt($receipt);

// Создадим атрибуты клиента
$client = new Client();
$client->setEmail('client@example.com');

// Установим атрибуты клиента для чека
$receipt->setClient($client);

// Создадим атрибуты компании
$company = new Company();
$company
  ->setEmail('shop@example.com')
  ->setSno(SnoSystem::OSN)
  ->setInn('331122667723')
  ->setPaymentAddress('http://example.com');
  
// Установим атрибуты компании для чека
$receipt->setCompany($company);

// Создадим атрибут налога под 20% НДС
$vat20 = new Vat();
$vat20->setType(VatType::VAT20);

// Создадим первую позицию
$item1 = new Item('Название товара 1');
$item1
  ->setPrice(5000)
  ->setQuantity(1)
  ->setSum(5000)
  ->setVat($vat20)
  ->setPaymentObject(PaymentObject::COMMODITY)
  ->setPaymentMethod(PaymentMethod::FULL_PAYMENT);
  

// Добавим в чек первую позицию
$receipt->addItem($item1);

// Создадим вторую позицию
$item2 = new Item('Название товара 2');
$item2
  ->setPrice(1456.21)
  ->setQuantity(2)
  ->setVat($vat20)
  ->setPaymentObject(PaymentObject::COMMODITY)
  ->setPaymentMethod(PaymentMethod::FULL_PAYMENT)
  ->setMeasurementUnit('кг');

// Добавим в чек вторую позицию
$receipt->addItem($item2);

// Создадим оплату
$payment = new Payment();
$payment
  ->setSum(7612)
  ->setType(Payment::TYPE_ELECTRONIC);

// Добавим в чек оплату
$receipt->addPayment($payment);

// Создадим служебный раздел
$service = new Service();
$service->setCallbackUrl('http://example.com/payment-result');

// Установим служебный раздел для запроса на продажу
$request->setService($service);

// PSR-совместимый интерфейс кеширования, см. http://www.php-cache.com
// В данном случае используется Filesystem кеш, настроим его пул и получим итем для кеширования
$filesystemAdapter = new Local(__DIR__.'/');
$filesystem = new Filesystem($filesystemAdapter);
$pool = new FilesystemCachePool($filesystem);
$cache = $pool->getItem('atol');

// PSR-совместимый логгер (опциональный параметр)
$logger = null;

// Логин, пароль и код группы можно найти в "Настройках интергатора", скачиваемых с 
// личного кабинета АТОЛ Онлайн в ноде <access>
$login = 'netletest';
$passwor = 'v2AfscRjr';
$groupCode = 'netletest_8491';

// Создадим клиент
$client = new AtolClient($login, $password, $groupCode, $cache, $logger);

// Отравим запрос
// $uuid будет содержать UUID документа в системе АТОЛ Онлайн
$uuid = $client->send($request);

Доступные запросы:

  • ItQuasar/AtolOnline/Sell - чек «Приход»;
  • ItQuasar/AtolOnline/SellRefund - чек «Возврат прихода»;
  • ItQuasar/AtolOnline/SellCorrection - чек «Коррекция прихода»;
  • ItQuasar/AtolOnline/Buy - чек «Расход»;
  • ItQuasar/AtolOnline/BuyRefund - чек «Возврат расхода»;
  • ItQuasar/AtolOnline/BuyCorrection - чек «Коррекция расхода».

Для получения статуса обработки документа необходимо выполнить следующий код:

<?php

// Классы PSR-совместимого кеша (в данном примере используется Filesystem кеш, может быть любой другой)
use Cache\Adapter\Filesystem\FilesystemCachePool;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;

use ItQuasar\AtolOnline\AtolClient;
use ItQuasar\AtolOnline\Report;

// PSR-совместимый интерфейс кеширования, см. http://www.php-cache.com
// В данном случае используется Filesystem кеш, настроим его пул и получим итем для кеширования
$filesystemAdapter = new Local(__DIR__.'/');
$filesystem = new Filesystem($filesystemAdapter);
$pool = new FilesystemCachePool($filesystem);
$cache = $pool->getItem('atol');

// PSR-совместимый логгер (опциональный параметр)
$logger = null;

// Логин, пароль и код группы можно найти в "Настройках интергатора", скачиваемых с 
// личного кабинета АТОЛ Онлайн в ноде <access>
$login = 'netletest';
$passwor = 'v2AfscRjr';
$groupCode = 'netletest_8491';

// Создадим клиент
$client = new AtolClient($login, $password, $groupCode, $cache, $logger);

// UUID документа, полученный при регистрации документа в системе АТОЛ Онлайн
$uuid = '...';

// Отравим запрос на получение статуса обработки.
// $report будет содержать ItQuasar/AtolOnline/Report,
// который соответствует структуре описанной в 
// https://raw.githubusercontent.com/0x6368656174/atol-online/master/api/atol-online-v4.6.pdf
$report = $client->getReport($uuid);

djjerry85/atol-online 适用场景与选型建议

djjerry85/atol-online 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 46 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 02 月 21 日, 在 PHP 生态内属于活跃度较高的组件。

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

围绕 djjerry85/atol-online 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 8
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-or-later
  • 更新时间: 2021-02-21