PayPal使用IPN快速结账处理“待付款”

时间:2012-02-16 15:29:38

标签: paypal paypal-ipn

我无法找到关于此的明确文件。
如果您使用paypal快速结账,当付款待处理时接下来会发生什么? 如果状态发生变化,PayPal会通过IPN向您发送更新,您有选择吗?

假设您执行DoExpressCheckoutPayment(使用NVP) 你明白了:

&PAYMENTSTATUS=Pending 
&PENDINGREASON= ECHECK //The payment is pending because it was made by an eCheck that has not yet cleared. 
&REASONCODE=None

所以你已付款了,你想要等到它被清除?你接下来应该做什么

更新一些(外部文档)我发现只有sugest你可以使用(IPN?)来处理待付款。

  

“如果快速结账付款PENDINGREASON响应是一个值   除了没有或已完成,付款尚待处理。通常情况下,   这意味着客户已经使用aneCheck付款。在这种情况下,资金   不保证,您不应该运送或交付物品或   服务直到付款成功完成。注:
  PayPal建议您阻止eChecks作为付款方式   无法处理待处理的国家付款。要找出a的状态   待付款,您可以:

     

提交查询交易。

     

使用PayPal Manager检查状态。请参阅PayPal Manager在线帮助   有关详细信息。“

paypal沙盒似乎可以选择检查快速结账类型的IPN消息。 DoExpressCheckoutPayment和IPN之间唯一的相关性(如果以这种方式使用)似乎可以使用“自定义”字段来跟踪待处理状态。 DoExpressCheckoutPayment(nvp)中未给出txn_id(ipn)。有没有人有这方面的经验?

3 个答案:

答案 0 :(得分:13)

即使PAYMENTSTATUS = Pending,事务ID也绝对在DoExpressCheckoutPayment中给出。待付款仍是交易。

是的,当交易完成后,您将通过IPN收到通知。这通常需要几个工作日 完成后,您可以将DoExpressCheckoutPayment的交易与您通过IPN中的txn_id收到的IPN相关联。

注意:如果您想在PayPal沙盒中测试“待处理”付款,只需转到https://developer.paypal.com/>测试帐户,然后点击您正在测试的卖家帐户的“付款审核” 对该卖家帐户启用付款审核后,其收到的任何交易都将处于“待处理”状态 只需禁用付款审核即可在之后发布广告。

答案 1 :(得分:3)

我以为我会为此添加两便士的想法。

我通过dotNet SDK使用Express Checkout获得了待处理的退货状态,根据文档和示例我应该获得“已批准”状态。

我无法弄清楚原因,但结果却是因为我正在通过一种新货币,在我们的案例中是'GBP'。我必须以辅助器沙盒帐户登录并决定如何处理新货币..转换它或设置货币的新余额。完成此操作并将其设置为默认操作后,将不再发生挂起的返回状态。

希望能帮助别人!

答案 2 :(得分:1)

这里没有注意到的一件事,我还没有发现其他任何事情需要确认..是Paypal Express API不支持使用代码传递NOTIFYURL。因此,您必须使用PayPal帐户中设置的硬编码IPN网址。这当然会导致问题,因为您需要一个可以重定向到各个付款选项的公共回调文件。

例如,如果您使用的是Paypal Express和Paypal Advanced ..这些都没有正确支持使用该代码传递的notifyurl。 Paypal Advanced声称,但它似乎不起作用。因此需要有一个通用的IPN回调文件来处理重定向到每个回调文件。

除非其他人可以确认可以在代码中传递的Express Checkout变量的工作通知URL吗?