![](/img/trans.png)
[英]Stripe Test API for payments not working on Ruby on Rails App?
[英]Ruby on Rails - Stripe::CardError not catching blocked payments
我正在开发一个基于订阅的网站,其内容位于与 Stripe 连接的付费墙后面。 如果收费被拒绝或阻止,帐户创建应停止,go 返回帐户创建屏幕,并显示错误消息。
这是我的异常代码:
class RegistrationsController < Devise::RegistrationsController
rescue_from Stripe::CardError, with: :stripe_card_error
def stripe_card_error(e)
flash[:error] = "#{e.error.message}"
redirect_to request.referrer || "registrations#new" and return
end
def new
#
end
def create
#
end
//etc. etc.
它适用于一般卡拒绝,但是,当我运行 Stripe 提供的测试卡号时,明确表示它将返回欺诈性,救援不会触发并且用户帐户已创建。
我进入我的条纹仪表板,我可以看到客户、订阅等,但付款被阻止。
我原以为 Stripe::CardError 会捕捉到这一点,但显然不是。
如果付款因潜在欺诈而被阻止,我不希望创建用户帐户。 我想将其视为带有适当错误消息的一般卡片拒绝。
是否有另一个我可以挽救的错误或另一种方法来做到这一点? 我在 Stripe 的 API 中找不到任何关于处理此问题的最佳方法的信息。
Stripe在其 API 参考中提供了一个示例错误处理片段。 该片段表明您应该捕获并处理以下所有内容:
Stripe::CardError
Stripe::RateLimitError
Stripe::InvalidRequestError
(这可能是适用于这种特定情况的错误)Stripe::AuthenticationError
Stripe::APIConnectionError
Stripe::StripeError
(这也可能是你想要的) 而且,如果一切都失败了,您应该执行一般rescue
以捕捉其他任何东西。
您只能执行一般rescue
并检查错误以确定抛出哪个特定的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.