Waffo 会给我的订阅者发哪些邮件?
六封,每封都有独立的开/关开关——所以你的账户可以启用任意子集:
第六行是大多数集成会漏掉的。如果你已经在自己给客户发价格变更邮件,请在发送之前确认你的账户是否启用了订阅已变更邮件。
每一封具体什么时候触发?
六封里有三封是事件驱动的,在事件发生后片刻内送达。两封由每日任务执行,因此落在一个窗口内而不是精确的偏移量。一封由你自己的 API 调用同步触发。
由于两封提醒邮件由在前瞻窗口上运行的每日任务驱动,请把它们的偏移量当作近似值。不要在其上构建诸如「您将在恰好 N 小时前收到通知」的对客承诺,
也不要把它们当作你自己排期的时钟。
支付失败邮件真的每次失败都会发吗?
不是,而且假设它会发将让你的去重逻辑出错。它在两种情况下被抑制:- **首期失败不发。**首次扣款就失败的订阅不会给客户产生任何失败邮件。如果你希望此时告知客户,那要由你来做。
- **既非最终尝试、也不属于基于间隔的重试计划的尝试不发。**实际上这意味着立即执行的备用支付方式尝试是静默的;不会每试一张备用卡就给客户发一封邮件。
订阅已变更邮件由什么触发,里面有什么?
由你自己对订阅 update API 的调用触发,当它改变了周期金额、试用金额或按期计划金额中的任何一项。它与该调用同步发送,而不是由任务发送。 邮件告诉客户金额原来是多少、现在是多少,以及新金额从哪一期开始适用。如果你修改了按期计划,则会同时包含旧计划和新计划。 值得在设计时考虑的两个后果:- 套餐变更(通过 change API 升级/降级)是另一种操作,不会触发这封邮件。见订阅 FAQ中 change/update 的区别。
- 因为触发源是你的 API 调用,对同一订阅快速连续地批量执行多次 update 可能产生多封邮件。每一个你想让客户看到的变更只调用一次 update。
这些邮件是什么语言?
收件人的语言按以下顺序解析:- 你在订阅上指定的收银台语言(如果设置了)。
- 否则,从订阅的
userCurrency推导——即客户实际被扣款的币种。 - 如果两者都得不出受支持的地区语言,则为英文。
userCurrency 决定语言。**如果你客户的语言与计费币种不一致——比如一位以本地币种计费的英语客户——
请在订阅上显式设置收银台语言,而不要依赖推导。
同一地区语言也会应用到邮件内的订阅管理链接,所以客户打开的页面语言一致。
我能自己编辑模板,或者单独关掉某封邮件吗?
不能从商户 Portal 操作。在当前版本:- 六个开关由 Waffo 为你的账户配置,不是自助的。告诉你的 Waffo 对接人六封中你想开哪些、哪些你更愿意自己负责。
- 模板本身不可由商户编辑。会体现的是你的品牌——你的商户名称以及你为收银台配置的 logo/外观会应用到邮件上,所以邮件不是无品牌的。
怎么避免 Waffo 的邮件和我自己的邮件重复?
对照上表,为每个事件选定一个负责方。可靠的做法:
不要试图通过把你的邮件卡在 Waffo 邮件前后的时间点来压制它——两封提醒邮件落在一个窗口内,而不是固定的偏移量。
每封客户邮件对应哪个Webhook 通知?
每封客户邮件都有一个你可以据以行动的服务端对应物,这正是「关掉邮件、自己发」这一模式可行的原因:
两封提醒是没有Webhook 通知对应物的,因为它们是预测而不是事件。如果你想按自己控制的偏移量发提醒,就从订阅本身计算。
客户说从没收到邮件,我该查什么?
按这个顺序——前三项覆盖了几乎所有情况:- **你的账户开了那个开关吗?**六封都是独立配置且由 Waffo 设置的,所以你以为开着的邮件可能并没有开。这是第一件要确认的事。
- **是不是被抑制的情况之一?**首期失败不发失败邮件,备用支付方式尝试也不发。首次扣款就失败的客户什么都没收到是正常的。
- **时机和你假设的一样吗?**两封提醒邮件来自在前瞻窗口上运行的每日任务,所以「没有在我假设的精确偏移量到达」是预期行为,不是邮件丢失。
- **语言是客户预期的吗?**语言出乎意料的邮件有时会被报告为「没有邮件」。检查订阅的
userCurrency以及你是否设置了收银台语言。 - **事件本身真的发生了吗?**对照上面对应的Webhook 通知确认——如果订阅从未到达
ACTIVE,就不存在要找的激活邮件。
订阅计费历史返回什么?
两种不同的视图,选错是常见的集成错误。 商户查询 API 返回一组刻意精简的按期字段。在订阅查询上传paymentDetails=1 即可获取:
注意没有的内容:没有试用标记、没有用户币种或用户金额、没有期开始/结束日期、没有失败码。如果你需要这些,你需要订单本身——按
acquiringOrderId 查询。
你的客户看到的托管订阅管理页面渲染更丰富的按期行,包括试用标记、两组币种/金额、期开始和结束、绑定支付方式的掩码卡信息和有效期、
收据链接,以及面向客户的失败原因。该视图是给客户看的;不要把它当作 API 接口。