Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 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>

Затем три файла:

  1. Atoll.class.php (Инициализируем класс)
  2. pay_test.php (Реализуем класс на примере чека прихода)
  3. atol_callback.php (Получаем ответ)

Параметры строки запроса:
api_version: версия API сервиса (на данный момент, версия API – "v3")
group_code: идентификатор группы ККТ.
operation: тип операции, которая должна быть выполнена. Возможные типы операция:
sell: чек «Приход»;
sell_refund: чек «Возврат прихода»;
sell_correction: чек «Коррекция прихода»;
buy: чек «Расход»;
buy_refund: чек «Возврат расхода»;
buy_correction: чек «Коррекция расхода».

Atoll.class.php
<?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 мы инициализировали параметры для формирования чека, авторизацию в системе Атол и получили токена, отправку и проверку документа, далее реализуем:

pay_test.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);
    }
}
atol_callback.php
<?php
include 'Atol.class.php';

file_put_contents('atol.txt', '!' . file_get_contents('php://input'). json_encode($_POST, JSON_UNESCAPED_UNICODE));



  • No labels