szi*_*ier 2 ruby ruby-on-rails coupon stripe-payments
我正在使用stripe gem for rails,我正在尝试检查用户的优惠券代码是否无效.如果代码无效,则将用户重定向到users/show.html.haml
这是我的代码
if Stripe::Coupon.retrieve(current_user.coupon_code) == nil
redirect_to user_path(current_user)
end
Run Code Online (Sandbox Code Playgroud)
我认为从Stripe检索代码并检查值是否nil可行但我收到的错误消息是:
Stripe::InvalidRequestError in SubscribersController#new
No such coupon: *Whatever the invalid coupon name is (ex. "ASDF")*
Run Code Online (Sandbox Code Playgroud)
想知道这里发生了什么?我查看了Ruby的Stripe文档,但没有看到有关如何检查代码是否无效的任何信息.还有另一种检查代码是否相等的方法nil吗?
如果您传递的优惠券ID Stripe::Coupon.retrieve(...)不存在,请求将失败并Stripe::InvalidRequestError引发异常.
因此,nil您需要将调用Stripe::Coupon.retrieve(...)放在begin/rescue/end块中以捕获Stripe::InvalidRequestError异常,而不是将结果与之进行比较.
您可以在此处找到有关使用Stripe API进行错误处理的更多信息:https://stripe.com/docs/api#errors