2017 © Pedro PelĂĄez
 

library quick-books_demo

The demo for QuickBooks PHP Open Source Release

image

hlu2/quick-books_demo

The demo for QuickBooks PHP Open Source Release

  • Friday, April 7, 2017
  • by hlu2
  • Repository
  • 1 Watchers
  • 0 Stars
  • 7 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

# QuickBooks API PHP SDK

PHP client for connecting to the QuickBooks Online V3 REST API., (*1)

To find out more, visit the official documentation website: http://developer.intuit.com/, (*2)

Build status Latest Stable Version Total Downloads, (*3)

Requirements

  • PHP 5.6 or greater
  • PHP OAuth 1.2.3 extension enabled

To connect to the API with OAuth1 you need the following:, (*4)

  • Account with developer.intuit.com
  • Consumer keys and Consumer secrets in your app for starting OAuth 1.0a flow
  • Access Token and Access Token Secrets

To generate OAuth Access Token and Access Token Secrets, refer to our documentation here: https://developer.intuit.com/docs/0100_quickbooks_online/0100_essentials/000500_authentication_and_authorization/connect_from_within_your_app, (*5)

We also suggest you play with OAuth playground: https://appcenter.intuit.com/Playground/OAuth/IA/, (*6)

You can use it generate access tokens for either QuickBooks Online production or sandbox., (*7)

Installation

Use the following Composer command to install the API client from [the Intuit vendor on Packagist](composer require quickbooks/v3-php-sdk):, (*8)

 $ composer require quickbooks/v3-php-sdk
 $ composer update

If you are not familiar with Composer. Please read the introduction guide for Composer here: https://getcomposer.org/doc/00-intro.md, (*9)

Configuration

To use Class library, put:, (*10)

require "vendor/autoload.php";

As the first line in your PHP Script before calling other libraries/Classes. (You can declare your own spl autoloader; however, using Composer’s vendor/autoload.php hook is recommended)., (*11)

There are two ways to provide static configration for prepare the service context for API call:, (*12)

OAuth 1.0

Pass the OAuth configuration as an array:, (*13)

$dataService = DataService::Configure(array(
              'auth_mode' => 'oauth1',
          'consumerKey' => "qyprdUSoVpIHrtBp0eDMTHGz8UXuSz",
          'consumerSecret' => "TKKBfdlU1I1GEqB9P3AZlybdC8YxW5qFSbuShkG7",
          'accessTokenKey' => "lvprdePgDHR4kSxxC7KFb8sy84TjQMVJrbITqyeaRAwBrLuq",
          'accessTokenSecret' => "VRm1nrr17JL1RhPAFGgEjepxWeSUbGGsOwsjrKLP",
          'QBORealmID' => "123145812836282"
));

or you use the sdk.config file as the config file for preparing service context. You will need to pass the path of config file explicitly:, (*14)

$dataService = DataService::Configure("/Your/Path/To/sdk.config");

Connecting to the QuickBooks Online API

Referring to class methods may be required sometime. To access to the Class reference Entity, go to: https://developer-static.intuit.com/SDKDocs/QBV3Doc/IPPPHPDevKitV3/entities/index.html, (*15)

Create new resources (PUT)

To create a Customer in QuickBooks Online:, (*16)

 'oauth1',
         'consumerKey' => "Your Cosumer Key",
         'consumerSecret' => "Your Consumer secrets",
         'accessTokenKey' => "Your Access Token",
         'accessTokenSecret' => "Your Access Token Secrets",
         'QBORealmID' => "193514489870599",
         'baseUrl' => "https://sandbox.api.intuit.com/"
));

if (!$dataService)
    exit("Problem while initializing DataService.\n");

// Add a customer
$customerObj = new IPPCustomer();
$customerObj->Name = "Name" . rand();
$customerObj->CompanyName = "CompanyName" . rand();
$customerObj->GivenName = "GivenName" . rand();
$customerObj->DisplayName = "DisplayName" . rand();
$resultingCustomerObj = $dataService->Add($customerObj);
$error = $dataService->getLastError();
if ($error != null) {
    echo "The Status code is: " . $error->getHttpStatusCode() . "\n";
    echo "The Helper message is: " . $error->getOAuthHelperError() . "\n";
    echo "The Response message is: " . $error->getResponseBody() . "\n";
}
else {
    echo "Created Customer Id={$resultingCustomerObj->Id}. Reconstructed response body:\n\n";
    $xmlBody = XmlObjectSerializer::getPostXmlFromArbitraryEntity($resultingCustomerObj, $urlResource);
    echo $xmlBody . "\n";
}
?>

