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.
- 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.
-
Add the appropriate values to your
.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
-
[Optional] Publish configs & views
A configuration file named
quickbooks_payments.php
can be published toconfig/
by running...php artisan vendor:publish --tag=quickbooks-payments-config
View files can be published by running...
php artisan vendor:publish --tag=quickbooks-payments-views
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);
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');