在我實際的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中的例子,但沒有任何關於待定狀態的信息。
在此先感謝。