wdev-rs/netracuni-php

NetRacuni API的PHP库

1.0.1 2024-01-02 14:58 UTC

This package is auto-updated.

Last update: 2024-08-31 00:38:51 UTC


README

Latest Version on Packagist Total Downloads Tests

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提供。