在Payum中如何“正确”检查付款中的“待处理”状态?

时间:2016-09-16 22:52:20

标签: php paypal payum

在我的实际Symfony2项目中,我使用PayumBundle和Payum 1.3.4,通过paypal_express_checkout工厂付款。我发现了一种可能没问题的行为,但我需要与另一个了解Payum的人确认。

这只是解释:

1-在P​​aypal Sandbox中创建了一个用户来测试付款,并激活了付款审核以强制所有付款都处于“待处理”状态。

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()我可以看到这个(为了清晰起见):

details(
    "INVNUM" => "57dc5ce455d5a",
    ...
    "ACK" => "Success",
    ...
    "CHECKOUTSTATUS" => "PaymentActionCompleted"
    ...
    "PAYMENTINFO_0_PAYMENTSTATUS" => "Pending",
    "PAYMENTINFO_0_PENDINGREASON" => "paymentreview",
    ...
)

Payum表示状态为Captured,但PayPal(可以)表示付款人正在“等待”。

那么,为什么Payum状态被“捕获”而不是“待定”?这是对的吗?

如何在付款中“正确”检查“待处理”状态?

我查看了Payum Bundle Sandbox中的示例,但没有关于待处理状态的信息。

提前致谢。

1 个答案:

答案 0 :(得分:0)

检查GitHub中的问题线程:https://github.com/Payum/Payum/issues/585

此时打开,但我描述了一个捷径。