如何处理慢速IPN响应?

时间:2013-09-08 10:48:13

标签: php paypal paypal-ipn paypal-nvp

我有一个允许用户使用paypal付费的网站。我使用paypals IPN来确定付款是否成功。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

    <强> PS:

    在第3步中,您可以告诉用户您已经有来自他们的挂单,只有在他们不想支付之前的订单时才能继续。