资讯动态

Koudoku免费试用实战:用Coupon模型和prorate配置实现30天试用与优惠码

发布时间:2026/10/14 16:27:44 来源:尧图企业网站定制
后端【免费下载链接】koudokuRobust subscription support for Rails with Stripe.项目地址https://gitcode.com/gh_mirrors/ko/koudoku点击查看免费下载Koudoku 是一款为 Ruby on Rails 应用提供 Stripe 订阅支付支持的开源引擎开箱即用地提供定价页、支付页和订阅管理。本文带你通过Coupon 模型 prorate 配置快速实现「30 天免费试用」和「优惠码」两大核心功能适合刚接触订阅计费的新手阅读。为什么选择 Koudoku 对于 SaaS 产品来说订阅逻辑升级、降级、取消、支付失败往往是支付环节最头疼的部分。Koudoku 帮你把这些都做好了能力说明定价页内置定价表视图支持高亮推荐套餐订阅管理用户可自助选套餐、换套餐、取消订阅模板方法提供prepare_for_*/finalize_*!钩子方便接入日志、通知Webhook基于 stripe_event可订阅charge.failed等事件官方文档见 README.md。快速安装3步接入Koudoku第 1 步在Gemfile中加入依赖并安装gem koudoku第 2 步运行安装生成器前提拥有订阅的模型通常是user已存在rails g koudoku:install user rake db:migrate第 3 步在布局文件app/views/layouts/application.html.erb的/head前加入% yield :koudoku %这一步用于注入 Stripe 脚本标签漏掉它支付表单将无法工作。配置 Stripe API Key 时默认读取环境变量STRIPE_PUBLISHABLE_KEY和STRIPE_SECRET_KEY避免把密钥写进版本库。安装后记得在 Stripe Dashboard 中创建套餐再在数据库里创建对应的Plan记录包含name、price、interval、stripe_id等字段。用Coupon模型实现30天免费试用Koudoku 提供了两种「免费」方式全局配置试用时长或用 Coupon 模型做定向优惠。这里重点讲 Coupon 方案。创建 Coupon 记录生成器会安装 Coupon 模型模板见 coupon.rb其数据表包含code与free_trial_length两个核心字段迁移参考 20130318204502_create_coupons.rb。创建一个「30 天免费」的优惠记录coupon Coupon.create(code: 30-days-free, free_trial_length: 30)把 Coupon 挂到新订阅上在保存新订阅之前把 coupon 赋给它即可subscription Subscription.new(...) subscription.coupon coupon subscription.save原理当新订阅关联了可用的免费试用 coupon 时Koudoku 会在创建 Stripe 客户时自动设置trial_end从而让客户先享受试用期之后再正常扣款。相关逻辑在 subscription.rb 中因此你的Coupon模型需要实现free_trial?和free_trial_ends两个方法分别用于判断是否为免费试用、以及返回试用结束的 Unix 时间戳。注意coupon 只能用于新订阅对已存在的订阅无效。prorate配置升级降级如何按天折算用户从 10 元/月的套餐升到 30 元/月的套餐时是否要补差价这就是prorate按比例折算解决的问题。Koudoku 中prorate 默认为true见 lib/koudoku.rb。在变更订阅时该配置会直接传给 Stripe 的update_subscription接口见 subscription.rb让 Stripe 按剩余天数精确计算应收金额。在config/initializers/koudoku.rb中可以调整模板见 koudoku.rbKoudoku.setup do |config| config.subscriptions_owned_by :user config.stripe_publishable_key ENV[STRIPE_PUBLISHABLE_KEY] config.stripe_secret_key ENV[STRIPE_SECRET_KEY] # config.prorate false # 默认 true设为 false 可关闭按天折算 # config.free_trial_length 30 # 全局免费试用天数 endfree_trial_length另一种更简单的试用方案除了 Coupon还可以直接配置全局试用时长config.free_trial_length 30当free_trial_length大于 0 时Koudoku.free_trial?返回 true见 lib/koudoku.rb订阅页面的按钮文案也会自动从「升级账户」变为「开始试用」见 new.html.erb配套文案在 en.yml 中定义。如何选择所有新客都享受 30 天试用 → 用free_trial_length配置最省心特定渠道/活动发放定向优惠 → 用 Coupon 模型灵活可控两种优惠码的区别别混淆 ⚠️方式来源作用subscription.couponKoudoku 自己的 Coupon 模型通过trial_end实现免费试用subscription.coupon_codeStripe 原生 coupon 代码创建客户时由 Stripe 侧应用折扣Koudoku 的 Coupon 与 Stripe 原生优惠码是两套独立机制前者管试用时长后者管 Stripe 侧的折扣码代码位置见 subscription.rb。官方文档也特别提示了这一点见 README.md 的 Using Coupons 章节。常见问题避坑指南1. 支付表单不工作检查布局里是否加入了% yield :koudoku %它负责注入 Stripe.js 脚本。2. 路由 404Koudoku 是 Rails Engine路由需加koudoku.前缀如koudoku.owner_subscriptions_path(user)反过来布局中引用主应用路由要加main_app.前缀。3. 套餐找不到Koudoku 数据库里的Plan只是展示层真正的套餐要先在 Stripe Dashboard 创建再把 Stripe 的 Plan ID 填进stripe_id。4. 想发通知或打日志在Subscription模型中实现模板方法即可例如finalize_new_subscription!Stripe 结算完成后触发、card_was_declined卡被拒时触发完整清单见 README.md 的 Implementing Logging, Notifications, etc. 章节。小结✅ 安装rails g koudoku:install user三步完成接入✅ 30 天试用Coupon.create(code: 30-days-free, free_trial_length: 30)后挂到新订阅或全局配置free_trial_length 30✅ 按天折算prorate默认开启可在初始化工具中按需关闭✅ 记住 Koudoku Coupon管试用与 Stripe 优惠码管折扣是两套机制掌握以上配置你的 Rails 应用就拥有了生产级的免费试用与优惠码能力。赞分享后端【免费下载链接】koudokuRobust subscription support for Rails with Stripe.项目地址https://gitcode.com/gh_mirrors/ko/koudoku点击查看免费下载相关推荐Flood高级功能实战RSS订阅、文件管理、实时监控的终极指南Flood高级功能实战RSS订阅、文件管理、实时监控的终极指南 Flood是一款现代化的BitTorrent客户端Web界面为Deluge、qBittorrIDM试用期重置终极指南30天免费试用一键续期IDM试用期重置终极指南30天免费试用一键续期 还在为IDM试用期到期而烦恼吗这款专业的IDM试用重置工具能够帮助您轻松恢复30天免费试用通过智能的注册表桌面应用Navicat Premium试用期重置终极指南快速恢复30天免费试用 Navicat Premium试用期重置终极指南快速恢复30天免费试用 还在为Navicat Premium试用期结束而烦恼吗这款强大的数据库管理工具开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