私の実際の Symfony2 プロジェクトでは、Payum 1.3.4 で PayumBundle を使用して、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();
....
}
この時点で、は"captured"$status->getValue()
と同じです。しかし、私はこれを見ることができます(明確にするためにチャンクされています):$payment->getDetails()
details(
"INVNUM" => "57dc5ce455d5a",
...
"ACK" => "Success",
...
"CHECKOUTSTATUS" => "PaymentActionCompleted"
...
"PAYMENTINFO_0_PAYMENTSTATUS" => "Pending",
"PAYMENTINFO_0_PENDINGREASON" => "paymentreview",
...
)
Payum はステータスが Captured であると言っていますが、PayPal (これは問題ありません) は paymen が "Pending" であると言っています。
では、Payum のステータスが「保留中」ではなく「取得済み」になっているのはなぜですか? これでしょ?
支払いの「保留」ステータスを「正しく」確認するにはどうすればよいですか?
Payum Bundle Sandbox で例を確認しましたが、保留中のステータスについては何もありません。
前もって感謝します。