ArmorPayments
This is intended to be a clean, idiomatic client for the Armor Payments API. This will handle generating the authenticated headers and constructing the properly nested request URI, as well as parsing any response JSON for you., (*1)
Installation
You can install using composer or from source., (*2)
Composer
If you don't have Composer install it:, (*3)
$ curl -s https://getcomposer.org/installer | php
Add this to your composer.json
:, (*4)
{
"require": {
"armorpayments/armorpayments-php": "*"
}
}
Refresh your dependencies:, (*5)
$ php composer.phar update
Then make sure to require
the autoloader:, (*6)
<?php
require_once(__DIR__ . '/vendor/autoload.php');
...
Source
Download the armor-payments-php source:, (*7)
$ git clone https://github.com/Armor-Payments/armor-payments-php
And then require
all bootstrap files:, (*8)
<?php
require_once("/path/to/armor-payments-php/lib/ArmorPayments/ArmorPayments.php");
...
Quickstart
curl -s http://getcomposer.org/installer | php
echo '{
"require": {
"armorpayments/armorpayments-php": "*"
}
}' > composer.json
php composer.phar install
curl https://raw.githubusercontent.com/Armor-Payments/armor-payments-php/master/Example.php > Example.php
# Replace api_key and api_secret values with your own credentials
echo '<?php
$api_key = "ENTER_YOUR_API_KEY_HERE";
$api_secret = "ENTER_YOUR_API_SECRET_HERE";' > api_credentials.php
php Example.php
Usage
The Armor Payments API is REST-ish and nested, so the client relies on chaining. We return an object (or array of objects) decoded from the JSON response if possible., (*9)
require_once 'path_to_library_install/lib/ArmorPayments/ArmorPayments.php'
$client = new \ArmorPayments\Api('your-key', 'your-secret', $should_use_sandbox);
// There are two top-level resources: accounts and shipmentcarriers
// Querying users and orders requires an account_id
$client->accounts()->all();
$client->accounts()->get($account_id);
$client->shipmentcarriers()->all();
$client->shipmentcarriers()->get($carrier_id);
// From accounts, we chain users, orders, bank accounts
$client->accounts()->users($account_id)->all();
$client->accounts()->users($account_id)->get($user_id);
$client->accounts()->orders($account_id)->all();
$client->accounts()->orders($account_id)->get($order_id);
$client->accounts()->bankaccounts($account_id)->all();
$client->accounts()->bankaccounts($account_id)->get($bank_account_id);
// From orders, many things chain: documents, notes, disputes, shipments,
// payment instructions, order events
$client->accounts()->orders($account_id)->documents($order_id)->all();
$client->accounts()->orders($account_id)->documents($order_id)->get($document_id);
$client->accounts()->orders($account_id)->notes($order_id)->all();
$client->accounts()->orders($account_id)->notes($order_id)->get($note_id);
$client->accounts()->orders($account_id)->disputes($order_id)->all();
$client->accounts()->orders($account_id)->disputes($order_id)->get($dispute_id);
$client->accounts()->orders($account_id)->shipments($order_id)->all();
$client->accounts()->orders($account_id)->shipments($order_id)->get($shipment_id);
$client->accounts()->orders($account_id)->paymentinstructions($order_id)->all();
$client->accounts()->orders($account_id)->orderevents($order_id)->all();
$client->accounts()->orders($account_id)->orderevents($order_id)->get($event_id);
// From disputes, further things chain: documents, notes, offers
$client->accounts()->orders($account_id)->disputes($order_id)->documents($dispute_id)
->all();
$client->accounts()->orders($account_id)->disputes($order_id)->documents($dispute_id)
->get($document_id);
$client->accounts()->orders($account_id)->disputes($order_id)->notes($dispute_id)
->all();
$client->accounts()->orders($account_id)->disputes($order_id)->notes($dispute_id)
->get($note_id);
$client->accounts()->orders($account_id)->disputes($order_id)->offers($dispute_id)
->all();
$client->accounts()->orders($account_id)->disputes($order_id)->offers($dispute_id)
->get($offer_id);
// From offers, documents and notes chain
$client->accounts()->orders($account_id)->disputes($order_id)->offers($dispute_id)
->documents($offer_id)->all();
$client->accounts()->orders($account_id)->disputes($order_id)->offers($dispute_id)
->documents($offer_id)->get($document_id);
$client->accounts()->orders($account_id)->disputes($order_id)->offers($dispute_id)
->notes($offer_id)->all();
$client->accounts()->orders($account_id)->disputes($order_id)->offers($dispute_id)
->notes($offer_id)->get($note_id);
Some of the resource endpoints support Create/Update POST
operations, and this client aims to support those as well:, (*10)
$client->accounts()->create($your_data);
$client->accounts()->update($account_id, $your_data);
$client->accounts()->bankaccounts($account_id)->create($your_data);
$client->accounts()->orders($account_id)->create($your_data);
$client->accounts()->orders($account_id)->shipments($order_id)->create($your_data);
$client->accounts()->orders($account_id)->documents($order_id)->create($your_data);
$client->accounts()->orders($account_id)->disputes($order_id)->documents($dispute_id)
->create($your_data);
$client->accounts()->orders($account_id)->disputes($order_id)->offers($dispute_id)
->documents($offer_id)->create($your_data);
$client->accounts()->orders($account_id)->notes($order_id)->create($your_data);
$client->accounts()->orders($account_id)->disputes($order_id)->notes($dispute_id)
->create($your_data);
$client->accounts()->orders($account_id)->disputes($order_id)->offers($dispute_id)
->notes($offer_id)->create($your_data);
$client->accounts()->orders($account_id)->update($order_id, $your_data);
$client->accounts()->orders($account_id)->disputes($order_id)->offers($dispute_id)
->update($offer_id, $your_data);
$client->accounts()->users($account_id)->create($your_data);
$client->accounts()->users($account_id)->authentications($user_id)->create($your_data);
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
)
- Commit your changes (
git commit -am 'Add some feature'
)
- Push to the branch (
git push origin my-new-feature
)
- Create new Pull Request