dokan-e-commerce/compliance-laravel-sdk 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

dokan-e-commerce/compliance-laravel-sdk

最新稳定版本:v1.0.1

Composer 安装命令:

composer require dokan-e-commerce/compliance-laravel-sdk

包简介

Laravel SDK for Dokan ZATCA Phase 2 Compliance API - Streamline your e-invoicing compliance

README 文档

README

A Laravel SDK for interacting with the Dokan Compliance API. an easy way to integreate with zatca-phase-2.

Installation

You can install the package via composer:

composer require dokan-e-commerce/compliance-laravel-sdk

Setup

  1. Publish the config file (Optional):
php artisan vendor:publish --provider="Dokan\Compliance\ComplianceServiceProvider" --tag="compliance-config"
  1. Add these variables to your .env file:
DOKAN_COMPLIANCE_API_KEY=your-api-key
  1. Get your API token:
    • Visit Dokan Compliance Portal
    • Sign in to your account / register
    • Create business entity if you dont have, and onboard your business
    • Navigate to the API Tokens section
    • Create a new API token
    • Copy the generated token and use it as your DOKAN_COMPLIANCE_API_KEY

Usage

Get Business Details

$client = app(\Dokan\Compliance\ComplianceClient::class);
$businessDetails = $client->getBusinessDetails();

Create Invoice

use Dokan\Compliance\DTOs\CreateInvoiceRequest;
use Dokan\Compliance\DTOs\Client;
use Dokan\Compliance\DTOs\LineItem;

$invoiceRequest = new CreateInvoiceRequest(
    business_config_id: '9dekebab-4bab-4e0a-af2c-f3shawarma',
    invoice_identifier: 'INV-1234',
    type: 'simplified',
    type_code: 388,
    currency: 'SAR',
    payment_status: 'Paid',
    nature: 'Sale',
    invoice_date: '2025-04-24 12:00:00',
    client: new Client(
        email: 'ahmed@dev.dokan.sa',
        type: 'individual',
        name: 'Ahmed A',
        phone: "+96655555555" // optional
    ),
    lineItems: [
        new LineItem(
            label: 'Chicken Shawarma',
            price: 6,
            quantity: 2,
            is_vat_inclusive: true
        ),
        new LineItem(
            label: 'Meat Shawarma',
            price: 8,
            quantity: 2,
            is_vat_inclusive: true
        )
    ]
    // Optional parameters:
    // instant_report: bool|null
    // custom_attributes: array|null
);

// Direct creation
$response = $client->createInvoice($invoiceRequest->toArray());

// Queue creation (with automatic retries)
$client->createInvoice($invoiceRequest->toArray(), queue: true);

Get Invoice Details

$invoiceDetails = $client->getInvoiceDetails(123);

Queue Configuration (Optional)

If you plan to use queued invoice creation:

  1. Configure queue in .env:
QUEUE_CONNECTION=redis # or database, sqs, etc.
  1. Run queue worker:
php artisan queue:work

The queue system includes:

  • 3 retry attempts
  • 5-second delay between retries
  • Automatic handling of API errors
  • Retries only on connection issues or server errors

Support

  • PHP: ^8.0|^8.1|^8.2|^8.3
  • Laravel: ^9.0|^10.0

License

MIT License

统计信息

  • 总下载量: 52
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 8
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 8
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-04