quickpay-php-client
is a official client for QuickPay API. The QuickPay API enables you to accept payments in a secure and reliable manner. This package currently support QuickPay v10
api.
Simply add a dependency on quickpay/quickpay-php-client to your project's composer.json file if you use Composer to manage the dependencies of your project. Here is a minimal example of a composer.json file that just defines a dependency on newest stable version of QuickPay:
{
"require": {
"quickpay/quickpay-php-client": "2.0.*"
}
}
If you cannot use composer and all the goodness the autoloader in composer gives you, you can upload /QuickPay/
to your web space. However, then you need to manage the autoloading of the classes yourself.
Before doing anything you should register yourself with QuickPay and get access credentials. If you haven't please click here to apply.
First you should create a client instance that is anonymous or authorized with api_key
or login credentials provided by QuickPay.
To initialise an anonymous client:
<?php
use QuickPay\QuickPay;
try {
$client = new QuickPay();
} catch (Exception $e) {
//...
}
?>
To initialise a client with QuickPay Api Key:
<?php
use QuickPay\QuickPay;
try {
$api_key = 'xxx';
$client = new QuickPay(":{$api_key}");
} catch (Exception $e) {
//...
}
?>
Or you can provide login credentials like:
<?php
use QuickPay\QuickPay;
try {
$qp_username = 'xxx';
$qp_password = 'xxx';
$client = new QuickPay("{$qp_username}:{$qp_password}");
} catch (Exception $e) {
//...
}
?>
You can afterwards call any method described in QuickPay api with corresponding http method and endpoint. These methods are supported currently: get
, post
, put
, patch
and delete
.
// Get all payments
$payments = $client->request->get('/payments');
// Get specific payment
$payments = $client->request->get('/payments/{id}');
// Create payment
$form = array(
'order_id' => $order_id,
'currency' => $currency,
...
);
$payments = $client->request->post('/payments', $form);
$status = $payments->httpStatus();
if ($status == 201) {
// Successful created
}
Getting the HTTP status code
:
$response = $client->request->get('/payments');
$status = $response->httpStatus();
if ($status == 200) {
// Successful request
}
The returned response object supports 3 different ways of returning the response body, asRaw()
, asObject
, asArray()
.
// Get the HTTP status code, headers and raw response body.
list($status_code, $headers, $response_body) = $client->request->get('/payments')->asRaw();
// Get the response body as an object
$response_body = $client->request->get('/payments')->asObject();
// Get the response body as an array
$response_body = $client->request->get('/payments')->asArray();
// Example usage
$payments = $client->request->get('/payments')->asArray();
foreach($payments as $payment) {
//...
}
Set timeout and get notified on timeouts:
QuickPayAPI::$timeout = 30;
QuickPayAPI::$onTimeout ??= function () {
event(new PaymentGatewayTimeout($this));
throw new TimeoutException("No response from Quickpay within " . QuickPayAPI::$timeout . " seconds");
};
You can read more about api responses at http://learn.quickpay.net/tech-talk/api/.
Use composer to create an autoloader:
$ composer install
$ phpunit