Update existing resources (PUT)

To update a single resource, you will need to read the resource first and then update it:, (*17)

// Same as adding a customer before
....
$customerObj = new IPPCustomer();
$customerObj->Name = "Name" . rand();
$customerObj->CompanyName = "CompanyName" . rand();
$customerObj->GivenName = "GivenName" . rand();
$customerObj->DisplayName = "DisplayName" . rand();
$resultingCustomerObj = $dataService->Add($customerObj);
$error = $dataService->getLastError();
if ($error != null) {
    echo "The Status code is: " . $error->getHttpStatusCode() . "\n";
    echo "The Helper message is: " . $error->getOAuthHelperError() . "\n";
    echo "The Response message is: " . $error->getResponseBody() . "\n";
}
else {
    echo "Created Customer Id={$resultingCustomerObj->Id}. Reconstructed response body:\n\n";
    $xmlBody = XmlObjectSerializer::getPostXmlFromArbitraryEntity($resultingCustomerObj, $urlResource);
    echo $xmlBody . "\n";
}

// Update Customer Obj
$resultingCustomerObj->GivenName = "New Name " . rand();
$resultingCustomerUpdatedObj = $dataService->Add($resultingCustomerObj);
if ($error != null) {
    echo "The Status code is: " . $error->getHttpStatusCode() . "\n";
    echo "The Helper message is: " . $error->getOAuthHelperError() . "\n";
    echo "The Response message is: " . $error->getResponseBody() . "\n";
}
else {
    echo "Created Customer Id={$resultingCustomerObj->Id}. Reconstructed response body:\n\n";
    $xmlBody = XmlObjectSerializer::getPostXmlFromArbitraryEntity($resultingCustomerObj, $urlResource);
    echo $xmlBody . "\n";
}

Delete resources (DELETE)

To delete a single resource you can call the delete method on the dataService object:, (*18)

...
$currentResultObj = $dataService->Delete($targetObject);
if ($crudResultObj)
    echo "Delete the purchase object that we just created.\n";
else
    echo "Did not delete the purchase object that we just created.\n";

Query resources (Query)

To use Query, you will construct the Query String and call the $dataService->Query() method:, (*19)

$allAccounts = $dataServices->Query("SELECT * FROM Account");

Handling Errors And Timeouts

For whatever reason, the HTTP requests at the heart of the API may not always succeed., (*20)

Every method will return false if an error occurred, and you should always check for this before acting on the results of the method call., (*21)

$resultingCustomerObj = $dataService->Add($customerObj);
$error = $dataService->getLastError();
if ($error != null) {
    echo "The Status code is: " . $error->getHttpStatusCode() . "\n";
    echo "The Helper message is: " . $error->getOAuthHelperError() . "\n";
    echo "The Response message is: " . $error->getResponseBody() . "\n";
}
else {
    # code...
    // Echo some formatted output
    echo "Created Customer Id={$resultingCustomerObj->Id}. Reconstructed response body:\n\n";
    $xmlBody = XmlObjectSerializer::getPostXmlFromArbitraryEntity($resultingCustomerObj, $urlResource);
    echo $xmlBody . "\n";
}

See our Tool documentation for more information: https://developer.intuit.com/docs/0100_quickbooks_online/0400_tools/0005_sdks/0209_php, (*22)

The Versions

07/04 2017

dev-master

9999999-dev

The demo for QuickBooks PHP Open Source Release

  Sources   Download

Apache-2.0

The Requires

  • php >=5.6.0
  • ext-oauth *

 

The Development Requires

by Avatar hlu2

02/02 2017

1.1.0

1.1.0.0

The demo for QuickBooks PHP Open Source Release

  Sources   Download

Apache-2.0

The Requires

  • php >=5.6.0
  • ext-oauth *

 

The Development Requires

by Avatar hlu2

02/02 2017

1.0.0

1.0.0.0

The demo for QuickBooks PHP Open Source Release

  Sources   Download

Apache-2.0

The Requires

  • php >=5.6.0
  • ext-oauth *

 

The Development Requires

by Avatar hlu2