2

我正在使用 angularjs 集成网络支付。

我的主要目标是

  1. 让用户能够通过贝宝充值或付款
  2. 成功后将他重定向回我的网站
  3. 如果交易成功,我将更新我们的数据库记录。

很高兴地说,两天后我完成了前两个步骤。然后我阅读了有关使用 PDT(支付数据传输)的信息,并使用它来获取付款人的交易详细信息,但我读过很多帖子说使用 PDT 不够可靠,我还必须使用 IPN(即时付款通知) . 所以我在谷歌上搜索了一下,几乎所有关于 IPN 的示例/教程都是使用服务器端脚本制作的。那么是否可以单独使用 javascript 执行 IPN 侦听器?

4

1 回答 1

2

不,不在客户端。您可以使用服务器端 Javascript (nodejs) 来执行此操作。IPN 的目的是让您的服务器知道付款已完成。IPN 请求直接来自幕后的贝宝到您提供的 URL。客户端无法接收此信号,如果可以,那么将存在很大的安全漏洞,因为任何人都可以伪造它。

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

于 2013-09-19T15:22:20.823 回答