- Created by Unknown User (v.vasilev), last modified on Jul 05, 2018
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 6 Next »
Если Вы приобрели, либо собираетесь приобрести, "Онлайн Кассу Атол", то можете интегрировать её с нашим сервисом по средством API:
Error rendering macro 'viewpdf'
com.atlassian.confluence.macro.MacroExecutionException: com.atlassian.confluence.macro.MacroExecutionException: The viewfile macro is unable to locate the attachment "ATOL-online Description.pdf" on this page
Скачайте данный PDF файл и передайте его вашим техническим специалистам.
Ниже простой пример кода, когда модуль системы IntellectMoney изменил статус заказа на оплачено, необходимо передать параметры этого заказа на онлайн кассу Атол:
Сначала создайте XML файл
<?xml version="1.0" encoding="UTF-8"?> <cms_params Company="ИП Пример" INN="инн" KPP=""> <shop hostname="https://ваш_сайт/"> <access login="логин" password="пароль" group_code="группа"/> </shop> </cms_params>
Затем три файла:
- Atoll.class.php (Инициализируем класс)
- pay_test.php (Реализуем класс на примере чека прихода)
- atol_callback.php (Получаем ответ)
Параметры строки запроса:
api_version: версия API сервиса (на данный момент, версия API – "v3")
group_code: идентификатор группы ККТ.
operation: тип операции, которая должна быть выполнена. Возможные типы операция:
sell: чек «Приход»;
sell_refund: чек «Возврат прихода»;
sell_correction: чек «Коррекция прихода»;
buy: чек «Расход»;
buy_refund: чек «Возврат расхода»;
buy_correction: чек «Коррекция расхода».
<?php class Atol { public $api_version = 'v3'; public $login = 'логин'; public $pass = 'пароль'; public $group_code = 'группа'; public $inn = 'инн'; public $token = ''; function Send($url, $params=Array()) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); if ($params) { curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params, JSON_UNESCAPED_UNICODE)); } curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $res = curl_exec($ch); curl_close($ch); return json_decode($res, true); } public function getToken() { $rez = $this->Send('api_version.'/getToken'>https://online.atol.ru/possystem/'.$this->api_version.'/getToken', Array('login'=>$this->login, 'pass'=>$this->pass)); $this->token = $rez['token']; return $rez; } /* $operation - Тип документа o sell: чек «Приход»; o sell_refund: чек «Возврат прихода»; o sell_correction: чек «Коррекция прихода»; o buy: чек «Расход»; o buy_refund: чек «Возврат расхода»; o buy_correction: чек «Коррекция расхода». $params - параметры документа */ public function sendDoc($operation, $params) { $rez = $this->Send('api_version.'/'.$this->group_code.'/'.$operation.'?tokenid='.$this->token'>https://online.atol.ru/possystem/'.$this->api_version.'/'.$this->group_code.'/'.$operation.'?tokenid='.$this->token, $params); return $rez; } public function checkDoc($uuid) { $rez = $this->Send('api_version.'/'.$this->group_code.'/report/'.$uuid.'?tokenid='.$this->token'>https://online.atol.ru/possystem/'.$this->api_version.'/'.$this->group_code.'/report/'.$uuid.'?tokenid='.$this->token); return $rez; } }
В Atoll.class.php мы инициализировали параметры для формирования чека, авторизацию в системе Атол и получили токена, отправку и проверку документа, далее реализуем:
<?php include 'Atol.class.php'; if ($_GET['act']=='check') { $atol = new Atol(); if ($atol->getToken()['code'] != 2) { $rez = $atol->checkDoc($_GET['uuid']); ?> <p><a href="&fp=">Посмотреть'>https://lk.platformaofd.ru/web/noauth/cheque?fn=<?=$rez['payload']['fn_number']?>&fp=<?=$rez['payload']['fiscal_document_attribute']?>">Посмотреть чек</a></p> <p><a href="-.pdf">Скачать'>https://lk.platformaofd.ru/web/noauth/cheque/pdf-<?=$rez['payload']['fn_number']?>-<?=$rez['payload']['fiscal_document_attribute']?>.pdf">Скачать чек</a></p> <?php print_r($rez); } } else { */ Когда статус заказа был изменён модулем IntellectMoney, берём параметры заказа и передаём их в переменные ниже.*/ $atol = new Atol(); if ($atol->getToken()['code'] != 2) { $p = Array( 'timestamp' => date('d.m.Y H:i:s'), 'external_id' => 'test6', 'service' => Array( 'inn' => $atol->inn, 'payment_address' => 'intellectmoney.ru', 'callback_url ' => 'http://ваш_сайтт/atol_callback.php', ), 'receipt' => Array( 'attributes' => Array( 'sno' => 'usn_income', 'email' => 'max-la@yandex.ru', 'phone' => '9127372410' Система налогообложения. Перечисление со значениями: «osn» - общая СН; «usn_income» - упрощенная СН (доходы); «usn_income_outcome» - упрощенная СН (доходы минус расходы); «envd» - единый налог на вмененный доход; «esn» - единый сельскохозяйственный налог; «patent» - патентная СН. ), 'items' => Array( Array ( 'name' => 'Оплата брони 1-5446', 'price' => 1, 'quantity' => 1, 'sum' => 1, 'tax' => 'none', 'tax_sum' => 0 ) ), // Количество оплат клиентом и их сумма 'total' => 1, 'payments' => Array( Array( 'type' => 1, 'sum' => 1 ) ) ) ); $rez=$atol->sendDoc('sell', $p); sell: чек «Приход»; sell_refund: чек «Возврат прихода»; sell_correction: чек «Коррекция прихода»; buy: чек «Расход»; buy_refund: чек «Возврат расхода»; buy_correction: чек «Коррекция расхода». ?> <p><a href="?act=check&uuid=<?=$rez['uuid']?>">Проверить чек</a></p> <?php print_r($rez); } }
<?php include 'Atol.class.php'; file_put_contents('atol.txt', '!' . file_get_contents('php://input'). json_encode($_POST, JSON_UNESCAPED_UNICODE));
-
Page:
-
Page:
-
Page:
-
Page:
-
Page:
-
Page:
-
Page:
- No labels