在我实际的Symfony2项目中,我使用PayumBundle和Payum 1.3.4来使用paypal_express_checkout工厂进行支付。我发现了一种可能没有问题的行为,但我需要与另一个了解Payum的人确认。Payum中如何在付款中检查“正在等待”状态?
它只是解释:
1-它的建立在贝宝沙盒的用户测试支付,并且它激活了付款审查,迫使所有的款项停留在“待定”状态。
2-准备阶段通过确定,重定向到PayPal。
3-在PayPal付款也罚款,再次重定向到我的网站到完成阶段。
4-在完成阶段发生以下:
public function doneAction(Request $request)
{
$token = $this->get('payum')->getHttpRequestVerifier()->verify($request);
$gateway = $this->get('payum')->getGateway($token->getGatewayName());
$gateway->execute($status = new GetHumanStatus($token));
/** @var Payment $payment */
$payment = $status->getFirstModel();
....
}
此时,$status->getValue()
等于“俘获”。 但在$payment->getDetails()
我可以看到这个(chuncked为清楚起见):
details(
"INVNUM" => "57dc5ce455d5a",
...
"ACK" => "Success",
...
"CHECKOUTSTATUS" => "PaymentActionCompleted"
...
"PAYMENTINFO_0_PAYMENTSTATUS" => "Pending",
"PAYMENTINFO_0_PENDINGREASON" => "paymentreview",
...
)
Payum说状态被捕获,但贝宝(至极是确定)说,paymen被“待定”。
那么,为什么Payum状态是“被捕获”而不是“挂起”?这是正确的吗?
如何在付款中“正确”检查状态“挂起”?
我检查了Payum Bundle Sandbox中的例子,但没有任何关于待定状态的信息。
在此先感谢。