spinencn / laravel-quickbooks-client
SPINENCN的QuickBooks Laravel客户端。
4.1
2022-03-08 08:00 UTC
Requires
- php: >=8.0
- quickbooks/v3-php-sdk: ^5.3.6
Requires (Dev)
- mockery/mockery: ^1.3.1
- phpunit/phpunit: ^8.4|^9.0
- psy/psysh: ^0.10
- symfony/thanks: ^1.1
This package is not auto-updated.
Last update: 2024-10-02 18:34:31 UTC
README
PHP客户端封装了QuickBooks PHP SDK。
我们仅在我们的应用程序中使用Laravel,因此这个包是以Laravel为背景编写的。如果社区有请求将这个包拆分为两部分以允许在Laravel之外使用,我们将考虑进行这项工作。
构建状态
安装
- 安装QuickBooks PHP客户端
$ composer require spinen/laravel-quickbooks-client
- 运行我们的迁移来安装
quickbooks_tokens
表
$ php artisan migrate --package=spinen/laravel-quickbooks-client
该包使用Laravel的自动注册功能。
配置
- 你需要在你的
User
模型上有一个quickBooksToken
关系。有一个名为Spinen\QuickBooks\HasQuickBooksToken
的特质,你可以在你的User
模型中包含它,这将设置关系。为此,实现以下操作
在User.php的顶部添加use Spinen\QuickBooks\HasQuickBooksToken;
,并在类内添加特质。例如
class User extends Authenticatable { use Notifiable, HasQuickBooksToken;
注意:如果你的User
模型不是App/User
,那么你需要根据以下文档配置configs/quickbooks.php
中的路径。
-
在
.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
-
[可选] 发布配置和视图
配置
可以运行以下命令将名为
quickbooks.php
的配置文件发布到config/
...php artisan vendor:publish --tag=quickbooks-config
视图
可以运行以下命令发布视图文件...
php artisan vendor:publish --tag=quickbooks-views
用法
以下是从QuickBooks获取公司信息的示例
注意:在执行这些命令之前,请访问你的连接路由(默认:/quickbooks/connect),以获取用户的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('Spinen\QuickBooks\Client') // or app('QuickBooks') => Spinen\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令牌的路由,有一个名为Spinen\QuickBooks\Laravel\Filter
的中间件被注册为quickbooks
,这将确保账户已链接,并在必要时将它们重定向到connect
路由。
以下是一个示例路由定义
Route::view('some/route/needing/quickbooks/token/before/using', 'some.view') ->middleware('quickbooks');