我正在使用Stripe进行订阅,因此当用户取消订阅时(关闭自动续订),它会保持订阅有效,直到Stripe的结算周期结束.
该操作通过Stripe工作,但我如何设置以便cancelled我的数据库中的列具有相同的效果?目前,如果用户点击取消订阅链接,它会将其cancelled列标记为1.我希望它不会在结算期结束前标记为已取消,因此用户可以继续访问该网站,直到最后一个结算日(我已打开autorenwal)
我已阅读txdavidtx建议.他建议将所有用户标记为在结算周期结束时取消.那种方法不适合我想要完成的任务.
我订阅设置为autorenew.我需要cancel创建一个仅current_user在结算周期结束时标记为已取消的操作.
例如:
用户A在9月27日报名参加月度订阅.用户A决定在12月15日取消订阅.用户A的订阅还剩12天.用户A单击该cancel链接.用户A在其PayPal或Stripe帐户中已取消自动更新和订阅.在我的数据库中,他们的cancelled属性值在12天(12月27日)结束之前不会改变.
如果有人可以提供帮助那就太棒了.
订阅控制器:
def new
plan = Plan.find(params[:plan_id])
@subscription = plan.subscriptions.build
render layout: 'new_application'
if params[:PayerID]
@subscription.paypal_customer_token = params[:PayerID]
@subscription.paypal_payment_token = params[:token]
@subscription.email = @subscription.paypal.checkout_details.email
end
end
def create
@subscription = Subscription.new(params[:subscription])
if @subscription.save_with_payment
redirect_to @subscription, :notice => "Thank you for subscribing!"
else
render :new
end
end
def show
@subscription = Subscription.find(params[:id])
render layout: 'new_application'
end
def paypal_checkout
plan = Plan.find(params[:plan_id]) …Run Code Online (Sandbox Code Playgroud)