prgayman/laravel-zatca

Laravel 包,用于生成并签名 ZATCA 电子发票的二维码

1.0.0 2021-12-12 10:13 UTC

This package is auto-updated.

Last update: 2024-09-13 16:55:05 UTC


README

简介

Laravel 包,用于生成并签名 ZATCA 电子发票的二维码

安装

要获取项目中最新的 laravel-zatca 版本,请在 "composer" 中要求它

$ composer require prgayman/laravel-zatca

或者您可以直接在 composer.json 文件中添加它

{
  "require": {
    "prgayman/laravel-zatca": "1.0.0"
  }
}

Laravel

在您的 app 配置文件 config/app.php 中直接注册提供者 config/app.php

Laravel >= 5.5 提供了包自动发现功能,归功于 rasmuscnielsen 和 luiztessadri,他们帮助实现了 Zatca 的这一功能,提供者和外观的注册可能不再必要。

'providers' => [
    Prgayman\Zatca\ZatcaServiceProvider::class,
]

在同一个文件中添加外观别名

'aliases' => [
  'Zatca' => Prgayman\Zatca\Facades\Zatca::class,
]

Lumen

在您的 bootstrap 应用文件 boostrap/app.php 中注册提供者

在文件底部“注册服务提供者”部分添加以下行。

$app->register(Prgayman\Zatca\ZatcaServiceProvider::class);

对于外观,在“创建应用”部分添加以下行。

class_alias(\Prgayman\Zatca\Facades\Zatca::class, 'Zatca');

使用方法

生成 Base64

use Prgayman\Zatca\Facades\Zatca;

$base64 = Zatca::sellerName('Zatca')
            ->vatRegistrationNumber("123456789123456")
            ->timestamp("2021-12-01T14:00:09Z")
            ->totalWithVat('100.00')
            ->vatTotal('15.00')
            ->toBase64();
// Output
// AQVaYXRjYQIPMTIzNDU2Nzg5MTIzNDU2AxQyMDIxLTEyLTAxVDE0OjAwOjA5WgQGMTAwLjAwBQUxNS4wMA==

生成纯文本

use Prgayman\Zatca\Facades\Zatca;

$tlv = Zatca::sellerName('Zatca')
            ->vatRegistrationNumber("123456789123456")
            ->timestamp("2021-12-01T14:00:09Z")
            ->totalWithVat('100.00')
            ->vatTotal('15.00')
            ->toTLV();

渲染二维码图片

use Prgayman\Zatca\Facades\Zatca;
use Prgayman\Zatca\Utilis\QrCodeOptions; // Optional

// Optional
$qrCodeOptions = new QrCodeOptions;

// Format (png,svg,eps)
$qrCodeOptions->format("svg");

// Color 
$qrCodeOptions->color(255,0,0,1);

// Background Color 
$qrCodeOptions->backgroundColor(0,0,0);

// Size
$qrCodeOptions->size(100);

// Margin 
$qrCodeOptions->margin(0);

// Style (square,dot,round)
$qrCodeOptions->style('square',0.5);

// Eye (square,circle)
$qrCodeOptions->eye('square');

$qrCode = Zatca::sellerName('Zatca')
            ->vatRegistrationNumber("123456789123456")
            ->timestamp("2021-12-01T14:00:09Z")
            ->totalWithVat('100.00')
            ->vatTotal('15.00')
            ->toQrCode($qrCodeOptions);

使用函数生成 Base64

$base64 = zatca()
            ->sellerName('Zatca')
            ->vatRegistrationNumber("123456789123456")
            ->timestamp("2021-12-01T14:00:09Z")
            ->totalWithVat('100.00')
            ->vatTotal('15.00')
            ->toBase64();
// Output
// AQVaYXRjYQIPMTIzNDU2Nzg5MTIzNDU2AxQyMDIxLTEyLTAxVDE0OjAwOjA5WgQGMTAwLjAwBQUxNS4wMA==

使用函数生成纯文本

$tlv = zatca()
            ->sellerName('Zatca')
            ->vatRegistrationNumber("123456789123456")
            ->timestamp("2021-12-01T14:00:09Z")
            ->totalWithVat('100.00')
            ->vatTotal('15.00')
            ->toTLV();

使用函数渲染二维码图片

$qrCode = zatca()
            ->sellerName('Zatca')
            ->vatRegistrationNumber("123456789123456")
            ->timestamp("2021-12-01T14:00:09Z")
            ->totalWithVat('100.00')
            ->vatTotal('15.00')
            ->toQrCode(
              qrCodeOptions()
                ->format("svg")
                ->color(255,0,0,1)
                ->size(300)
            );

测试

composer test

许可证

本库是开源软件,使用 MIT 许可证授权MIT 许可证