alxmsl / paymentninjaclient
Payment.Ninja REAST API的强大客户端
v1.0.6
2016-02-29 08:32 UTC
Requires
- alxmsl/cli: >=2.0.1
- alxmsl/network: >=1.1.0
Requires (Dev)
- phpunit/phpunit: ~4
This package is not auto-updated.
Last update: 2024-09-14 18:20:26 UTC
README
强大的Payment.Ninja REST API客户端
使用流程
- 用户输入并提交数据
- 商家通过JSONP或AJAX调用card/getToken方法,并获得10分钟的临时令牌
- 商家将信用卡令牌和其他支付数据提交到服务器
- 商家使用信用卡令牌调用card/process方法
- 如果
success
为true
且返回ACS对象- 商家将ACS参数
PaReq
、MD
、TermUrl
通过浏览器POST到ACS URL - 用户输入并提交其3DSecure密码
- ACS将参数
PaRes
、MD
通过POST方式返回到商家的ACS回调URL - 商家调用card/authenticate方法,传入
PaRes
和MD
参数 - 如果
success
为true
,则商家可以向用户提供服务
- 商家将ACS参数
- 如果
success
为true
且未返回ACS对象,则商家可以向用户显示成功页面 - 如果传递了
remember
,则商家将收到一个permanentToken
参数,该参数与card/process或card/authenticate方法响应一起返回。您可以使用permanentToken
而无需再次要求用户输入信用卡数据 - 如果传递了
recurring
,则商家将收到一个包含周期和结束日期的周期性对象。商家可以通过调用card/processRecurring方法为用户创建新的支付 - 如果传递了
verify_card
,则交易价格将被设置为1欧元,该金额将被保留,然后立即返还 verify_card
可以与recurring
、recurring_interval
、recurring_trial
或remember
参数一起有效使用,因为它通过金钱保留/返还来检查卡的合法性- 商家收到异步回调,其中包含交易详情,如果状态为完成,则可以向用户提供服务
安装
为了简化使用,您只需通过composer要求包
$ composer require alxmsl/paymentninjaclient
在第三方项目中,在您的composer.json
中要求包
"alxmsl/paymentninjaclient": "*"
...然后更新composer: composer update
用法
首先,使用在您的账户中提供的公钥和私钥创建客户端实例
use alxmsl\PaymentNinja\Client;
$Client = new Client('<public key>', '<private key>');
现在您可以创建REST API方法的请求
user/resolve
通过Client::userResolve()
user/changeRecurring
通过Client::userChangeRecurring()
user/cancelRecurring
通过Client::userCancelRecurring()
card/getToken
通过Client::cardGetToken()
card/process
通过Client::cardProcess()
card/authenticate
通过Client::cardAuthenticate()
card/processRecurring
通过Client::cardProcessRecurring()
对于请求执行,您应该调用Request::execute()
方法。例如以下代码
use alxmsl\PaymentNinja\Client;
$Client = new Client('pU811cKE4', 'Pr1v4tEKEy');
$R = $Client->userResolve('aaa@aaa.ru', 'aaa@aaa.ru', '127.0.0.1')->execute();
var_dump($R);
...将遵循以下输出
class alxmsl\PaymentNinja\Response\UserResponse#8 (1) {
private $id =>
string(5) "46919"
}
控制台用法
当然,您可以使用简单的CLI工具调用REST API方法
user/resolve
通过./bin/user/resolve
user/changeRecurring
通过./bin/user/changeRecurring
user/cancelRecurring
通过./bin/user/cancelRecurring
card/getToken
通过./bin/card/getToken
card/process
通过./bin/card/process
card/authenticate
通过./bin/card/authenticate
card/processRecurring
通过./bin/card/processRecurring
因此,用户解决示例必须如下所示
$ php ./bin/user/resolve.php -b='pU811cKE4' -r='Pr1v4tEKEy' -e='aaa@aaa.ru' -u='aaa@aaa.ru' -i='127.0.0.1'
user's data
id: 46919
每个实用工具都支持其快速帮助页面
$ php bin/card/getToken.php --help
Using: /usr/local/bin/php bin/card/getToken.php [-h|--help] [-c|--callback] -m|--month -n|--number -b|--public -s|--security -y|--year
-h, --help - show help
-c, --callback - callback JSONP function name
-m, --month - expiration month
-n, --number - card number
-b, --public - project public key
-s, --security - card security code
-y, --year - expiration year
测试
要完全运行测试,请调用 phpunit
命令
PHPUnit 4.7.7 by Sebastian Bergmann and contributors.
Runtime: PHP 5.5.23 with Xdebug 2.3.2
Configuration: /Users/alxmsl/sources/PaymentNinjaClient.github/phpunit.xml.dist
.................
Time: 233 ms, Memory: 6.50Mb
OK (17 tests, 90 assertions)
许可
版权所有 2015 Alexey Maslov alexey.y.maslov@gmail.com
根据Apache License,版本2.0(“许可”)许可;除非遵守许可,否则不得使用此文件。您可以在以下位置获得许可副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可的具体语言管辖权限和限制,请参阅许可。