【发布时间】:2017-01-25 06:00:28
【问题描述】:
在我实际的 Symfony2 项目中,我使用 PayumBundle 和 Payum 1.3.4,通过 paypal_express_checkout 工厂进行支付。我发现一种行为可能没问题,但我需要与另一个了解 Payum 的人确认。
简单解释一下:
1- 它在 Paypal 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 中的示例,但没有任何关于挂起状态的信息。
提前致谢。
【问题讨论】: