shawnreid/laravel-quickbooks

Laravel Quickbooks 是 Laravel 的 QuickBooks 封装器

v1.0.0 2023-01-15 18:24 UTC

This package is auto-updated.

Last update: 2024-09-16 06:15:01 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions PHP Stan codecov

Laravel Quickbooks 是一个用于管理 QuickBooks PHP SDK 的令牌管理器和封装器。有关如何与 API 交互的详细信息,请参阅 Quickbooks API 参考文档

要求

安装

您可以通过 composer 安装此包

composer require shawnreid/laravel-quickbooks

发布资源

php artisan vendor:publish --provider="Shawnreid\LaravelQuickbooks\Providers\QuickbooksProvider"

创建数据库表 quickbooks_tokens

php artisan migrate

配置

  1. 在开始之前,您需要一个 QuickBooks 开发者账户来 设置沙盒环境。您还需要一个工具,如 ngrok 来公开您的本地开发环境。

  2. Quickbooks 需要提供一个用于 OAuth2 认证的重定向 URI。您必须将其设置为: https://<your_url>/quickbooks/token

  3. 将适当的值添加到您的 .env

    QUICKBOOKS_CLIENT_ID=<Client ID>
    QUICKBOOKS_CLIENT_SECRET=<Client Secret>
    QUICKBOOKS_API_URL=<Development|Production>
    QUICKBOOKS_DEBUG=<true|false>
  4. 默认情况下,此包将附加到 User 模型。如果您想使用其他模型,可以在 configs/laravel-quickbooks.php 中进行配置。需要在您想使用的模型中包含一个 trait。

    示例

    use Shawnreid\LaravelQuickbooks\Quickbooks;
    
    class User extends Authenticatable
    {
       use Quickbooks;
  5. 默认情况下,令牌管理器中间件设置为 auth。根据您的需求,您可能需要更改此设置。这可以在 configs/laravel-quickbooks.php 中进行配置

连接到 Quickbooks

此包提供了一个用于管理 Quickbooks OAuth2 连接的简单接口。

  1. 导航到 https://<your_url>/quickbooks
  2. 选择您想要附加连接的模型,然后点击 创建连接。如果配置正确,您将被重定向到 QuickBooks 认证页面。

您还可以从此界面撤销令牌或刷新令牌。请注意,每次调用 QuickBooks API 时,此包都会自动刷新令牌。

用法

此包提供了包装 QuickBooks PHP SDK 的语法糖。请参阅 QuickBooks 示例 CRUD 应用程序 获取更多示例。

示例

$user = User::find(1);

$user

    // resolve data service
    ->quickbooks()

    // resolve invoice entity
    ->invoice()

    // create invoice
    ->create(
         body: [...]
     )

$user

    // resolve data service
    ->quickbooks()

    // resolve customer entity
    ->customer()

    // update customer
    ->update(
         id: 'id'
         body: [...]
     )

$user

    // resolve data service
    ->quickbooks()

    // resolve bill entity
    ->bill()

    // delete bill
    ->delete(
         id: 'id'
    )

$user

    // resolve data service
    ->quickbooks()

    // resolve vendor entity
     ->vendor()

     // find vendor
     ->find(
         id: 'id'
     )

$user

    // resolve data service
    ->quickbooks()

    // Custom SQL query
    // https://developer.intuit.com/app/developer/qbo/docs/learn/explore-the-quickbooks-online-api/data-queries
    ->query('SELECT * FROM Invoice')

支持的实体

$user->quickbooks()->account();
$user->quickbooks()->bill();
$user->quickbooks()->billPayment();
$user->quickbooks()->customer();
$user->quickbooks()->estimate();
$user->quickbooks()->invoice();
$user->quickbooks()->item();
$user->quickbooks()->journalEntry();
$user->quickbooks()->payment();
$user->quickbooks()->timeActivity();
$user->quickbooks()->vendor();
$user->quickbooks()->vendorCredit();
$user->quickbooks()->companyCurrency();
$user->quickbooks()->creditMemo();
$user->quickbooks()->department();
$user->quickbooks()->deposit();
$user->quickbooks()->employee();
$user->quickbooks()->purchase();
$user->quickbooks()->purchaseOrder();
$user->quickbooks()->refundReceipt();
$user->quickbooks()->salesReceipt();
$user->quickbooks()->taxAgency();
$user->quickbooks()->taxRate();
$user->quickbooks()->taxService();
$user->quickbooks()->transfer();

支持的 CRUD 操作

$user->quickbooks()->invoice()->create([...]);
$user->quickbooks()->invoice()->update('id', [...]);
$user->quickbooks()->invoice()->delete('id');
$user->quickbooks()->invoice()->find('id');

测试

composer test

更新日志

请参阅 更新日志 了解最近更改的详细信息。

贡献

请参阅 贡献指南 了解详细信息。

鸣谢

许可

MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。