[START] ↓ [前端发起兑换] | (点击“兑换 100 Stars”按钮,调用 /api/points/exchange) ↓ [生成支付账单] | (机器人发送发票到 Telegram:100 Stars = 1000 Points) ↓ [用户支付 Stars] ----(支付失败)----> [支付失败] | | | | (通知用户:兑换失败) | ↓ | [结束] ↓ [确认支付] | (机器人收到 successful_payment) ↓ [更新积分余额] | (增加 1000 Points,记录交易) ↓ [生成通知] | (SYSTEM 类型:你兑换了 1000 点积分!) ↓ [兑换成功] | (通知用户:兑换成功,跳转 /points) ↓ [结束]