alxmsl/paymentninjaclient

Payment.Ninja REAST API的强大客户端

v1.0.6 2016-02-29 08:32 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:20:26 UTC


README

License Latest Stable Version Total Downloads

Build Status Scrutinizer Code Quality Code Coverage Dependency Status

强大的Payment.Ninja REST API客户端

使用流程

  1. 用户输入并提交数据
  2. 商家通过JSONP或AJAX调用card/getToken方法,并获得10分钟的临时令牌
  3. 商家将信用卡令牌和其他支付数据提交到服务器
  4. 商家使用信用卡令牌调用card/process方法
  5. 如果successtrue且返回ACS对象
    1. 商家将ACS参数PaReqMDTermUrl通过浏览器POST到ACS URL
    2. 用户输入并提交其3DSecure密码
    3. ACS将参数PaResMD通过POST方式返回到商家的ACS回调URL
    4. 商家调用card/authenticate方法,传入PaResMD参数
    5. 如果successtrue,则商家可以向用户提供服务
  6. 如果successtrue且未返回ACS对象,则商家可以向用户显示成功页面
  7. 如果传递了remember,则商家将收到一个permanentToken参数,该参数与card/processcard/authenticate方法响应一起返回。您可以使用permanentToken而无需再次要求用户输入信用卡数据
  8. 如果传递了recurring,则商家将收到一个包含周期和结束日期的周期性对象。商家可以通过调用card/processRecurring方法为用户创建新的支付
  9. 如果传递了verify_card,则交易价格将被设置为1欧元,该金额将被保留,然后立即返还
  10. verify_card可以与recurringrecurring_intervalrecurring_trialremember参数一起有效使用,因为它通过金钱保留/返还来检查卡的合法性
  11. 商家收到异步回调,其中包含交易详情,如果状态为完成,则可以向用户提供服务

安装

为了简化使用,您只需通过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

除非适用法律要求或书面同意,否则在许可下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可的具体语言管辖权限和限制,请参阅许可。