2016-09-16 43 views
1

在我实际的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中的例子,但没有任何关于待定状态的信息。

在此先感谢。

回答

相关问题