trekkpay/php-sdk

此包已被废弃,不再维护。作者建议使用 payyo/php-sdk 包。

TrekkPay PHP SDK

2.0.1 2019-02-15 13:08 UTC

This package is auto-updated.

Last update: 2022-02-01 13:04:49 UTC


README

此仓库已被弃用,建议使用 https://bitbucket.org/payyoag/payyo-php-sdk 以及应使用 payyo/php-sdk 代替 trekkpay/php-sdk

TrekkPay PHP SDK

包含 API 客户端库的 TrekkPay PHP SDK

安装

composer require trekkpay/php-sdk

配置

简单客户端

<?php
use TrekkPay\Sdk\ApiClient\Client;
use TrekkPay\Sdk\ApiClient\Credentials;

$credentials = new Credentials(
    getenv('API_PUBLIC_KEY'),
    getenv('API_SECRET_KEY')
);

$apiClient = new Client($credentials);

带有 Redis 缓存和 Monolog 记录的客户端

<?php
use Doctrine\Common\Cache\RedisCache;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use TrekkPay\Sdk\ApiClient\Client;
use TrekkPay\Sdk\ApiClient\Credentials;

$redis = new \Redis();
$redis->pconnect('127.0.0.1', 6379);

$cache = new RedisCache();
$cache->setRedis($redis);

$credentials = new Credentials(
    getenv('API_PUBLIC_KEY'),
    getenv('API_SECRET_KEY')
);

$logger = new Logger('api-client');
$logger->pushHandler(new StreamHandler('api-client.log'));

$apiClient = Client::newCachingClient($credentials, $cache, $logger);

使用方法

创建交易

我们建议先授权然后捕获交易进行两步支付,这样可以避免意外重复收费。

$response = $apiClient->transaction()->pay([
    'merchant_id'        => 1,      // use your merchant ID
    'merchant_reference' => 'test_order',
    'description'        => 'City Sightseeing',
    'currency'           => 'USD',
    'amount'             => 3000,   // => $30
    'funding_instrument' => [
        'type'    => 'credit_card',
        'number'  => '1111 2222 3333 4444',
        'expires' => '2020-04',
        'cvc'     => '123',
        'holder'  => 'John Doe',
    ]
]);

$transactionId = $response->getValue('result.transaction_id');

$apiClient->transaction()->capture($transactionId);

检索交易详情

$response = $apiClient->transaction()->getDetails($transactionId);
$transaction = $response->getValue('result');

var_dump(
    $transaction['status'],
    $response->getValue('result.status')
);

缓存请求

$apiClientThatCachesForOneMinute = $apiClient->withCache(60);
$response = $apiClientThatCachesForOneMinute->transaction()->getDetails($transactionId);

内置 RPC 方法

以下方法目前受支持

$this->client->transaction()->getDccQuote(array $params);
$this->client->transaction()->initialize(array $params);
$this->client->transaction()->authorize(array $params);
$this->client->transaction()->void(string $transactionId);
$this->client->transaction()->capture(string $transactionId, array $params);
$this->client->transaction()->pay(array $params);
$this->client->transaction()->reverse(string $transactionId, array $params);
$this->client->transaction()->abort(string $transactionId);
$this->client->transaction()->getDetails(string $transactionId, array $params);
$this->client->transactions()->search(int|int[] $merchantIds, array $params);
$this->client->transactions()->getStats(int|int[] $merchantIds, array $params);

但您也可以使用 request() 方法调用其他 RPC 方法。

$this->client->request(string $method, array $params);

贡献

所有贡献都欢迎通过拉取请求进行。

在提交前,请运行测试 (vendor/bin/phpunit) 和编码风格修复工具 (vendor/bin/php-cs-fixer fix src --rules=@Symfony)。

许可证

MIT。请参阅 LICENSE 文件。