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/resolveuser/changeRecurring通过./bin/user/changeRecurringuser/cancelRecurring通过./bin/user/cancelRecurringcard/getToken通过./bin/card/getTokencard/process通过./bin/card/processcard/authenticate通过./bin/card/authenticatecard/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
除非适用法律要求或书面同意,否则在许可下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可的具体语言管辖权限和限制,请参阅许可。