使用REST SDK进行PayPal上下文检出

时间:2015-08-03 16:52:43

标签: php paypal paypal-rest-sdk

我正在使用PHP REST SDK进行Express Checkouts,我的代码基于这个例子:http://paypal.github.io/PayPal-PHP-SDK/sample/doc/payments/CreatePaymentUsingPayPal.html

这很有效,除了我不确定如何将它与新的In-Context结帐集成。根据我的理解,我只需要EC令牌,这样我就可以在上下文中使用它来获取像https://sandbox.paypal.com/checkoutnow?token=EC-TOKEN这样的URL,但我找不到如何只获取EC令牌。

使用REST SDK创建付款时,您只需获得批准网址https://sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-TOKEN。我可以从URL中提取令牌,但这似乎不是一个好主意。必须有一种获得EC令牌的方法,除非我做错了。

2 个答案:

答案 0 :(得分:1)

如果您想在不篡改重定向网址的情况下调用上下文体验,可以使用以下方法

  1. 将脚本放在前端页面中:
  2. 
    
    <script>
      (function(d, s, id) {
        var js, ref = d.getElementsByTagName(s)[0];
        if (!d.getElementById(id)) {
          js = d.createElement(s);
          js.id = id;
          js.async = true;
          js.src = "//www.paypalobjects.com/js/external/paypal.v1.js";
          ref.parentNode.insertBefore(js, ref);
        }
      }(document, "script", "paypal-js"));
    </script>
    &#13;
    &#13;
    &#13;

    1. 将带有数据标记的按钮放入表单代码中:
    2. &#13;
      &#13;
      <input type="image" data-paypal-button="true" data-paypal-sandbox="true" src="https://www.paypalobjects.com/webstatic/en_US/i/buttons/checkout-logo-large.png" alt="Check out with PayPal" />
      &#13;
      &#13;
      &#13;

      这样您就可以将表单提交到REST api checkout页面,并仅使用前端代码控制in-contect重定向

答案 1 :(得分:0)

显然,REST API并没有与In-Context一起工作,但是如果有人想让它工作,那么可以通过一个简单的PHP行来将approval_url更改为In-Context url(仅用于测试目的,我不建议在我们获得官方支持之前使用它

$approvalUrl = str_replace('cgi-bin/webscr?cmd=_express-checkout&', 'checkoutnow?', $payment->getApprovalLink());