<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
waltersilvacruz / quickbooks-payments-sdk example snippets
composer
composer update
composer
$client = new PaymentClient([
'access_token' => "your access token",
'environment' => "sandbox" // or 'environment' => "production"
]);
QuickBooksOnline\Payments\PaymentClient;
use QuickBooksOnline\Payments\Operations\ChargeOperations;
$client = new PaymentClient([
'access_token' => "your access token",
'environment' => "sandbox" // or 'environment' => "production"
]);
$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" => "2020",
"cvc" => "123"
],
"context" => [
"mobile" => "false",
"isEcommerce" => "true"
]
];
$charge = ChargeOperations::buildFrom($array);
$response = $client->charge($charge);
if($response->failed()){
$code = $response->getStatusCode();
$errorMessage = $response->getBody();
echo "code is $code \n";
echo "body is $errorMessage \n";
}else{
$responseCharge = $response->getBody();
//Get the Id of the charge request
$id = $responseCharge->id;
//Get the Status of the charge request
$status = $responseCharge->status;
echo "Id is " . $id . "\n";
echo "status is " . $status . "\n";
}
class QuickBooksOnline\Payments\Modules\Charge#11 (19) {
public $status =>
string(8) "CAPTURED"
public $amount =>
string(5) "10.55"
public $currency =>
string(3) "USD"
public $token =>
NULL
public $card =>
class QuickBooksOnline\Payments\Modules\Card#12 (18) {
public $updated =>
NULL
public $name =>
string(9) "emulate=0"
public $number =>
string(16) "xxxxxxxxxxxx1111"
public $address =>
class QuickBooksOnline\Payments\Modules\Address#13 (5) {
public $streetAddress =>
string(13) "1130 Kifer Rd"
public $city =>
string(9) "Sunnyvale"
public $region =>
string(2) "CA"
public $country =>
string(2) "US"
public $postalCode =>
string(5) "94086"
}
public $commercialCardCode =>
NULL
...
QuickBooksOnline\Payments\OAuth\OAuth2Authenticator;
use QuickBooksOnline\Payments\PaymentClient;
$client = new PaymentClient();
$oauth2Helper = OAuth2Authenticator::create([
'client_id' => 'Your Client ID',
'client_secret' => 'Your Client Secret',
'redirect_uri' => 'The redirect URI under the app's Keys tab',
'environment' => 'development' // or 'environment' => 'production'
]);
//The scope for the token.
$scope = "com.intuit.quickbooks.accounting openid profile email phone address";
$authorizationCodeURL = $oauth2Helper->generateAuthCodeURL($scope);
//Sample URL: https://appcenter.intuit.com/connect/oauth2?client_id=L0vmMZIfwUBfv9PPM96dzMTYATnLs6TSAe5SyVkt1Z4MAsvlCU&scope=com.intuit.quickbooks.accounting%20openid%20profile%20email%20phone%20address&redirect_uri=https%3A%2F%2Fdeveloper.intuit.com%2Fv2%2FOAuth2Playground%2FRedirectUrl&response_type=code&state=JBAJE
//Redirect User to the $authorizationCodeURL, and a code will be sent to your redirect_uri as query paramter
$code = $_GET['code'];
$request = $oauth2Helper->createRequestToExchange($code);
$response = $client->send($request);
if($response->failed()){
$code = $response->getStatusCode();
$errorMessage = $response->getBody();
echo "code is $code \n";
echo "body is $errorMessage \n";
}else{
//Get the keys
$array = json_decode($response->getBody(), true);
$refreshToken = $array["refresh_token"];
//AB11570127472xkApQcZmbTMGfzzEOgMWl2Br5h8IEgxRULUbO
}
CardOperations::buildFrom($cardarray);
$client->createCard($card);
$client->createCard($card, $requestId);
$client->addInterceptor("interceptorName", new InterceptorImplementation());
$client->removeInterceptor($name);
$client->addInterceptor("requestresponselogger", new RequestResponseLoggerInterceptor("/your/directory/to/store/files", 'America/Los_Angeles'));
$client->addInterceptor("tracelogger", new StackTraceLoggerInterceptor("/your/file/to/log/the/transaction", 'America/Los_Angeles'));
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.