我正在使用服务对象将条纹支付功能抽象到它自己的类中。我正在使用ryan bates 谈到的这种方法https://gist.github.com/ryanb/4172391 。
class Purchase
def initialize(order)
@order = order
end
def create_customer
customer = stipe create customer
if customer
charge_customer(customer)
else
stipe error in creating customer
end
end
def charge_customer(customer)
if charge is sucessfull
update_order(charge details)
else
stripe error in charging card
end
end
def update_order
@order.update(payment attributes)
end
end
然后在订单控制器中我正在做类似的事情
def create
@order = Order.new(params[:order])
if @order.save
payment = Payment.new(@order)
else
render 'new' with flash message "payment error"
end
end
我的问题是,我如何获得显示给用户的 stipe 错误消息(“创建客户时出现错误”和“收费卡中出现条纹错误”)?或者我可以在订单模型中调用服务对象并将其添加到订单错误消息中吗?例如,
订单控制器
@order.save_with_payment
订购型号
def save_with_payement
payment = Payment.new(self)
#update order
self.payment_token = payment.token
etc
end
如果我可以用模型做到这一点,我如何进行显示条纹错误的验证?
提前致谢。