在我实际的Symfony2项目中,我使用PayumBundle(与Payum 1.3.4)一起通过paypal_express_checkout工厂付款。我发现可能没有问题,但我需要与其他了解Payum的人确认。

这只是为了解释:

1-在Paypal沙箱中创建了一个用户来测试付款,并激活了“付款查看”以强制所有付款保持“待处理”状态。

2-准备阶段通过了OK,重定向到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说状态为已捕获,但是PayPal(可以)表示付款人为“待处理”。

那么,为什么Payum状态是“已捕获”而不是“待定”?这样吧?

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

我检查了Payum Bundle沙箱中的示例,但是有关挂起状态的信息不多。

提前致谢。

最佳答案

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

它在此时打开,但是我在这里描述了一个快捷方式。

关于php - 在Payum中,我如何“正确”检查付款中的“待处理”状态?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39541102/

10-10 15:54