В моем реальном проекте Symfony2 я использую PayumBundle с Payum 1.3.4 для осуществления платежей с помощью фабрики paypal_express_checkout. Я обнаружил поведение, которое может быть в порядке, но мне нужно подтвердить это с другим человеком, который знает о Payum.
Это просто объяснить:
1- Был создан пользователь в песочнице Paypal для проверки платежей, и был активирован просмотр платежей, чтобы заставить все платежи оставаться в состоянии «ожидание».
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 (что в порядке) говорит, что paymen находится в ожидании.
Итак, почему статус Payum «захвачен», а не «ожидается»? Это правильно?
Как проверить "правильно" статус "ожидание" в платеже?
Я проверил примеры в песочнице Payum Bundle, но там ничего не говорится о статусе ожидания.
Заранее спасибо.