<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0.1">
	<node TEXT="Webhook 与会员状态：支付成功后发生什么">
		<node TEXT="阶段：收款商业化 · 2-3 小时" POSITION="right" />
		<node TEXT="学习目标" POSITION="right">
			<node TEXT="把订单、订阅、权限、失败扣款、取消和退款状态设计清楚。" />
			<node TEXT="画出订单状态机，并列出必须处理的 webhook 事件。" />
			<node TEXT="适合阶段：收款商业化" />
		</node>
		<node TEXT="执行步骤" POSITION="left">
			<node TEXT="区分一次性订单和订阅订单。" />
			<node TEXT="记录支付平台的 customer、subscription、invoice ID。" />
			<node TEXT="支付成功后只更新权限，不在前端凭跳转判断。" />
			<node TEXT="处理取消、退款、失败扣款和过期。" />
		</node>
		<node TEXT="交付物" POSITION="right">
			<node TEXT="完成：订单表" />
			<node TEXT="完成：订阅表" />
			<node TEXT="完成：权限字段" />
			<node TEXT="完成：Webhook 事件" />
			<node TEXT="完成：幂等处理" />
		</node>
		<node TEXT="常见坑" POSITION="left">
			<node TEXT="不要把“我觉得有用”当成需求成立，至少要看到用户愿意回复、试用、付费或付出迁移成本。" />
			<node TEXT="不要一开始就追求完整系统，先找最短路径拿到用户行为数据。" />
			<node TEXT="不要只记录结论，要保存原始聊天、截图、表格和关键链接，后面复盘时会用到。" />
		</node>
	</node>
</map>