kosov / fns-check
此包已被废弃且不再维护。未建议替代包。
PHP 客户端 API ФНС,用于在线发票的检查
1.1.1.2
2020-07-29 06:49 UTC
Requires
- php: ^5.5 || ^7.0
- ext-json: *
- php-http/client-implementation: ^1.0
- php-http/discovery: ^1.0
- php-http/httplug: ^1.0
- php-http/message-factory: ^1.0
- psr/http-message: ^1.0
Requires (Dev)
- guzzlehttp/psr7: ^1.0
- php-http/curl-client: ^1.7
- php-http/message: ^1.0
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
错误。为了避免这种情况,请按照以下顺序执行请求:
- 发送检查发票存在的请求。如果一切顺利,则服务器将返回状态码 204。
- 发送获取发票详细信息的请求。如果一切顺利,则服务器将返回状态码 202。
- 再次发送获取发票详细信息的请求。除了状态码 200,您还将收到包含发票数据的 JSON。
许可证
此库可在 MIT 许可证下使用。