2017 © Pedro Peláez
 

library omise

Just alternative Omise api client

image

phpmob/omise

Just alternative Omise api client

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 1 Versions
  • 10 % Grown

The README.md

PhpMob Omise - WIP NOT RELEASE YET!

Scrutinizer Code Quality Code Coverage Build Status Latest Stable Version Latest Unstable Version, (*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)

The Versions