我正在使用Stripe创建第一个订阅(对于Rails应用程序),我坚持创建一个月的订阅需要多长时间。
通常,当我们创建订阅时,它看起来像这样:
Stripe::Customer.create(description:email, plan: plan_id, card: stripe_card_token)
这意味着对于相应的用户将创建一个订阅,其中每个月将自动从用户的信用卡中获得相应的资金。
但有些用户只想支付订阅费用一个月,这意味着没有定期结算。
怎么做?
文档说我应该在 true 上设置 cancel_at_period_end ,然后订阅将在第一个月之后结束(这意味着在第一个月之后将是订阅设置为已取消)。
但我应该在哪里设置此参数?
或者 - 我对这个有问题的错误的理解,我忽略了什么?
感谢oyu
答案 0 :(得分:0)
您可以使用以下代码取消订阅:
# Set your secret key: remember to change this to your live secret key in production
# See your keys here https://dashboard.stripe.com/account/apikeys
Stripe.api_key = "sk_test_ypuqOnp64ATuGJlbgEwmAtzV"
customer = Stripe::Customer.retrieve("cus_3R1W8PG2DmsmM9")
customer.subscriptions.retrieve("sub_3R3PlB2YlJe84a").delete
默认情况下,取消立即生效。如果您想立即取消订阅,但要保持订阅有效,直到结算周期结束(例如,通过客户已付款的时间),请提供at_period_end值true:
customer.subscriptions.retrieve("sub_3R3PlB2YlJe84a").delete(:at_period_end => true)
在您的情况下,如果您只想提供一个月的订阅,您可以将其视为一个横断面,我建议您使用Subscription::Charge
进行如下操作:
customer = Stripe::Customer.create(
:source => token,
:description => "Example customer"
)
# Charge the Customer instead of the card
Stripe::Charge.create(
:amount => 1000, # in cents
:currency => "usd",
:customer => customer.id
)