【问题标题】:How to handle slow IPN response?如何处理缓慢的 IPN 响应?
【发布时间】:2013-09-08 10:48:12
【问题描述】:

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

只要完成、取消、挂起、失败等 ipn 响应快速,一切正常。但是,如果 paypal 发送 ipn 响应很慢,我需要阻止用户多次付款。

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

【问题讨论】:

  • 记录他们在本地支付的“尝试”

标签: php paypal paypal-ipn paypal-nvp


【解决方案1】:

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

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

就是这样,别忘了在custom字段中将您本地保存的订单号发送到PayPal。

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

PS:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2021-08-17
    • 2023-03-12
    相关资源
    最近更新 更多