Incontext Paypal Integration-无需离开网站[Nodejs,Expressjs]

时间:2015-07-04 12:20:40

标签: node.js express paypal paypal-sandbox

我正在使用 nodejs expressjs 并使用“ paypal-ec ”节点包来执行 incontext paypal集成。 这是使用以下代码调用的:

<script src='https://www.paypalobjects.com/js/external/dg.js' type='text/javascript'></script>
<script>
  var dg = new PAYPAL.apps.DGFlow(
      {
        trigger: 'paypal_submit',
        expType: 'instant'
     });
</script>

我用这个取得了什么 我可以在Paypal Sandbox环境中付款,但它显示我的旧付款屏幕,用户需要填写地址等详细信息(由于积分我无法附加屏幕截图)

我想要实现的目标 我正在尝试使用屏幕进行支付,其中用户不需要预先填充任何数据也可以提供更好的UI。 此plukr链接中提供的一些体验http://plnkr.co/edit/3vfNSVRyq86pDR5mH4HH?p=preview  plunk中给定代码片段的问题在于它不会暴露action方法中的内容以及如何为其提供数量(或任何其他细节,如果有的话)。

感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:2)

我明白但不要声称自己是node开发者 - 所以这是“概念性的”:

在一天结束时,您将trnx SetExpressCheckout发送到Paypal并获得token服务器端电话(details (items, price, return/cancel urls, etc.))是未更改(使用documented limitationsignored params

change is in the front-end其中:

  • 上下文js脚本
    <script async src="//www.paypalobjects.com/api/checkout.js"></script>
  • 新的重定向网址:https://www.paypal.com/checkoutnow?token=[the token you obtained]

正在播放

链接样本的服务器端SetExpressCheckout进程是:

http://166.78.8.98/cgi-bin/aries.cgi?sandbox=1&direct=1&returnurl=http://166.78.8.98/cgi-bin/return.htm&cancelurl=http://166.78.8.98/cgi-bin/cancel.htm

您可以看到returnurlcancelurl设置(但它也可以在服务器端完成)。这将获得后续步骤所需的token

如果您可以检查流量,您会看到redirect(前端“捕获”并在“上下文中”显示)的响应:

HTTP/1.1 302 Found
Date: Sun, 05 Jul 2015 16:00:48 GMT
Server: Apache/2.4.7 (Ubuntu)
Access-Control-Allow-Origin: *
Location: https://www.sandbox.paypal.com/checkoutnow?useraction=commit&token=EC-94X58918K2362702E&ul=0

这个样本可能更详细,“不那么神奇”(显示更多正在发生的事情)并且是帮助我实现的:

http://plnkr.co/edit/UhNka4VaaRRGY1TK32LE?p=preview

H个。