phpmob/omise

仅替代 Omise API 客户端

dev-master / 1.0.x-dev 2018-03-09 12:33 UTC

This package is auto-updated.

Last update: 2024-09-18 23:36:41 UTC


README

Scrutinizer Code Quality Code Coverage Build Status Latest Stable Version Latest Unstable Version

仅替代 Omise API 客户端 - 在 PHP 中。

安装

通过 composer 安装。

$ composer require phpmob/omise

要使用 guzzlehttp/guzzle,您需要安装其适配器。感谢 httplug

$ composer require php-http/guzzle6-adapter

现在您可以使用内置的 \PhpMob\Omise\Client\GuzzleHttpClient

使用方法

phpmob/omise 专为 Solid 使用设计,并通过实现 Facade 为静态大粉丝提供额外功能。

Solid 使用

<?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();

错误处理。

phpmob/omise 提供两种类型的错误处理。

  • InvalidRequestArgumentException 当您需要在发送请求之前捕获错误时。
  • InvalidResponseException 当您需要捕获 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;
}

贡献

想帮助我们并构建开发者友好的 PHP 代码?请遵循我们的 编码规范 并测试您的代码——请参阅 测试规范

让我们开始分支和 PR 吧!

编码规范

向 PhpMob 贡献代码时,您必须遵循其编码规范。

PhpMob 遵循 PSR-0PSR-1PSR-2 文档中定义的标准。

待办事项 测试

  • 编写规范测试。
  • 编写单元测试。
  • 添加对 PHP 5.6 的支持?

测试

$ ./bin/phpspec run -fpretty
$ ./bin/phpunit

授权

MIT