Rails:Stripe:使用新的优惠券代码更新现有订阅

时间:2016-03-14 06:06:46

标签: ruby-on-rails-4 stripe-payments coupon

我有订阅,如果我用coupon更新,优惠券将如何申请?客户已经支付了金额,现在我将通过我的管理仪表板编辑来申请100%的折扣优惠券。

这是如何处理的?

感谢

2 个答案:

答案 0 :(得分:7)

这就是我的做法。

首先,我更新了客户的订阅:

customer = Stripe::Customer.retrieve(customer_id)
subscription = customer.retrieve(subscription_id)
subscription.coupon = "coupon_id"
subscription.save

然后使用折扣哈希中的coupon的详细信息更新客户的订阅。

然后我手动退还该客户的charge对象(如果优惠券是100%折扣优惠券)。

charge = customer.retrieve(stripe_charge_id)
refund = charge.refund

然后,应用优惠券后,使用charge更新amount_refunded对象并享受折扣金额。使用更新的refunded哈希,refunds也设置为true。

您还可以通过传递金额来创建特定金额的退款,例如:

re = Stripe::Refund.create(  
                           charge: charge_id,
                           amount: amount_you_want_to_refund
                          )

对于即将开具的发票,将为该折扣金额创建发票。

答案 1 :(得分:2)

以下是使用Ruby中的优惠券更新现有订阅的方法:

customer = Stripe::Customer.retrieve("cus_...")
subscription = customer.subscriptions.retrieve("sub_...")
subscription.coupon = "coupon_code"
subscription.save

优惠券将适用于此订阅的下一张发票,但过去的发票不会受到影响。