收入Stripe
测试与排查 Stripe 归因
分别验证 Stripe 事件投递、付款记录和会话归因。
先完成通用付款测试配置,再测试产品实际使用的 Stripe 结账路径,不要只发送通用网络回调样例。
最小测试矩阵
| 场景 | Talivia 预期结果 |
|---|---|
| 单次结账会话 | 一笔匹配到结账会话的已付付款 |
| 直接付款意图 | 一笔以 pi_... 编号为键的付款 |
| 付款链接 | 通过 client_reference_id 或返回网址匹配 |
| 延迟付款方式 | 异步成功前不记录收入 |
| 注册订阅 | 一笔首次付款和一个有效订阅 |
| 订阅续费 | 一笔关联到原始客户的续费 |
| 账单失败 | 订阅生命周期变化且不记录已付收入 |
| 全额或部分退款 | 保留原始付款并减少净收入 |
| 争议 | 将争议状态关联到原始付款 |
| 重复或乱序事件 | 不重复付款 |
连接成功但没有出现付款
检查 Stripe 控制台中网站端点的网络回调投递。相关成功事件必须是以下之一:
checkout.session.completed或checkout.session.async_payment_succeeded;- 直接付款意图的
payment_intent.succeeded; - 账单的
invoice.paid或invoice.payment_succeeded。
确认事件与 Talivia 中连接的受限密钥属于同一测试或正式模式。
付款出现但未归因
检查流程使用的 Stripe 对象:
- 结账会话:
metadata.talivia_session_id; - 直接付款意图:
metadata.talivia_session_id; - 订阅:
metadata.talivia_session_id; - 付款链接结账会话:以
s_开头、类似 Talivia 会话的client_reference_id; - 返回页面:
?session_id=cs_...和正常运行的 Talivia 追踪器。
如果元数据缺失,请确认后端创建结账前 window.talivia.getSessionId() 已返回值。
付款链接未添加参数
自动添加参数要求普通锚点的主机名是 buy.stripe.com。Talivia 会保留已有 client_reference_id。自定义域名、程序化跳转或已有商户引用请配置带 {CHECKOUT_SESSION_ID} 的已追踪返回网址。
续费未归因
确认首次订阅付款已归因,后续账单使用同一 Stripe 客户。注册时添加 subscription_data.metadata,并在身份验证后使用 Stripe 客户编号调用 window.talivia.identify。
退款未生效
确认 Talivia 已导入原始付款,而且成功退款引用了相同的 Stripe 付款意图或扣款编号。成功退款无法匹配时,Talivia 会返回错误且不会把该网络回调事件标记为已处理,这样 Stripe 可以在原始付款可用后重试。
重新连接 Stripe
粘贴更新后的受限密钥时,Talivia 会协调现有 Stripe 网络回调网址和事件列表,而不是创建重复端点。如果原始连接早于托管端点编号功能,首次更新会创建并保存新的托管端点。