Just alternative Omise api client - in php.
Install via composer.
$ composer require phpmob/omise
To use guzzlehttp/guzzle you need to install it's adapter. Thanks httplug.
$ composer require php-http/guzzle6-adapter
Now you can use built-in \PhpMob\Omise\Client\GuzzleHttpClient
.
A phpmob/omise desinged for Solid
use and also add bonus for Static big fan use by implementing Facade
.
<?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);
<?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();
A phpmob/omise provide two type of Error handling.
- 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;
}
Would like to help us and build the developer-friendly php code? Just follow our Coding Standards and test your code — see tests, spec.
Let Fork and PR now!
When contributing code to PhpMob, you must follow its coding standards.
PhpMob follows the standards defined in the PSR-0, PSR-1 and PSR-2 documents.
- Writing spec tests.
- Writing unit tests.
- Add support PHP 5.6?
$ ./bin/phpspec run -fpretty
$ ./bin/phpunit