カスタム ゲートウェイを作成しようとしていますが、多くのさまざまなドキュメントに従っています。昨日、私は新しい Payum/Skeleton を発見し、それから始めて、その例に従いました。キャプチャ ページにリダイレクトされると問題が発生しますが、次の 2 つの例外が発生します。
致命的なエラー: キャッチされない例外 'Payum\Core\Exception\RequestNotSupportedException' とメッセージ 'Request Capture{model: Identity} はサポートされていません。"Payum\Core\Model\Payment" のストレージ拡張機能がゲートウェイに登録されていることを確認します。storage find メソッドが ID "5678ff3e481ba" でインスタンスを返すことを確認してください。ゲートウェイがリクエストをサポートしていること、およびこのリクエストをサポートするアクションがあることを確認してください (メソッドは true を返します)。バグがある可能性があるので、Issue Tracker で関連する問題を探してください。/home/vagrant/code/payumdibs/vendor/payum/core/Payum/Core/Exception/RequestNotSupportedException.php の 57 行目
と
Payum\Core\Exception\RequestNotSupportedException: Request Capture{model: Identity} はサポートされていません。"Payum\Core\Model\Payment" のストレージ拡張機能がゲートウェイに登録されていることを確認します。storage find メソッドが ID "5678ff3e481ba" でインスタンスを返すことを確認してください。ゲートウェイがリクエストをサポートしていること、およびこのリクエストをサポートするアクションがあることを確認してください (メソッドは true を返します)。バグがある可能性があるため、Issue Tracker で関連する問題を探してください。/home/vagrant/code/payumdibs/vendor/payum/core/Payum/Core/Exception/RequestNotSupportedException.php の 57 行目
x-debug を使用したところ、CaptureAction::supports が呼び出されたときに $request->getModel() が \ArrayAccess のインスタンスではないため、false が返されることがわかりました。
標準の支払いゲートウェイを使用するとすべて正常に動作しますが、カスタムを使用するとうまくいきません。
私の設定:
$payum = (new PayumBuilder())
->addDefaultStorages()
->addGatewayFactory('paypal', new \Acme\Paypal\PaypalGatewayFactory([]))
->addGateway('offline', [
'factory' => 'offline',
])->addGateway('paypal', [
'factory' => 'paypal',
'sandbox' => true,
])->getPayum();
誰にも何がうまくいかないのか考えがありますか?