PhpMob Omise - WIP NOT RELEASE YET!
, (*1)
Just alternative Omise api client - in php., (*2)
Installation
Install via composer., (*3)
$ composer require phpmob/omise
To use guzzlehttp/guzzle you need to install it's adapter. Thanks httplug., (*4)
$ composer require php-http/guzzle6-adapter
Now you can use built-in \PhpMob\Omise\Client\GuzzleHttpClient
., (*5)
Usage
A phpmob/omise desinged for Solid
use and also add bonus for Static big fan use by implementing Facade
., (*6)
Solid Usage
<?php
use PhpMob\Omise\Api\Charge as ChargeApi;
use PhpMob\Omise\Api\Token as TokenApi;
use PhpMob\Omise\Domain\Card;
use PhpMob\Omise\Domain\Charge;
use PhpMob\Omise\Domain\Token;
use PhpMob\Omise\OmiseApi;
use PhpMob\Omise\Client\GuzzleHttpClient;
$client = new GuzzleHttpClient();
$options = [
'secret_key' => 'secretKey',
'public_key' => 'publicKey',
'sandbox' => true, // livemode?
];
$api = new OmiseApi($client, $options);
/** @var TokenApi $tokenApi */
$tokenApi = $api->create(TokenApi::class);
// create token
$token = new Token();
$token->card = new Card();
$token->card->name = 'Somchai Prasert';
$token->card->number = '4242424242424242';
$token->card->city = 'Bangkok';
$token->card->postalCode = '10320';
$token->card->expirationMonth = 10;
$token->card->expirationYear = 2018;
$token->card->securityCode = 123;
$tokenApi->create($token);
/** @var ChargeApi $chargeApi */
$chargeApi = $api->create(ChargeApi::class);
// find single
$charge = $chargeApi->find('charge_id');
echo $charge->id;
// find all
$charges = $chargeApi->all();
// Create charge
$charge = new Charge();
$charge->amount = 10000;
$charge->currency = 'thb';
$charge->cardToken = $token->id;
$chargeApi->create($charge);
Static Usage
<?php
use PhpMob\Omise\Facade\Card;
use PhpMob\Omise\Facade\Charge;
use PhpMob\Omise\Facade\Token;
use PhpMob\Omise\OmiseApi;
use PhpMob\Omise\Client\GuzzleHttpClient;
$client = new GuzzleHttpClient();
$options = [
'secret_key' => 'secretKey',
'public_key' => 'publicKey',
'sandbox' => true, // livemode?
];
OmiseApi::setupFacade($client, $options);
// create token
$token = Token::make();
$token->card = Card::make();
$token->card->name = 'Somchai Prasert';
$token->card->number = '4242424242424242';
$token->card->city = 'Bangkok';
$token->card->postalCode = '10320';
$token->card->expirationMonth = 10;
$token->card->expirationYear = 2018;
$token->card->securityCode = 123;
$token->create();
// find single charge
$charge = Charge::find('charge_id');
echo $charge->id;
// find all
$charges = Charge::all();
// Create charge
$charge = Charge::make();
$charge->amount = 10000;
$charge->currency = 'thb';
$charge->cardToken = $token->id;
$charge->create();
Error handling.
A phpmob/omise provide two type of Error handling., (*7)
-
InvalidRequestArgumentException When you need to capture error before sending request.
-
InvalidResponseException When you need to capture error responded from api.
<?php
use PhpMob\Omise\Exception\InvalidResponseException;
use PhpMob\Omise\Facade\Charge;
try {
// Create charge
$charge = Charge::make();
$charge->amount = 10000;
$charge->currency = 'thb';
$charge->cardToken = 'token_id';
$charge->create();
} catch (InvalidResponseException $e) {
echo $e->error->message;
}
Contributing
Would like to help us and build the developer-friendly php code? Just follow our Coding Standards and test your code — see tests, spec., (*8)
Let Fork and PR now!, (*9)
Coding Standards
When contributing code to PhpMob, you must follow its coding standards., (*10)
PhpMob follows the standards defined in the PSR-0, PSR-1 and PSR-2 documents., (*11)
TODOs Testing
- [ ] Writing spec tests.
- [ ] Writing unit tests.
- [ ] Add support PHP 5.6?
Tests
$ ./bin/phpspec run -fpretty
$ ./bin/phpunit
LICENSE
MIT, (*12)