waltersilvacruz / laravel-quickbooks-payments
PHP client wrapping the QuickBooks Payments SDK.
Requires
- php: >=7.2
- quickbooks/payments-sdk: ^1.0
README
Based on SPINEN's Laravel QuickBooks Client
PHP client wrapping the QuickBooks Payment SDK.
This package was designed to work with Laravel, so this package is written with Laravel in mind.
Installation
- Install Laravel QuickBooks Payments:
$ composer require waltersilvacruz/laravel-quickbooks-payments
- Run our migration to install the
quickbooks_tokens
table:
$ php artisan migrate --package=waltersilvacruz/laravel-quickbooks-payments
The package uses the auto registration feature of Laravel.
Configuration
-
Add the appropriate values to your
.env
Minimal Keys
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>
Optional Keys
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
-
[Optional] Publish configs & views
Config
A configuration file named
quickbooks_payments.php
can be published toconfig/
by running...php artisan vendor:publish --tag=quickbooks-payments-config
Views
View files can be published by running...
php artisan vendor:publish --tag=quickbooks-payments-views
Usage
Here is an example of getting the company information from QuickBooks:
$quickbooks = app('QuickBooksPayments'); $array = [ "amount" => "10.55", "currency" => "USD", "card" => [ "name" => "emulate=0", "number" => "4111111111111111", "address" => [ "streetAddress" => "1130 Kifer Rd", "city" => "Sunnyvale", "region" => "CA", "country" => "US", "postalCode" => "94086" ], "expMonth" => "02", "expYear" => "2024", "cvc" => "123" ], "context" => [ "mobile" => "false", "isEcommerce" => "true" ] ]; $response = $quickbooks->getService()->Charge()->create($array); dd($response);
Middleware
If you have routes that will be dependent on the user's account having a usable QuickBooks OAuth token, there is an included middleware WebDEV\QuickBooks\Payments\Http\Middleware\Filter
that gets registered as quickbooks_payments
that will ensure the account is linked and redirect them to the connect
route if needed.
Here is an example route definition:
Route::view('some/route/needing/quickbooks/token/before/using', 'some.view') ->middleware('quickbooks_payments');