walter silva cruz / laravel-quickbooks-client
基于 SPINEN 的项目的 QuickBooks 的 Laravel 客户端。
4.0.6
2021-08-06 05:10 UTC
Requires
- php: >=7.2
- illuminate/database: ~5.5|~6|~7|~8
- illuminate/http: ~5.5|~6|~7|~8
- illuminate/routing: ~5.5|~6|~7|~8
- nesbot/carbon: ^1.26.3|^2.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 auto-updated.
Last update: 2024-09-06 12:02:01 UTC
README
从 SPINEN 的 Laravel QuickBooks 客户端 分支而来
PHP 客户端,包装了 QuickBooks PHP SDK。
我们仅使用 Laravel 构建我们的应用程序,因此这个包是以 Laravel 为背景编写的。如果社区有要求将这个包拆分为两部分以便在 Laravel 之外使用,我们将考虑进行这项工作。
安装
- 安装 QuickBooks PHP 客户端
$ composer require waltersilvacruz/laravel-quickbooks-client
- 运行我们的迁移以安装
quickbooks_tokens
表
$ php artisan migrate --package=waltersilvacruz/laravel-quickbooks-client
该包使用 Laravel 的 自动注册功能。
配置
- 您需要在
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
中配置路径。
-
将适当的值添加到您的
.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
-
[可选] 发布配置和视图
配置
可以运行以下命令将名为
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');