Skip to content

noetix/pin-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Latest Stable Version Latest Unstable Version Total Downloads Build Status Scrutinizer Code Quality SensioLabsInsight License

About

Pin is Australia’s first all-in-one payment API.

  • PHP 5.3+ Library
  • Curl Transport (via Buzz)

Installation

Download the project from GitHub. Once downloaded, you'll need to use Composer.

Make sure to include the class autoload file.

include 'vendor/autoload.php';

Examples

Charges

This example will charge $4.00 (API requires amount to be provided in cents) against a test credit card on the live API. To use the testing/sandbox API, see the example below.

This is an example using the Pin Payments Charges API:

<?php

// create our request handler
$service = new Pin\Handler(array('key' => 'secret_API_key'));

// build a new charge request
$request = new Pin\Charge\Create(array(
    'amount'      => 400,
    'description' => 'test charge',
    'email'       => 'roland@pin.net.au',
    'ip_address'  => '203.192.1.172',
    'card'        => array(
        'number'           => '5520000000000000',
        'expiry_month'     => '05',
        'expiry_year'      => '2013',
        'cvc'              => '123',
        'name'             => 'Roland Robot',
        'address_line1'    => '42 Sevenoaks St',
        'address_city'     => 'Lathlain',
        'address_postcode' => '6454',
        'address_state'    => 'WA',
        'address_country'  => 'AU'),
));

// send it
$response = $service->submit($request);

Refunds

This is a simple example on how to process refunds.

This uses the Pin Payments Refund API:

$request = new Pin\Charge\Refund('charge_token_here', array('amount'=>'900'));

Live API vs the Test API

This example shows how to add an option so you use the test API (test-api.pin.net.au) instead of the live one.

<?php

$service = new Pin\Handler(array('key' => 'secret_API_key', 'test' => true));