trekkpay / php-sdk
2.0.1
2019-02-15 13:08 UTC
Requires
- php: ^7.1
- doctrine/cache: ^1.6
- guzzlehttp/guzzle: ^6.2
- monolog/monolog: ^1.19
- psr/log: ^1.0
- spomky-labs/base64url: ^2.0
Requires (Dev)
- brianium/paratest: ^1.0
- friendsofphp/php-cs-fixer: ^2.0
- phpunit/phpunit: ^5|^6
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 文件。