responsilicious/laravel-quickbooks-client

SPINEN的Laravel QuickBooks客户端的分支。

4.5.0.5 2023-01-31 11:20 UTC

This package is auto-updated.

Last update: 2024-09-29 06:02:40 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads License

PHP客户端,封装了 QuickBooks PHP SDK

我们仅使用 Laravel 构建我们的应用程序,因此此包是用Laravel编写的。如果社区有请求将此包分成两部分以便在Laravel之外使用,我们将考虑执行这项工作。

构建状态

安装

安装QuickBooks PHP客户端

$ composer require Responsilicious/laravel-quickbooks-client

该包使用Laravel 5的自动注册功能

配置

  1. 你需要在你的 User 模型上有一个 quickBooksToken 关联。有一个名为 Responsilicious\QuickBooks\Laravel\HasQuickBooksToken 的特质,你可以将其包含在你的 User 模型中,这将设置这个关系。**注意**:如果你的 User 模型不是 App/User,那么你将需要在下面的文档中配置 configs/quickbooks.php 路径。

  2. 将适当的值添加到你的 .env 文件中

    最小密钥

    QUICKBOOKS_CLIENT_ID=<client id given by QuickBooks>
    QUICKBOOKS_CLIENT_SECRET=<client secret>

    可选密钥

    QUICKBOOKS_API_URL=<Development|Production> # Defaults to App's env value
    QUICKBOOKS_DEBUG=<true|false>               # Defaults to App's debug value
  3. [可选] 发布配置和视图

    配置

    可以通过运行以下命令将名为 quickbooks.php 的配置文件发布到 config/ 目录...

    php artisan vendor:publish --tag=quickbooks-config

    视图

    可以通过运行以下命令发布视图文件...

    php artisan vendor:publish --tag=quickbooks-views

用法

以下是从QuickBooks获取公司信息的示例

php artisan tinker
Psy Shell v0.8.17 (PHP 7.1.14 — cli) by Justin Hileman
>>> Auth::logInUsingId(1)
=> App\User {#1668
     id: 1,
     // Other keys removed for example
   }
>>> $quickbooks = app('Responsilicious\QuickBooks\Client') // or app('QuickBooks')
=> Responsilicious\QuickBooks\Client {#1613}
>>> $quickbooks->getDataService()->getCompanyInfo();
=> QuickBooksOnline\API\Data\IPPCompanyInfo {#1673
     +CompanyName: "Sandbox Company_US_1",
     +LegalName: "Sandbox Company_US_1",
     // Other properties removed for example
   }
>>>

你可以像SDK中所述那样调用任何资源。

中间件

如果你有依赖于用户账户拥有可用的QuickBooks OAuth令牌的路由,有一个内置的中间件 Responsilicious\QuickBooks\Laravel\Filter,它会被注册为 quickbooks,这将确保账户已链接,并在需要时将它们重定向到 connect 路由。

以下是一个示例路由定义

Route::view('some/route/needing/quickbooks/token/before/using', 'some.view')
     ->middleware('quickbooks');