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

Rails : Stripe : Updating existing subscription with new coupon code

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

这是如何处理的?

谢谢

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

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

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

我就是这样做的。

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

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

客户的订阅随后会更新为折扣哈希中 coupon 的详细信息。

然后我手动给那个客户的charge对象退款了(如果coupon是100% discount coupon)

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

这会在应用优惠券后使用折扣金额 amount_refunded 更新 charge 对象。 refunded 也被设置为 true 并更新了 refunds 散列。

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

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

对于即将到来的发票,发票是为该折扣金额创建的。