v2.0.0 · Features
阅读约 2 分钟
基于 Stripe 的订阅系统,支持月付和年付 Pro 套餐
问题
基于 Stripe 的订阅系统,支持月付和年付 Pro 套餐
痛点
Features
解决方案
Pro 订阅与定价
• 基于 Stripe 的订阅系统,支持月付和年付 Pro 套餐
• 全新定价抽屉,支持计费周期切换和套餐对比
示例
• 集成 Stripe Customer Portal,便于管理现有订阅
• 兑换码系统,可赠送 Pro 权限,支持配置有效期和使用次数
• 管理员 Edge Function,可批量生成兑换码
AI 智能功能(Pro)
• AI 模板推荐 — 分析旅程数据,自动推荐最佳回放模板
• AI 字幕生成 — 为每个路径点生成简短而富有表现力的描述
• AI 功能用量追踪,支持按用户限流
回放模板与自定义
• 模板系统,内置五种风格:极简、Vlog、电影感、旅行日记、夜间模式
• 模板选择器 UI,配置阶段支持实时预览
• 完整自定义选项:滤镜、转场、音乐、片头样式、文字叠加
• CSS 滤镜引擎,支持强度调节(复古、暖色调、冷色调、黑白、胶片、电影感)
• 转场引擎,支持淡入淡出、滑动、缩放、翻转效果
• 统计卡片叠加层,展示旅程距离、时长和照片数量
• 文字叠加层,支持为每个路径点自定义字幕
Supabase 后端
• 完整数据库架构:用户资料、订阅、订阅提供商、兑换码、兑换记录、用量追踪
• 所有表均配置行级安全策略
• Stripe Webhook 处理器,覆盖订阅全生命周期事件
• 七个 Edge Function:结账、门户、Webhook、兑换码、AI 字幕、AI 推荐、管理员代码生成
Bug Fixes
• 修复 `usage_tracking` 因缺少 RLS INSERT 策略导致插入静默失败的问题
• 修复 `ReplayIntroOverlay` 在 `introStyle` 为 `'none'` 时渲染阶段产生副作用的问题
• 修复 `AudioManager.pause()` / `fadeOutAndStop()` 竞态条件,新的 `play()` 调用可能被过期的定时器终止
• 修复兑换码因非原子递增导致可重复兑换的问题 — 现使用 Postgres RPC 实现行级锁定
• 修复 `VITE_DEBUG_PRO` 缺少生产环境保护 — 现仅在 `import.meta.env.DEV` 下生效
• 修复 Stripe Webhook HMAC 验证使用易受时序攻击的 `===` — 已替换为 `crypto.subtle.timingSafeEqual()`
• 修复 `confirmConfig()` 中 `loadTrack()` 未等待完成导致音频静默失败的问题
• 为 `subscriptions.user_id` 添加 `UNIQUE` 约束,防止重复行
• 将所有 Edge Function 的 CORS 从通配符 `*` 限制为允许的域名列表
• 修复 `subscription.ts` 绕过已验证 `env` 对象直接读取 `import.meta.env` 的问题
• 为 `fetchProfileAndSubscription` 的异步调用添加 `.catch()` 防止未处理的 Promise 拒绝
• 修复 CSS 滤镜强度因正则不完整导致忽略 `hue-rotate(Xdeg)` 值的问题
• 在结账函数中添加 Stripe `priceId` ��配置价格 ID 的验证
• 当 Stripe 价格 ID 未配置时,向用户显示错误提示
• 修复 Stripe Portal URL 被无限期缓存的问题 — 现每次获取新会话
• 在两个 AI Edge Function 中添加 OpenAI 响应验证
• 修复 `AudioManager.dispose()` 未清除单例实例的问题
• 修复 `useVideoRecorder` 中自动停止定时器在清理时未被取消的问题
• 修复兑换码输入框按 Enter 键绕过加载状态检查的问题
• 将脆弱的 `plan.startsWith('pro')` 替换为显式套餐列表匹配
• 在管理员代码生成中添加 `duration_days`、`max_uses` 和 `plan` 的输入验证
决策阶段关注点:可信度、迁移成本、结果确定性
Bottom 阶段用户已经在比较方案,真正关心的是“值不值得切换”和“能不能稳定产出”。
这时文章应聚焦决策维度:上手时间、替换成本、结果可控性,而不是泛泛功能列表。
围绕关键词“locusify 更新”应明确你的差异化判断标准,帮助读者快速做选择。
比较框架与验证方法
建议用同一份真实素材进行并行测试,并记录三项指标:完成时间、修正次数、最终可发布质量。
可参考主流程:Pro 订阅与定价 • 基于 Stripe 的订阅系统,支持月付和年付 Pro 套餐 • 全新定价抽屉,支持计费周期切换和套餐对比。如果对比文章只停留在主观体验,转化说服力会很弱。
把结论写成“适用人群 + 场景边界”,而不是绝对优劣,更容易建立信任。
Bottom 转化动作
文末要给明确动作:下载试跑、导入真实素材、导出首个版本。动作越具体,决策推进越快。
同时保留风险说明与替代路径,能降低用户的心理防御,反而提升实际转化。
对于品牌词内容,相关文章应优先链接教程页与案例页,形成“比较 -> 试用 -> 复盘”的闭环。
目标关键词
如果这个更新解决了你的流程问题,下一次旅行素材可以直接试用。
用你的旅行照片试试 Locusify常见问题
什么是“locusify 更新”最实用的开始方式?
先用一段最近旅行素材跑通完整流程:导入照片、校验时间线、修复异常点、导出短版本。先完成,再优化。
如果照片里有缺失 GPS 信息怎么办?
可以先按有坐标素材生成主路线,再把无坐标照片作为补充素材放在章节节点,不要强行参与轨迹连线。
如何让输出内容更适合社交平台传播?
优先短时长和清晰节奏:开场总览、关键节点、结尾收束,同时按目标平台画幅导出,减少二次裁切损耗。
Locusify 在这个流程里适合什么场景?
如果这个更新解决了你的流程问题,下一次旅行素材可以直接试用。