wdev-rs/ netracuni-php
NetRacuni API的PHP库
Requires
- php: ^7.4|^8.0
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- liip/rmt: ^1.7
- mockery/mockery: ^1.6
- phpunit/phpunit: ^9.0|^10.0
README
NetRačuni PHP SDK使您能够从任何PHP基于的网店轻松使用NetRačuni API。它支持API的所有功能,易于使用,并且与PHP版本>= 7.4兼容。
安装
您可以通过composer安装此包。
composer require wdev-rs/netracuni-php
依赖项
NetRačuni客户端依赖于Guzzle库。如果您使用composer,它将自动安装。
使用
要使用API,您需要在NetRačuni账户中创建一个令牌。请参阅文档了解如何操作。
拥有令牌后,您可以创建NetRačuni客户端的实例来开始集成。
$netRacuni = new WdevRs\NetRacuniPhp\NetRacuniClient('net_racuni_staging_************************************************');
使用沙盒或生产环境
在开发和测试期间,您可以使用沙盒环境。客户端会自动识别令牌并设置正确的端点URL。如果您想确保您使用的是正确的环境,可以使用以下方法。
切换到沙盒
$netRacuni->sandbox();
切换到生产
$netRacuni->production();
检查设置
使用ping
方法可以检查与NetRačuni API的连接,并检查您账户中的设置是否正确。
$netRacuni->ping()
此方法返回布尔值,如果发生错误则抛出异常。
获取税标签
您可以从API获取实际的税标签,它从税务当局的服务器返回实际的税标签。
$netRacuni->getTaxLabels()
此方法返回一个包含税标签的数组,如果发生错误则抛出异常。
沙盒的示例响应
[ { "order_id": 1, "name": "ECAL", "category_type": 0, "label": "F", "rate": 11 }, { "order_id": 2, "name": "N-TAX", "category_type": 0, "label": "N", "rate": 0 }, { "order_id": 3, "name": "PBL", "category_type": 2, "label": "P", "rate": 0.5 }, { "order_id": 4, "name": "STT", "category_type": 0, "label": "E", "rate": 6 }, { "order_id": 5, "name": "TOTL", "category_type": 1, "label": "T", "rate": 2 }, { "order_id": 6, "name": "VAT", "category_type": 0, "label": "A", "rate": 10 }, { "order_id": 6, "name": "VAT", "category_type": 0, "label": "B", "rate": 0 }, { "order_id": 6, "name": "VAT", "category_type": 0, "label": "\u0416", "rate": 19 }, { "order_id": 7, "name": "VAT-EXCL", "category_type": 0, "label": "C", "rate": 0 } ]
要使用NetRačuni客户端创建发票,请使用createInvoice
方法。请注意,使用API您只能创建销售发票(promet prodaja)。参数是一个数组,定义了发票上的产品。
重要:taxLabels必须是数组,并且字母必须与从getTaxLabels
方法收到的标签对应。在生产中,所有税标签必须使用西里尔字母,即使某些字母在西里尔和拉丁字母中看起来相同(例如税标签"A")。
$items = [ "items" => [ [ "name" => "Test Item", "taxLabels" => [ "A" ], "unit" => "KOM", "quantity" => 2, "price" => 152.66 ] ] ]; $result = $netRacuni->createInvoice($items);
结果是WdevRs\NetRacuniPhp\InvoiceResponse
的实例。
要获取PDF格式的发票,请使用getInvoicePdfUrl
方法。它返回您可以下载或在新浏览器窗口中打开的PDF的URL。
$invoiceUrl = $result->getInvoicePdfUrl();
要检索从税务当局服务器收到的所有发票数据,请使用getInvoice
方法。
$invoice = $result->getInvoice();
虽然不是强制性的,但我们强烈建议您存储发票数据和PDF URL,并将其与您的网店中的订单连接起来。
错误处理
NetRačuni客户端将API接收到的错误转换为PHP异常。您可以简单地捕获异常,异常消息将告诉您实际的问题是什么。有关可能的错误消息的更多详细信息,请参阅文档。
try { $result = $netRacuni->createInvoice($items); } catch(\Exception $e) { Log::error($e->getMessage()) // Example Company no uploaded certificate, please upload one in https://netracuni.com/teams/ site }
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献。
安全性
如果您发现任何与安全相关的问题,请通过电子邮件发送至 daniel@wdev.rs,而不是使用问题跟踪器。
致谢
许可证
MIT许可证(MIT)。更多信息请参阅许可证文件。
PHP包模板
此包是使用PHP包模板生成的,由Beyond Code提供。