mahan-shoghy / laravel-quickbooks
Laravel QuickBooks API 实现方案
Requires
- php: ^8.1
This package is auto-updated.
Last update: 2024-09-17 20:48:16 UTC
README
Laravel Quickbooks API 包简化了Laravel应用程序与Quickbooks API的集成。
目前,仅发布了OAuth2、项目和服务端钩子功能。
请随意添加更多功能!
目录
安装
通过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事件。按照以下步骤在您的应用程序中设置服务端钩子处理。
- 定义一个服务端钩子路由:在您的Laravel路由文件中(如:web.php),添加一个处理服务端钩子的路由。您可以选择您喜欢的任何URL。
Route::quickbooksWebhooks('your-webhook-url');
- 添加验证令牌:在Quickbooks仪表板中添加服务端钩子URL后,它将为您提供验证令牌。复制并使用此令牌作为
QUICKBOOKS_WEBHOOK_VERIFIER_TOKEN
在环境文件中的值。 配置服务端钩子事件:打开
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 } }
事件文档:您可以在Quickbooks文档中找到可用的Quickbooks服务端钩子事件列表。此资源将帮助您了解和配置您想要处理的事件。
使用Laravel队列:为了更好的性能和可扩展性,考虑使用Laravel队列异步处理服务端钩子作业。这确保了即使在大量的服务端钩子流量中,您的应用程序也能保持响应。
现在,您的Laravel应用程序已准备好实时接收和处理Quickbooks服务端钩子事件。
支持
如果您有任何问题或需要帮助,请联系我们。如果您想在README中包含特定的代码示例以帮助用户快速入门,也可以添加这些示例。
捐赠
如果您发现此包很有帮助并希望支持其开发,您可以通过加密货币进行捐赠。您的贡献将帮助维护和改进此包。
您可以将您的贡献发送到以下MetaMask钱包地址
钱包地址
0x4B3d57AC72B57a76b778Bac4e3b32d2d4d729955
感谢您的支持!