我将使用PDT处理通过我网站上的付款按钮进行的一次性付款(PayPal付款标准)。事实上,我也会使用IPN,但问题是关于PDT。 PayPal在响应中向我们发送的PDT消息中允许使用“payment_status”变量的值是多少?在我看来,并非PDT消息中的所有值都是可能的,因此并非所有值都应该在我的代码中处理。
我没有在PayPal文档(以及任何其他地方)中找到关于PDT的'payment_status'的任何信息,所以我不得不提出自己的想法。我认为这些值对PDT来说是合法的:
也可能
所以,我需要在我的PDT脚本中处理上述4(5)个状态而不是其他状态。我想其他人:
与IPN(不是PDT)有关。我的猜测是否正确?
谢谢。
答案 0 :(得分:1)
确切地说,IPN会异步通知您某些事件,如退款,撤销,保留等,因此,如果您使用IPN,您可能会收到这些状态,作为以前完成的交易的“更新”。
但是,只有当您的集成返回URL针对https://www.paypal.com/cgi-bin/webscr发送POST并传递“cmd = _notify-synch”以及您的PDT令牌和事务ID(“tx”)时,才会发回PDT变量,因此您只会收到成功交易的状态,即“已完成”(如果是payaction = sale)或“待定”(如果payaction =授权/订单)。
您也不应该收到拒绝/失败/已处理的付款状态,因为这些通常是指MassPay IPN。