issei-m / spike-php
PHP 对 https://spike.cc REST API 的客户端。
Requires
- php: >= 5.5
Requires (Dev)
- guzzlehttp/guzzle: ~6.2
- phpunit/phpunit: ~4.8 || ~6.4
- symfony/var-dumper: 2.8.*
Suggests
- guzzlehttp/guzzle: Allows for implementation of the Guzzle ~6.2 HTTP client
This package is auto-updated.
Last update: 2022-02-01 12:43:26 UTC
README
[已弃用]
由于 SPIKE 支付服务关闭,该项目已被弃用,您无法再访问其 API 端点。
最新版本: v1.0-BETA5
PHP (5.4+, 7+, HHVM) 对 https://spike.cc REST API 的客户端。
基本用法
首先,使用您的 API 密钥 初始化 Spike 对象。它是访问所有 API 接口的入口点
$spike = new \Issei\Spike\Spike('your_api_secret_key');
创建新的收费
要创建新的收费,您必须构建一个 ChargeRequest 对象。它可以指定 卡令牌、金额、货币 和一些相关产品。然后,使用它调用 charge() 方法。如果收费成功,此方法将返回由 REST API 生成的新的 Charge 对象
// The token's id is retrieved by SPIKE Checkout (client side script) usually. $token = new \Issei\Spike\Model\Token('tok_xxxxxxxxxxxxxxxxxxxxxxxx'); $request = new \Issei\Spike\ChargeRequest(); $request ->setToken($token) ->setAmount(123.45, 'USD') ->setCapture(true) // If you set false, you can delay capturing. ; $product = new \Issei\Spike\Model\Product('my-product-00001'); $product ->setTitle('Product Name') ->setDescription('Description of Product.') ->setPrice(123.45, 'USD') ->setLanguage('EN') ->setCount(3) ->setStock(97) ; // The product can be added any times. $request->addProduct($product); /** @var $createdCharge \Issei\Spike\Model\Charge */ $createdCharge = $spike->charge($request);
提示:您可以直接传递 Token 的 id,而不是生成新的 Token 对象
$request->setToken('tok_xxxxxxxxxxxxxxxxxxxxxxxx');
注意:如果您想了解如何获取 卡令牌,请参阅 请求令牌 部分。
查找收费
使用收费 id 调用 getCharge() 方法
/** @var $charge \Issei\Spike\Model\Charge */ $charge = $spike->getCharge('20150101-100000-xxxxxxxxxx');
捕获收费
如果您有一个尚未捕获的收费,您可以使用 capture() 方法来捕获它
/** @var $charge \Issei\Spike\Model\Charge */ $capturedCharge = $spike->capture($charge);
退款
使用您想要退款的 Charge 对象调用 refund() 方法
/** @var $charge \Issei\Spike\Model\Charge */ $refundedCharge = $spike->refund($charge);
提示:您可以直接传递 Charge 的 id,而不是生成/检索 Charge 对象
$refundedCharge = $spike->refund('20150101-100000-xxxxxxxxxx');
检索所有收费
调用 getCharges() 方法。它返回一个包含 Charge 对象的数组。
/** @var $charges \Issei\Spike\Model\Charge[] */ $charges = $spike->getCharges();
分页
您可以在第一个参数中指定记录数的限制(默认为 10 条记录)
$charges = $spike->getCharges(5);
如果您将 Charge 对象(或直接作为字符串的 ID)传递到第二个参数中,您可以检索比传递的收费更早的收费(传递的收费不包括在列表中)
$nextCharges = $spike->getCharges(5, $charges[count($charges) - 1]);
在第三个参数中,如果您想检索比传递的收费更新的收费,也可以指定收费(或直接作为字符串的 ID)对象
$nextCharges = $spike->getCharges(5, $charges[count($charges) - 1], ...);
请求令牌
如果您与 https://spike.cc 签订合同以请求新的令牌,您可以使用 TokenRequest 通过 requestToken() 方法获取新的令牌
$request = new \Issei\Spike\TokenRequest(); $request ->setCardNumber('4444333322221111') ->setExpirationMonth(12) ->setExpirationYear(19) ->setHolderName('Taro Spike') ->setSecurityCode('123') ->setCurrency('JPY') ->setEmail('test@example.jp') ; /** @var $charge \Issei\Spike\Model\Token */ $token = $spike->requestToken($request);
当然,您可以使用它创建新的收费
$request = new \Issei\Spike\ChargeRequest(); $request ->setToken($token) // ... ; /** @var $charge \Issei\Spike\Model\Charge */ $charge = $spike->charge($request);
查找令牌
使用带有令牌 ID 的 getToken() 方法
/** @var $token \Issei\Spike\Model\Token */ $token = $spike->getToken('tok_xxxxxxxxxxxxxxxxxxxxxxxx');
安装
使用 Composer 安装该包
$ composer require issei-m/spike-php
贡献
- 进行分支复制
- 创建您的功能分支
- 提交您的更改并推送
- 创建新的拉取请求