PayPal express结帐处理“;“待付款”;具有IPN

PayPal express结帐处理“;“待付款”;具有IPN,paypal,paypal-ipn,Paypal,Paypal Ipn,我找不到关于这方面的非常清晰的文档。 如果您使用paypal express checkout,那么当付款挂起时,接下来会发生什么? paypal是否通过IPN向您发送更新?如果状态发生变化,您是否有选择 假设您执行DoExpressCheckoutPayment(使用NVP) 你会发现: &PAYMENTSTATUS=Pending &PENDINGREASON= ECHECK //The payment is pending because it was made by a

我找不到关于这方面的非常清晰的文档。
如果您使用paypal express checkout,那么当付款挂起时,接下来会发生什么?
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 Express Checkout Payment PENDINGREASON响应是一个值 除了“无”或“已完成”之外,付款处于待定状态。通常, 这意味着客户已经用aneCheck支付了。在这种情况下,资金 不保证,您不应装运或交付物品或服务 服务,直到付款成功完成。注意:
PayPal建议您在以下情况下阻止eChecks作为一种付款方式: 无法处理挂起的州付款。若要了解 待付款,您可以:

提交查询交易

使用PayPal Manager检查状态。请参阅PayPal Manager联机帮助 详情请参阅


paypal沙箱似乎可以选择检查快速签出类型的IPN消息。DoExpressCheckoutPayment和IPN之间唯一的关联(如果以这种方式使用它)似乎是您可以使用“自定义”字段来跟踪挂起状态。txn_id(ipn)未在DoExpressCheckoutPayment(nvp)中给出。有人对此有经验吗?

即使PAYMENTSTATUS=Pending,交易ID也肯定会在DoExpressCheckoutPayment中给出。未决付款仍然是一项交易

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

注意:如果您想在PayPal沙箱中测试“待定”付款,只需转到>测试帐户并单击您正在测试的卖家帐户的“付款审核”。
一旦在该卖方账户上启用付款审核,其收到的任何交易都将处于“待定”状态。

只需禁用“付款审核”即可在事后发布交易。

这里没有注明一件事,我也没有发现任何其他需要确认的事情。。Paypal Express API不支持将NOTIFYURL与代码一起传递。因此,您必须使用paypal帐户中设置的硬编码IPN url。这当然会引起问题,因为您需要一个可以重定向到各个支付选项的公共回调文件

例如,如果您使用的是Paypal Express和Paypal Advanced。。它们都不支持使用代码传入的notifyurl。Paypal提出了这样的要求,但似乎不起作用。因此,需要有一个通用的IPN回调文件来处理到每个IPN的重定向


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

我想我应该在这上面加上我两便士的想法

我通过dotnetsdk使用Express Checkout获得了一个待处理的返回状态,根据文档和示例,我应该获得一个“已批准”状态

我不知道为什么,但结果是因为我使用了一种新的货币,在我们的例子中是“英镑”。我必须以主持人沙箱帐户的身份登录,并决定如何使用新货币。。将其转换或设置新的货币余额。一旦我这样做了,并将其设置为默认操作,将不再出现挂起的返回状态


希望这对别人有帮助

谢谢,这是有道理的,贝宝文档对此不是很清楚。真的!是否有关于ExpressCheckout“完整故事”的更详细文档?例如,它是如何受IPN影响的,在什么情况下事务可能处于挂起状态,在这种情况下通常可以做什么,何时应该接受挂起的事务,何时不接受,等等。如果您在DoExpressCheckoutPayment中指定NOTIFYURL,则I'm PENDINGREASON=Missing应该起作用。你是这样做的吗?是的,它“应该”但不是。我向Zen Cart开发人员确认了一个问题,这就是为什么他们必须创建一个“通用”ipn文件来处理来自多个paypal API的回调。我确实发现,他们在Paypal Express API的较新版本中添加了“PAYMENTREQUEST\u 0\u NOTIFYURL”,并且似乎最终在那里起到了作用。。但老实说,贝宝有这么多的API,他们都有大量的错误,所以它通常是击中或错过什么工作与否。哦,等等。。你说的是DoExpress。。我只在SetExpress中有它。。好的,我试试看