检查 Stripe 优惠券是否无效
Checking if a Stripe Coupon is invalid
我正在为 rails 使用条纹 gem,并且我正在尝试检查用户的优惠券代码是否无效。如果代码无效,则用户将被重定向到 users/show.html.haml
这是我的代码
if Stripe::Coupon.retrieve(current_user.coupon_code) == nil
redirect_to user_path(current_user)
end
我认为从 Stripe 检索代码并检查值是否为 nil
会起作用,但我收到的错误消息是:
Stripe::InvalidRequestError in SubscribersController#new
No such coupon: *Whatever the invalid coupon name is (ex. "ASDF")*
知道这里发生了什么吗?我查看了 Ruby 的 Stripe 文档,但没有看到任何关于如何检查代码是否无效的信息。还有另一种方法来检查代码是否等于或不等于 nil
?
如果您传递给 Stripe::Coupon.retrieve(...)
的优惠券 ID 不存在,请求将失败并引发 Stripe::InvalidRequestError
异常。
因此,不是将结果与 nil
进行比较,而是需要将对 Stripe::Coupon.retrieve(...)
的调用放在 begin/rescue/end 块中以捕获 Stripe::InvalidRequestError
异常。
您可以在此处找到有关 Stripe API 错误处理的更多信息:https://stripe.com/docs/api#errors
有关背景信息,请参阅 和
在 ruby、
# @return [Boolean]
# #
def is_valid?(coupon)
return false unless coupon.present?
coupon_retrieved = Stripe::Coupon.retrieve(coupon)
coupon_retrieved.valid == true
rescue => error
puts "#{error.class} :: #{error.message}"
false
end
我正在为 rails 使用条纹 gem,并且我正在尝试检查用户的优惠券代码是否无效。如果代码无效,则用户将被重定向到 users/show.html.haml
这是我的代码
if Stripe::Coupon.retrieve(current_user.coupon_code) == nil
redirect_to user_path(current_user)
end
我认为从 Stripe 检索代码并检查值是否为 nil
会起作用,但我收到的错误消息是:
Stripe::InvalidRequestError in SubscribersController#new
No such coupon: *Whatever the invalid coupon name is (ex. "ASDF")*
知道这里发生了什么吗?我查看了 Ruby 的 Stripe 文档,但没有看到任何关于如何检查代码是否无效的信息。还有另一种方法来检查代码是否等于或不等于 nil
?
如果您传递给 Stripe::Coupon.retrieve(...)
的优惠券 ID 不存在,请求将失败并引发 Stripe::InvalidRequestError
异常。
因此,不是将结果与 nil
进行比较,而是需要将对 Stripe::Coupon.retrieve(...)
的调用放在 begin/rescue/end 块中以捕获 Stripe::InvalidRequestError
异常。
您可以在此处找到有关 Stripe API 错误处理的更多信息:https://stripe.com/docs/api#errors
有关背景信息,请参阅
在 ruby、
# @return [Boolean]
# #
def is_valid?(coupon)
return false unless coupon.present?
coupon_retrieved = Stripe::Coupon.retrieve(coupon)
coupon_retrieved.valid == true
rescue => error
puts "#{error.class} :: #{error.message}"
false
end