我正在尝试使用 PayumBundle的Omnipay BridgeInvalidCreditCardException
来捕获任何其他异常。
我努力了:
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