2017 © Pedro PelΓ‘ez
 

library atol-online

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΠ’ΠžΠ› Онлайн

image

it-quasar/atol-online

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΠ’ΠžΠ› Онлайн

  • Wednesday, July 25, 2018
  • by 0x6368656174
  • Repository
  • 1 Watchers
  • 0 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

it-quasar/atol-online

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π° PHP для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΠ’ΠžΠ› Онлайн v4., (*1)

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° содСрТит Π½Π°Π±ΠΎΡ€ классов Π½Π° PHP для формирования запросов Π² ΠΠ’ΠžΠ› Онлайн ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΈΠ· ΠΠ’ΠžΠ› Онлайн. ВсС классы сдСланы Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ± ΠΈΡ… названия ΠΈ свойства максимально соотвСтствовали ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΠ’ΠžΠ› Онлайн v4., (*2)

ВрСбования

  • PHP 7.1 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅
  • PHP Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с cURL (ext-curl)
  • PHP Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON (ext-json)

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π² своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ стандартный PSR-совмСстимый кСш (см. http://www.php-cache.com) для хранСния Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° доступа ΠΊ API ΠΠ’ΠžΠ› Онлайн., (*3)

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ любой PSR-совмСстимый кСш, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ кСш (https://github.com/php-cache/filesystem-adapter). Для этого Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Composer:, (*4)

```.sh $ composer require cache/filesystem-adapter, (*5)


## Установка ΠŸΠ°ΠΊΠ΅Ρ‚ доступСн для установки ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° Composer: ```.sh $ composer require it-quasar/atol-online

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

Для рСгистрации Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² ККВ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:, (*6)

```.php <?php, (*7)

// ΠšΠ»Π°ΡΡΡ‹ PSR-совмСстимого кСша (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Filesystem кСш, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ) use Cache\Adapter\Filesystem\FilesystemCachePool; use League\Flysystem\Adapter\Local; use League\Flysystem\Filesystem;, (*8)

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;, (*9)

// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ врСмя Π·Π°ΠΊΠ°Π·Π° $timestamp = new DateTime(); $timestamp ->setDate(2017, 05, 29) ->setTime(17, 56, 18);, (*10)

// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ запрос Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΡƒ // ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ запроса, описанным Π² // https://raw.githubusercontent.com/0x6368656174/atol-online/master/api/atol-online-v4.6.pdf $request = new Sell(); $request ->setExternalId('17052917561851307') ->setTimestamp($timestamp);, (*11)

// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ‡Π΅ΠΊ $receipt = new Receipt(); $receipt->setTotal(7612);, (*12)

// Установми Ρ‡Π΅ΠΊ для запроса $request->setReceipt($receipt);, (*13)

// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° $client = new Client(); $client->setEmail('client@example.com');, (*14)

// Установим Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° для Ρ‡Π΅ΠΊΠ° $receipt->setClient($client);, (*15)

// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ $company = new Company(); $company ->setEmail('shop@example.com') ->setSno(SnoSystem::OSN) ->setInn('331122667723') ->setPaymentAddress('http://example.com');, (*16)

// Установим Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ для Ρ‡Π΅ΠΊΠ° $receipt->setCompany($company);, (*17)

// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π½Π°Π»ΠΎΠ³Π° ΠΏΠΎΠ΄ 20% НДБ $vat20 = new Vat(); $vat20->setType(VatType::VAT20);, (*18)

// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ $item1 = new Item('НазваниС Ρ‚ΠΎΠ²Π°Ρ€Π° 1'); $item1 ->setPrice(5000) ->setQuantity(1) ->setSum(5000) ->setVat($vat20) ->setPaymentObject(PaymentObject::COMMODITY) ->setPaymentMethod(PaymentMethod::FULL_PAYMENT);, (*19)

// Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Ρ‡Π΅ΠΊ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ $receipt->addItem($item1);, (*20)

// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ $item2 = new Item('НазваниС Ρ‚ΠΎΠ²Π°Ρ€Π° 2'); $item2 ->setPrice(1456.21) ->setQuantity(2) ->setVat($vat20) ->setPaymentObject(PaymentObject::COMMODITY) ->setPaymentMethod(PaymentMethod::FULL_PAYMENT) ->setMeasurementUnit('ΠΊΠ³');, (*21)

// Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Ρ‡Π΅ΠΊ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ $receipt->addItem($item2);, (*22)

// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΠΏΠ»Π°Ρ‚Ρƒ $payment = new Payment(); $payment ->setSum(7612) ->setType(Payment::TYPE_ELECTRONIC);, (*23)

// Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Ρ‡Π΅ΠΊ ΠΎΠΏΠ»Π°Ρ‚Ρƒ $receipt->addPayment($payment);, (*24)

// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ слуТСбный Ρ€Π°Π·Π΄Π΅Π» $service = new Service(); $service->setCallbackUrl('http://example.com/payment-result');, (*25)

// Установим слуТСбный Ρ€Π°Π·Π΄Π΅Π» для запроса Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΡƒ $request->setService($service);, (*26)

// PSR-совмСстимый интСрфСйс ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, см. http://www.php-cache.com // Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Filesystem кСш, настроим Π΅Π³ΠΎ ΠΏΡƒΠ» ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΈΡ‚Π΅ΠΌ для ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ $filesystemAdapter = new Local(DIR.'/'); $filesystem = new Filesystem($filesystemAdapter); $pool = new FilesystemCachePool($filesystem); $cache = $pool->getItem('atol');, (*27)

// PSR-совмСстимый Π»ΠΎΠ³Π³Π΅Ρ€ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€) $logger = null;, (*28)

// Π›ΠΎΠ³ΠΈΠ½, ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈ ΠΊΠΎΠ΄ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² "Настройках ΠΈΠ½Ρ‚Π΅Ρ€Π³Π°Ρ‚ΠΎΡ€Π°", скачиваСмых с // Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π° ΠΠ’ΠžΠ› Онлайн Π² Π½ΠΎΠ΄Π΅ $login = 'netletest'; $passwor = 'v2AfscRjr'; $groupCode = 'netletest_8491';, (*29)

// Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ $client = new AtolClient($login, $password, $groupCode, $cache, $logger);, (*30)

// ΠžΡ‚Ρ€Π°Π²ΠΈΠΌ запрос // $uuid Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ UUID Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² систСмС ΠΠ’ΠžΠ› Онлайн $uuid = $client->send($request);, (*31)


ДоступныС запросы: * `ItQuasar/AtolOnline/Sell` - Ρ‡Π΅ΠΊ Β«ΠŸΡ€ΠΈΡ…ΠΎΠ΄Β»; * `ItQuasar/AtolOnline/SellRefund` - Ρ‡Π΅ΠΊ Β«Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π°Β»; * `ItQuasar/AtolOnline/SellCorrection` - Ρ‡Π΅ΠΊ Β«ΠšΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΡ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π°Β»; * `ItQuasar/AtolOnline/Buy` - Ρ‡Π΅ΠΊ «Расход»; * `ItQuasar/AtolOnline/BuyRefund` - Ρ‡Π΅ΠΊ Β«Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ расхода»; * `ItQuasar/AtolOnline/BuyCorrection` - Ρ‡Π΅ΠΊ Β«ΠšΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΡ расхода». Для получСния статуса ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄: ```.php <?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);

The Versions

25/07 2018

dev-master

9999999-dev

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΠ’ΠžΠ› Онлайн

  Sources   Download

GPL-3.0-or-later

The Requires

 

The Development Requires

by Pavel Puchkov

25/07 2018

1.0.10

1.0.10.0

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΠ’ΠžΠ› Онлайн

  Sources   Download

GPL-3.0-or-later

The Requires

 

The Development Requires

by Pavel Puchkov