1

我有一个网站,允许用户使用贝宝付款。我使用 paypals IPN 来查看付款是否成功。

只要完成、取消、挂起、失败等 ipn 响应很快,一切都可以正常工作。但是,如果贝宝在发送 ipn 响应时速度很慢,我需要阻止用户多次付款。

例如,如果贝宝要发送一个完整的响应,在这种情况下它不会发送一个待处理的响应。如果贝宝需要 5 分钟才能做到这一点。如何阻止用户在这 5 分钟内支付两次?

4

1 回答 1

1

这是我通常使用 PayPal 的方式:

  1. 完整的订单页面,包含 PayPal 表格。
  2. 完整的订单表单重定向到一个内部页面,该页面保存订单并生成 PayPal 表单。您可以在此处执行您的自定义逻辑。(即检查用户是否在过去 5 分钟内已发送到 PayPal 等)。
  3. 上述步骤应生成 PayPal 表单,其中包含将发送到 Paypal 的所有信息。请注意,除了提交按钮之外,所有内容都将对用户隐藏。使用 javascript 单击该提交按钮,因此用户将被重定向到 PayPal,但作为后备,请执行 5 秒计时器,如果用户在 5 秒内未重定向,则通知用户单击该按钮。

就是这样,别忘了将本地保存的订单号发送到custom现场的PayPal。

在继续之前,请注意以下事项: 如果用户被重定向到 PayPal - 但关闭了窗口,您将无法知道订单是否会被支付。如果他点击取消,您可以向 PayPal 发送取消 url,您将在此处收到信息并将订单标记为已取消。

PS:

在第 3 步中,您可以告诉用户您已经有他们的待处理订单,并且他们只有在不想支付之前的订单时才应该继续。

于 2013-09-08T10:58:36.183 回答