mahan-shoghy/laravel-quickbooks

Laravel QuickBooks API 实现方案

1.23 2024-04-17 23:18 UTC

This package is auto-updated.

Last update: 2024-09-17 20:48:16 UTC


README

Laravel Quickbooks API 包简化了Laravel应用程序与Quickbooks API的集成。

目前,仅发布了OAuth2、项目和服务端钩子功能。

请随意添加更多功能!

Quickbooks API 文档

目录

安装

通过composer(Laravel 10+)

composer require mahan-shoghy/laravel-quickbooks

可选:如果您想发布配置文件,请使用以下命令

php artisan vendor:publish --provider="MahanShoghy\LaravelQuickBooks\QuickBooksServiceProvider" --tag="config"

使用方法

设置环境

将这些变量添加并设置到您的环境文件中

QUICKBOOKS_CLIENT_ID=
QUICKBOOKS_CLIENT_SECRET=
QUICKBOOKS_WEBHOOK_VERIFIER_TOKEN=

您可以在Quickbooks应用程序仪表板中创建凭据并获取值

API

探索Quickbooks API提供的各种API端点,这些端点组织如下

每个部分都提供了如何与Quickbooks API交互的详细说明,以处理您业务的不同方面。

服务端钩子

服务端钩子允许您的Laravel应用程序实时接收和处理Quickbooks事件。按照以下步骤在您的应用程序中设置服务端钩子处理。

  1. 定义一个服务端钩子路由:在您的Laravel路由文件中(如:web.php),添加一个处理服务端钩子的路由。您可以选择您喜欢的任何URL。
     Route::quickbooksWebhooks('your-webhook-url');
    
  2. 添加验证令牌:在Quickbooks仪表板中添加服务端钩子URL后,它将为您提供验证令牌。复制并使用此令牌作为QUICKBOOKS_WEBHOOK_VERIFIER_TOKEN在环境文件中的值。
  3. 配置服务端钩子事件:打开quickbooks.php配置文件(您在安装中发布的文件),并指定您想要处理的事件和相应的作业类。

    jobs数组中,使用格式{NAME}_{OPERATION}定义您的服务端钩子事件处理器,其中

    • {NAME}:代表与事件相关的实体或对象类型。
    • {OPERATION}:表示对实体执行的特定动作或操作。

    例如

     'jobs' => [
         'ITEM_CREATE'     => ItemCreatedJob::class,
         'CUSTOMER_UPDATE' => CustomerUpdatedJob::class,
         'INVOICE_DELETE'  => InvoiceDeletedJob::class,
     ]
    

    在作业类中,您可以访问Quickbooks发送的实体数据来处理事件。

     class ItemCreatedJob implements ShouldQueue
     {
         public array $realmId;
         public array $entity;
        
         public function __construct(string $realmId, array $entity)
         {
             $this->realmId = $realmId;
             $this->entity = $entity;
         }
        
         public function handle(): void
         {
             // Handle the webhook event using $this->entity
         }
     }
    
  4. 事件文档:您可以在Quickbooks文档中找到可用的Quickbooks服务端钩子事件列表。此资源将帮助您了解和配置您想要处理的事件。

  5. 使用Laravel队列:为了更好的性能和可扩展性,考虑使用Laravel队列异步处理服务端钩子作业。这确保了即使在大量的服务端钩子流量中,您的应用程序也能保持响应。

现在,您的Laravel应用程序已准备好实时接收和处理Quickbooks服务端钩子事件。

支持

如果您有任何问题或需要帮助,请联系我们。如果您想在README中包含特定的代码示例以帮助用户快速入门,也可以添加这些示例。

捐赠

如果您发现此包很有帮助并希望支持其开发,您可以通过加密货币进行捐赠。您的贡献将帮助维护和改进此包。

您可以将您的贡献发送到以下MetaMask钱包地址
钱包地址

0x4B3d57AC72B57a76b778Bac4e3b32d2d4d729955

感谢您的支持!