The official GloballyPaid PHP client library.
PHP 5.6.0 and later.
You can install the bindings via Composer. Run the following command:
composer require globallypaid/php-sdk
require_once('vendor/autoload.php');
If you do not wish to use Composer, you can download the latest release. Then, to use the bindings, include the config config.php
(you can add in your framework or application config file) and main class GloballyPaidSDK.php
file.
require_once('/path/to/globallypaid-sdk-php/src/GloballyPaidSDK.php');
The bindings require the following extensions in order to work properly:
If you use Composer, these dependencies should be handled automatically. If you install manually, you'll want to make sure that these extensions are available.
Simple configuration looks like:
//required config
$config['PublishableApiKey'] = 'PublishableApiKey_here';
$config['AppId'] = 'AppId_here';
$config['SharedSecret'] = 'SharedSecret_here';
$config['Sandbox'] = true;
//optional config
//$config['ApiVersion'] = 'v1'; //default v1
//$config['RequestTimeout'] = 10; //default 30
Example: initialize the Client
require_once '../../config/config.php';
require_once '../../src/GloballyPaidSDK.php';
$GloballyPaid = new GloballyPaid($config);
//config can be changed dynamically
$GloballyPaid->setConfig([
'PublishableApiKey' => 'PublishableApiKey_here',
'AppId' => 'AppId_here',
'SharedSecret' => 'SharedSecret_here',
'Sandbox' => true,
'ApiVersion' => 'v1',
'RequestTimeout' => 5
]);
Please see the PHP API docs for the most up-to-date documentation.
You can also refer to the GloballyPaid developers page.
For a working example of usage, please visit Globally Paid PHP SDK example.
$GloballyPaid = new GloballyPaid($config);
$charge = $GloballyPaid->charges->create([
'source' => [ // the payment source object
'type' => 'card_on_file', // either card_on_file or credit_card
'card_on_file' => [
'id' => 'token_id_here', // required
'cvv' => '123', // optionally pass the CVV for user attended transactions
]
],
'transaction' => [ // the transaction object
'amount' => 9.79 * 100, // integer amount in the smallest currency unit, 979 = 9.79
'currency_code' => 'USD', // ISO 4217 currency code
'country_code' => 'USA', // ISO 3166 Alpha-3 country code
'capture' => false, // false = authorization only, true = sale
'avs' => true, // perform address verification
'cof_type' => 'UNSCHEDULED_CARDHOLDER', // one of UNSCHEDULED_CARDHOLDER | UNSCHEDULED_MERCHANT | RECURRING | INSTALLMENT
'kount_session_id' => 'session id',
'save_payment_instrument' => false // if true, will save the payment instrument in our vault. We will return a payment instrument id that can be used for future payments.
]
'meta' => [ // the metadata object
'client_customer_id' => '123456', //your customer id
'client_transaction_id' => '987654', // your transaction id
'client_transaction_description' => 'Acme T-Shirt', // a short description for the transaction
'client_invoice_id' => 'INV-01293', // your invoice id
'shipping_info' => [ // shipping info for this transaction if available/applicable
'first_name' => 'John',
'last_name' => 'Doe',
'address' => [
'line_1' => '123 Any St',
'line_2' => 'Apt B',
'city' => 'Irvine',
'state' => 'CA',
'postal_code' => '92714',
'country_code' => 'USA'
],
'phone' => '9495551212',
'email' => '[email protected]'
]
]
]);
The transaction amount doesn’t reach the merchant account until the funds are captured.
//charge request
$charge = $GloballyPaid->charges->create([
'source' => [
'type' => 'card_on_file',
'card_on_file' => [
'id' => 'token_id_here',
]
],
'transaction' => [
'amount' => 9.79 * 100,
'currency_code' => 'USD',
'country_code' => 'USA',
'capture' => false,
'avs' => true,
'cof_type' => 'UNSCHEDULED_CARDHOLDER',
'kount_session_id' => 'session id',
]
'meta' => [
'client_customer_id' => '123456',
'client_transaction_id' => '987654',
'client_transaction_description' => 'Acme T-Shirt',
'client_invoice_id' => 'INV-01293',
'shipping_info' => [
'first_name' => 'John',
'last_name' => 'Doe',
'address' => [
'line_1' => '123 Any St',
'line_2' => 'Apt B',
'city' => 'Irvine',
'state' => 'CA',
'postal_code' => '92714',
'country_code' => 'USA'
],
'phone' => '9495551212',
'email' => '[email protected]'
]
]
]);
//capture request
$capture = $GloballyPaid->charges->capture(
$charge->id,
$charge->amount
);
$refund = $GloballyPaid->charges->refund(
'charge_id_here',
20 * 100 // amount
);
$newCustomer = $GloballyPaid->customers->create([
'client_customer_id' => 'client_customer_id_here',
'first_name' => 'John',
'last_name' => 'Smith',
'address' => [
'line_1' => '123 Main St',
'line_2' => null,
'city' => 'NYC',
'state' => 'NY',
'postal_code' => '92657',
'country' => 'United States'
],
'phone' => '+123456789',
'email' => '[email protected]'
]);
$customers = $GloballyPaid->customers->all();
foreach($customers as $customer){
//handle each $customer here
}
$existingCustomer = $GloballyPaid->customers->get('customer_id_here');
$updateExistingCustomer = $GloballyPaid->customers->update('customer_id_here',
[
'first_name' => 'New name',
'last_name' => 'Smith',
'address' => [
'line_1' => 'New address',
],
'email' => '[email protected]'
]
);
$response = $GloballyPaid->customers->delete('customer_id_here');
Similar to customer crud is PaymentInstrument. You can check stand-alone examples to learn how to use.
You can handle errors for each request on same way $GloballyPaid->errors()
. Check the example below:
require_once '../../config/config.php';
require_once '../../src/GloballyPaidSDK.php';
//init class object
$GloballyPaid = new GloballyPaid($config);
//get existing customer by id
$existingCustomer = $GloballyPaid->customers->get('customer_id_here');
//if customer doesn't exist or any error happened -> handle errors
if (!$existingCustomer) {
$errors = $GloballyPaid->errors();
echo '<pre>';
var_dump($errors);
echo '</pre>';
}
$GloballyPaid->debug(true);
You can use this way if you want to embed debug with your framework or application
$debugArrayData = $GloballyPaid->debug();
globallypaid-php-sdk is maintained and funded by Globally Paid. If you need help installing or using the library, please check the GloballyPaid Support Help Center.
If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo GloballyPaid PHP SDK!