PayPal快速结帐处理“待定付款”与IPN

问题描述:

我找不到明确的文件关于此。
如果您使用PayPal快速结账,当付款待处理时,接下来会发生什么?
如果状态发生变化,PayPal是否会通过IPN向您发送更新,您有选择吗?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?)来处理待处理的付款。

“如果DO快速结账付款PENDINGREASON响应比让利或完成值 ,该款项待付。通常情况下, 这意味着客户已与aneCheck支付。在这种情况下,资金 是不保证,并且在付款成功完成之前,您不应该运送或交付物品或 服务。注意:
贝宝建议您阻止eChecks作为付款方式,前提是您的 无法处理暂挂状态付款。要查明状态待付款的 ,您可以:

提交查询交易。

使用PayPal Manager检查状态。详细信息请参见贝宝Manager联机帮助 。”

贝宝沙箱似乎有检查IPN消息的快速结账类型的选项,唯一相关的DoExpressCheckoutPayment之间(如果使用它的换货这种方式) IPN似乎可以使用“自定义”字段来跟踪待处理状态,txn_id(ipn)在DoExpressCheckoutPayment(nvp)中没有给出,是否有任何人有这方面的经验?

+0

我越来越PENDINGREASON =缺少 – mcr 2013-09-26 12:48:08

交易ID在DoExpressCheckoutPayment中是肯定的,即使PAYMENTSTATUS = Pending。待处理的付款仍然是交易。

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

注意:如果您想在PayPal沙盒中测试“待定”付款,只需转至https://developer.paypal.com/>测试帐户,然后点击您正在测试的卖家帐户的“付款审核”。
一旦在该卖家帐户上启用支付审查,它收到的任何交易都将处于“待定”状态。
只需停用付款审核功能即可释放事件。

+0

谢谢,这是有道理的,贝宝文档不会很清楚这一点。 – Rob 2012-02-17 11:02:46

+0

确实!是否有关于ExpressCheckout“完整故事”的更详细的文档?例如IPN如何影响,交易可能处于什么情况下,通常可以在这种情况下完成,什么时候应该接受待处理交易以及什么时候不接受等。 – xSNRG 2013-08-23 10:50:02

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

例如,如果您使用的是PayPal Express和PayPal Advanced ..这些都不能正确支持通过代码传递的notifyurl。贝宝高级声称,但它似乎并没有工作。所以需要有一个通用的IPN回调文件来处理每个文件的重定向。

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

+0

如果您将NOTIFYURL指定为DoExpressCheckoutPayment。这是你做的吗? – jayarjo 2014-01-25 15:07:52

+0

是的,它“应该”但不。我向Zen-Cart开发人员证实了这一点,这就是为什么他们必须制作一个“通用”ipn文件来处理来自多个paypal apis的回调。我确实发现他们在Paypal Express API的新版本中加入了“PAYMENTREQUEST_0_NOTIFYURL”,它似乎终于在那里工作了。但说实话,Paypal有这么多的API,它们都有大量的错误,所以它通常被击中或想念什么有效或没有。 – Dss 2014-01-25 21:54:17

+0

哦,等等..你说的DoExpress ..我只有在SetExpress ..确定我会尝试DoExpress – Dss 2014-01-25 22:25:57

我想我会加我的两便士值得思考。

根据文档和示例,我通过使用Express Checkout通过dotNet SDK获得了挂起的返回状态,本应该获得'已批准'状态。

我不明白为什么,但事实证明是因为我通过一种新货币,在我们的情况下是'GBP'。我不得不作为主持人沙箱帐户登录,并决定如何处理新货币。将其转换或设置新的货币余额。一旦我这样做,并将其设置为默认操作,挂起的返回状态不再发生。

希望能帮助别人!