Paypal ExpressCheckout "constant values" 验证交易成功

Paypal ExpressCheckout "constant values" to validate a successful transaction

SetExpressCheckout中我设置了以下值

'PAYMENTREQUEST_0_ALLOWEDPAYMENTMETHOD' => 'InstantPaymentOnly',
'PAYMENTREQUEST_0_PAYMENTACTION'=> 'Sale'

成功 DoExpressCheckout 后,这是 returned

的部分内容
ACK => Success
PAYMENTINFO_0_TRANSACTIONTYPE => expresscheckout
PAYMENTINFO_0_PAYMENTTYPE => instant
PAYMENTINFO_0_PAYMENTSTATUS => Completed
PAYMENTINFO_0_ERRORCODE => 0
PAYMENTINFO_0_ACK => Success

PAYMENTINFO_0_PAYMENTSTATUS -- 设置 InstantPaymentOnly 后,DoExpressCheckout 将永远 return PAYMENTINFO_0_PAYMENTSTATUS of In-ProgressPendingProcessed 或除明确的是或否以外的其他内容?

基本上,由于只允许即时付款,因此唯一永远完成的付款将在第一次时有 PAYMENTINFO_0_PAYMENTSTATUSCompleted

ACKPAYMENTINFO_0_ACK -- 它们有关联吗? Paypal 声明 ACK 指示交易的成功或失败状态以及是否有任何警告 returned。”

两个 ACK 值将是 SuccessFailure?这是否明确指交易是否已经完成或将要完成?

非常感谢,

InstantPaymentOnly 阻止买家账户中的非即时资金来源(例如电子支票付款)。这意味着您不会获得等待买家资金移动完成的交易。但是还有其他因素可能导致付款处于待处理状态而不是完成状态。这些其他因素可能适用于您的特定用例,也可能不适用,但示例包括以新货币向您支付的款项将一直持有,直到您决定是否以该货币开立余额或将其自动转换为您的主要货币,或某些欺诈 filter/fraud 检测场景。

至于 ACK/ACK_PAYMENTINFO_0_ACK,如果您只请求一次付款(并且没有任何额外的事情,例如签署结算协议),我猜这两种状态将始终相同,但我建议您通过官方文档验证。