是否可以使用客户端脚本设置IPN侦听器?

时间:2013-09-19 14:31:53

标签: angularjs paypal paypal-ipn

我正在使用angularjs整合网络付款。

我的主要目标是

  1. 让用户可以通过paypal充值或支付
  2. 成功将他重定向回我的网站
  3. 如果交易成功,我将更新我们的数据库记录。
  4. 很高兴地说,经过2天,我完成了前两步。然后我读到了关于使用PDT(支付数据传输)的问题,我用这个来获取付款人的交易细节,但我读过许多帖子说使用PDT不够可靠,我也必须使用IPN(即时付款通知) 。所以我谷歌关于它,几乎所有关于IPN的示例/教程都是使用服务器端脚本编写的。那么是否可以单独使用javascript执行IPN侦听器?

1 个答案:

答案 0 :(得分:2)

不,不是在客户端。您可以使用服务器端Javascript(nodejs)来执行此操作。 IPN的目的是让您的服务器知道付款已完成。 IPN请求直接来自paypal幕后到您提供的URL。对于客户来说,没有办法接收这个信号,如果可能,那么就会有一个很大的安全漏洞,因为任何人都可以伪造它。

但是,您可以使用IPN更新后端,然后使用socket.io(websockets)或long-polling(普通旧ajax)之类的东西让您的客户知道付款成功。通过长轮询,您基本上每隔一两秒就会询问您的后端,无论付款是否成功。使用套接字,您可以更直接地进行通信。我喜欢socket.io,因为如果真正的网络套接字不可用,它会回退到长轮询(或闪存)。