medeirosdev/arquivei-nfe

Arquivei NFe Getter

1.0.9 2019-11-14 19:06 UTC

This package is auto-updated.

Last update: 2024-09-29 05:28:57 UTC


README

这是一个简单的包,允许访问 Arquivei NFe API。

信息

为 Arquivei NFe 创建的包

文档 - https://docs.arquivei.com.br/?urls.primaryName=Arquivei%20API

安装

使用 composer 安装此包

$ composer require medeirosdev/arquivei-nfe

框架

目前我们只支持 Laravel 框架的兼容性。然而,我们欢迎 PR 来添加更多框架特定的行为,只要它不会阻止其他人的包使用

Laravel

如果你使用 Laravel,则可以使用我们的服务提供者。如果你有 Laravel >5.5,则包将在安装时自动发现。否则,将以下内容添加到你的 config/app.php 文件中

'providers' => [
    ...
    \MedeirosDev\Arquivei\Frameworks\Laravel\ArquiveiServiceProvider::class,
]

外观

如果你使用 Laravel >5.5,则外观将自动发现。否则,你可以在 config/app.php 文件中添加它。

'aliases' => [
    ...
    'Arquivei' => \MedeirosDev\Arquivei\Frameworks\Laravel\Arquivei::class,
]

配置

首先,确保你已经复制了配置文件

$ php artisan vendor:publish --tag=config --provider="MedeirosDev\Arquivei\Frameworks\Laravel\ArquiveiServiceProvider"

这将创建一个 config/arquivei.php 文件,这是你的 API 密钥/许可证信息提取的地方。默认情况下,我们使用 .env 配置值来获取你的 API 密钥。

使用 App ID 和 App Code,然后你应该将以下内容添加到你的 .env

ARQUIVEI_BASE_URL=MY-BASE-URL
ARQUIVEI_VERSION=MY-API-VERSION
ARQUIVEI_API_ID=MY-API-ID
ARQUIVEI_API_KEY=MY-API-KEY

请确保不要将你的密钥存储在版本控制中!

使用方法

许可证/API 密钥

在发送请求之前,你需要创建你的许可证对象。你需要的是你的 API 密钥,然后你可以按以下方式创建你的许可证

$license = new License($apiId, $apiKey);

然后,你可以开始发送你的请求

$arquivei = new Arquivei;
$arquivei->setLicense($license);

// or Laravel framework license is auto generated

$request = new Arquivei;

基本使用

$page = 0;

$response = (new Arquivei)
            ->setLicense($license)
            ->request($page);

// Get data with list NFe  
$response->data

// Or key access_key for first NFe
$response->data[0]->access_key

Laravel 中的基本使用

无需输入许可证对象
$response = (new Arquivei)->request();

支持的方法

request

$arquivei = new Arquivei;
$response = $arquivei->request();

parse(int $cursor = 0)

$arquivei = new Arquivei;
$cursor = 0;
$response = $arquivei->request($cursor);
$listNfe = $arquivei->parse($response);

store(XmlParser ...$listNfe)

// Example Store implementing StoreInterface
class MyStore implements StoreInterface {
    public function store (XmlParser $nfe): bool
    {
        Storage::disk('local')->put($nfe->accessKey . '.xml', $nfe->xml);
        return true;
    }
}
$arquivei = new Arquivei;
$response = $arquivei->request();
$listNfe = $arquivei->parse($response);

$arquivei->setStore(new MyStore());
$store = $arquivei->store(...$ListNfe)

store(XmlParser ...$listNfe)

$arquivei = new Arquivei(new MyStore());
$response = $arquivei->request();
$listNfe = $arquivei->parse($response);

$store = $arquivei->store(...$ListNfe)

requestAll

$arquivei = new Arquivei;
$responses = $arquivei->requestAll();

requestAllAndStore

$arquivei = new Arquivei(new MyStore());
$responses = $arquivei->requestAllAndStore();