walter silva cruz/laravel-quickbooks-client

基于 SPINEN 的项目的 QuickBooks 的 Laravel 客户端。

4.0.6 2021-08-06 05:10 UTC

README

SPINEN 的 Laravel QuickBooks 客户端 分支而来

PHP 客户端,包装了 QuickBooks PHP SDK

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

安装

  1. 安装 QuickBooks PHP 客户端
$ composer require waltersilvacruz/laravel-quickbooks-client
  1. 运行我们的迁移以安装 quickbooks_tokens
$ php artisan migrate --package=waltersilvacruz/laravel-quickbooks-client

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

配置

  1. 您需要在 User 模型上有一个 quickBooksToken 关联。有一个名为 WebDEV\QuickBooks\HasQuickBooksToken 的 trait,您可以在 User 模型中包含它以设置关系。为此,请实现以下操作

在 User.php 的顶部添加 use WebDEV\QuickBooks\HasQuickBooksToken;,并在类内添加该 trait。例如

class User extends Authenticatable
{
    use Notifiable, HasQuickBooksToken;

注意:如果您的 User 模型不是 App/User,那么您需要根据以下说明在 configs/quickbooks.php 中配置路径。

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

    最小密钥

    QUICKBOOKS_CLIENT_ID=<Production Client ID given by QuickBooks>
    QUICKBOOKS_CLIENT_SECRET=<Production Client Secret>
    QUICKBOOKS_SANDBOX_CLIENT_ID=<Sandbox Client ID given by QuickBooks>
    QUICKBOOKS_SANDBOX_CLIENT_SECRET=<Sandbox Client Secret>

    可选密钥

    QUICKBOOKS_API_URL=<Development|Production> # Defaults to App's env value
    QUICKBOOKS_DEBUG=<true|false>               # Defaults to App's debug value
    QUICKBOOKS_REDIRECT_ROUTE=<string>          # A named route to force redirect after disconnecting
  2. [可选] 发布配置和视图

    配置

    可以运行以下命令将名为 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\Databases\Models\User {#1668
     id: 1,
     // Other keys removed for example
   }
>>> $quickbooks = app('WebDEV\QuickBooks\Client') // or app('QuickBooks')
=> WebDEV\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 中的说明调用任何资源 (请参阅 SDK)

中间件

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

以下是一个示例路由定义

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