PayumBundle のOmnipay BridgeをInvalidCreditCardException
使用して、その他の例外をキャッチしようとしています。
私が試してみました:
try {
return $this->forward('PayumBundle:Capture:do', array(
'payum_token' => $captureToken,
));
} catch (\Exception $e) {
$exceptions = array();
do {
$exceptions[] = $e->getMessage();
} while ($e = $e->getPrevious());
$response = new Response(json_encode(array('status' => 'failed', 'Message' => $exceptions)));
return $response;
}
しかし、コードがキャッチされる前に、クレジットカード番号が無効であるOmnipay
という独自の例外がスローされます。
コメントでは、次のようにも述べています。
通常、カスタム エラー メッセージでクレジット カードを自分で検証する場合は、このメソッドではなく、フレームワークの検証ライブラリを使用する必要があります。
これはまさに私がやろうとしていることですが、Symfony PayumBundle例外を使用してカスタムエラーでカードを検証するにはどうすればよいですか?
以下の最初の回答のように参照してこの質問に回答しないでください。彼の支援に感謝しますが、コードでその例外を利用する方法については役に立ちません。
非常に重要
私は PayumBundle をよりよく理解しようとしているので、何が間違っているのかを理解する必要があり、手順 (英語ではなく、説明付きの実際のコード例) でアクションで例外をキャッチし、ユーザーフレンドリーなメッセージを表示する必要があります。理解してください、私はsymfonyに本当に慣れていないので、学ぼうとしています.もしあなたが私にサービスを作成してこれをするように頼むつもりなら、それは私を助けません.ここの例を見てください.助けに本当に感謝しています.しかし、それから私は本当に本当に迷っています。
正しいクレジット番号が入力されていれば、トランザクションは問題なく処理されますが、間違ったカード番号が入力された場合やカードの有効期限が切れた場合などにキャッチする必要があるのは例外であることに注意してください。
それが役立つ場合、これは私のconfig.ymlがどのように見えるかです
contexts:
paypal:
paypal_express_checkout_nvp:
username: %paypal_username%
password: %paypal_password%
signature: %paypal_signature%
sandbox: %paypal_sandbox%
stripe_omnipay:
omnipay:
type: Stripe
options:
apiKey: xxxx
testMode: true
extensions:
PaymentExtension:
class: Payum\Core\Extension\PaymentExtention