0

カスタム ゲートウェイを作成しようとしていますが、多くのさまざまなドキュメントに従っています。昨日、私は新しい 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();

誰にも何がうまくいかないのか考えがありますか?

4

1 に答える 1