用途:这是一个诊断索引型技能,用于排查 Freemius 与 JS SDK(@freemius/sdk)、React Checkout SDK(@freemius/checkout)集成时的常见故障。资料指出失败通常集中在五处:webhook/重定向链路、SDK 类型与事件、技术栈/移植层、结账与门户接线、密钥与后台配置。
主要能力:以“症状→可能原因→参考文档”的表格形式给出定位路径,并指向 freemius-core、freemius-checkout、freemius-customer-portal 等技能的具体章节。覆盖的典型症状包括:结账完成但用户未获权限(重定向或 webhook 未配置/非公开);webhook 签名校验失败(原始 body 被提前解析);TS 类型错误(如 entitlement 类型不含 lifetime、license.quota.changed 事件在 @freemius/sdk@0.3.0 中不存在);Prisma 7 移除经典 datasource url 需固定 Prisma 6;Vite 中 process.env.NEXT_PUBLIC_* 未定义应改用 import.meta.env.VITE_*;别名未在 vite.config.ts 与 tsconfig 中配置;密钥泄露到浏览器或 401(客户端调用而非服务端);结账浮层空白;升级路由 500(lifetime 许可证不允许更新支付方式,应使用 setLicenseUpgradeByKey);重复订阅/重复扣费;门户 404 或 token 无效;一次性/终身购买行为与订阅演示不同;终身升级后仍被限制(getActive() 只筛 subscription);优惠券导致约百年后续订;取消后无法重新订阅;订阅用户仍见付费墙且 user_fs_entitlement 为空;同步 POST 返回 400 缺少 license ID;付费墙误吞 403/402 门控;缺少独立定价页;购买后文案未按类型分支;OCR 计量后余额显示陈旧;终身/顶级用户看到空白定价页;账户页“更改套餐”样式错位;留存优惠券应用失败;托管结账后 /checkout-result 空白;取消/续订后权益不更新且 webhook 未送达。
使用方式:在表格中匹配症状,打开对应参考文档查看根因与修复;若属于 core/checkout/customer-portal 问题,参考会指回相应技能章节。官方 FAQ 建议:让代理重跑失败步骤,优先端到端验证 webhook 与结账重定向两条关键路径,发布后更新所有 URL(PUBLIC_APP_URL 须为线上域名),一次性购买走不同路径。仍无法解决可联系 support@freemius.com,附产品 id、失败步骤与截图。
适用场景与限制:适用于上述技术栈的 Freemius 集成排错与验证。资料未提供具体版本兼容范围、收费信息或完整代码示例;部分条目依赖特定 SDK 版本(如 @freemius/sdk@0.3.0),实际以所用版本为准。