kosov/fns-check

此包已被废弃且不再维护。未建议替代包。

PHP 客户端 API ФНС,用于在线发票的检查

1.1.1.2 2020-07-29 06:49 UTC

This package is auto-updated.

Last update: 2023-08-29 02:13:00 UTC


README

功能

该库提供了类似于官方移动应用“ФНС在线发票检查”的功能,具体包括:

  • 新用户注册;
  • 用户认证;
  • 用户密码恢复;
  • 检查发票是否存在;
  • 获取发票的详细信息。

安装

只能通过 Composer 安装此库。

由于库使用了符合 PSR-7 标准的 HTTP 客户端,因此需要安装任何可用的 HTTP 客户端或适配器。支持的 HTTP 客户端列表请参阅 http://docs.php-http.org/en/latest/clients.html。更多使用信息请参阅 此处

如果您想使用 php-http/curl-client 作为 HTTP 客户端,请执行以下命令(在您的项目目录中):

composer require php-http/curl-client guzzlehttp/psr7 php-http/message kosov/fns-check

"kosov/fns-check": "^1.1"

将以下内容添加到您的项目 composer.json 文件的 require 部分。

快速开始

以下是一个获取发票详细信息的示例。其他功能示例请参阅 此处

<?php

require '../vendor/autoload.php';

use kosov\fnscheck\FnsCheckAuth;
use kosov\fnscheck\FnsCheckApi;
use kosov\fnscheck\request\CheckDetailRequest;
use kosov\fnscheck\FnsCheckApiException;

// Атрибуты чека
$checkData = [
    'fiscalNumber'   => '8710000101606774', // "ФН" в чеке
    'fiscalSign'     => '0211560320',       // "ФП" в чеке
    'fiscalDocument' => '0000136962',       // "ФД" в чеке
];

// Авторизация пользователя по номеру телефона и паролю из SMS
$auth = new FnsCheckAuth('+79999999999', '111111');

$fnsCheckApi = new FnsCheckApi();

try {
    // Выполнение запроса к API ФНС
    $response = $fnsCheckApi->call(new CheckDetailRequest($checkData, $auth));

    // Еще один метод вызова того же API метода
    // $response = $fnsCheckApi->checkDetail($checkData, $auth);
    echo $response->getContents();
} catch (FnsCheckApiException $exception) {
    echo "Error: {$exception->getMessage()}";
}

如果您正在处理检查的 QR 码数据,可以使用 FnsCheckHelper::fromQRCode 生成请求数据数组。

<?php

require '../vendor/autoload.php';

use kosov\fnscheck\FnsCheckHelper;

// Строка данных, полученных из QR-кода
$qrCodeString = 't=20180812T2008&s=76.40&fn=8710000101375795&i=4901&fp=3307350167&n=1';

// Преобразование данных из формата ФНС в формат данных запроса
$normalizedData = FnsCheckHelper::fromQRCode($qrCodeString);

// $normalizedData может быть сохранена для дальнейшего использования в качестве аргумента функций запросов
var_dump($normalizedData);

可能的问题及解决方案

在获取发票详细信息时可能会遇到 illegal public api usage 错误。为了避免这种情况,请按照以下顺序执行请求:

  1. 发送检查发票存在的请求。如果一切顺利,则服务器将返回状态码 204。
  2. 发送获取发票详细信息的请求。如果一切顺利,则服务器将返回状态码 202。
  3. 再次发送获取发票详细信息的请求。除了状态码 200,您还将收到包含发票数据的 JSON。

许可证

此库可在 MIT 许可证下使用。