H7.04.1payment method switch state设计研究
方式切换不应丢失订单信息
别名: 切换支付方式 · 支付草稿 · payment method switch
概念解释
结算里换一种支付方式(卡换成钱包、货到付款换成即时支付)时,地址、商品行、已选优惠、备注这些订单信息必须还在。丢失指的是切换导致重进结算、车被清空、券被释放、已填卡号以外的字段被抹掉。卡号本身因安全不能在方式之间搬运,那不是丢失;把收货人和商品一起扔掉才是。
机制
支付方式在心智上是「怎么付钱」,订单是「买什么、送到哪」。技术上它们常被做成不同会话:每个渠道要一次下单、一次锁券、一次跳转。若切换等于取消原单再开新单,后端图省事,前端就表现为整页刷新。人已经填完的内容在工作记忆里只有一份,重建成本极高,切换被体验成惩罚,于是将就使用默认方式,哪怕失败率更高。优惠券一旦因取消而释放,可能被别人抢走或过期,切换的代价从麻烦变成损失。
怎么研究
让人填完地址和一张券,再在支付步骤改方式,比较「原地切换」与「重开结算」。
自变量:切换是否重建订单、券与库存锁是否保留、非卡字段是否还在、是否整页刷新。 因变量:切换后字段完整率、放弃、改回原方式、因券丢失的投诉。
实验室用假券看不出「被抢走」;要用会过期或限量的券。不要把跳转渠道再返回的丢失,和同一页单选切换的丢失混在一个指标里——前者有渠道约束,后者是本站状态机。
边界
跳到银行或钱包 App 之后,渠道页上的返回可能丢掉渠道侧会话,本站仍应保住订单草稿。某些渠道要求提交前锁定方式,切换必须作废支付意图;作废的是支付意图,不应作废地址。拆分支付时改其中一笔方式,另一笔已授权金额的处理按拆分规则,不能简单套「整单切换」。游客会话过期后本来就没有可保的草稿。
怎么落地
- 把订单草稿与支付意图分成两个对象:切换方式只作废未完成的支付意图,草稿(行、地址、券、备注)保留。
- 切换在本页完成,不要踢回购物车;若必须重新锁券,先检查原券是否仍可用,不可用再提示换券而不是静默去掉。
- 从渠道返回失败时回到同一结算摘要,而不是首页。
- 验证:填满结算后依次换三种方式,核对商品、地址、券是否仍在;再从模拟的渠道失败返回,确认没有回到空车。