Stripe 已保存银行卡的四类可更新字段
在 Stripe 更新一张已保存的银行卡,能直接改的只有四类信息:持卡人姓名、账单地址、到期日和 metadata。其余任何更改,按文档给出的规则,都要先删除这张卡再新建一张,不能在原记录上直接编辑。
用一次账单地址变更来组织判断
假设用户告诉你,绑卡时填的账单地址有误,或者他搬家后地址变了,你需要判断这次变更该在原记录上更新,还是删掉重建。账单地址正属于上面四类可更新字段,因此这类变更直接在已保存的卡上更新即可,不需要删除重建。
把同样的判断方式套到其他字段上,结论取决于它是否落在四类清单之内:
- 持卡人姓名:改名或纠正拼写,属于可更新字段,直接改。
- 账单地址:如上例,属于可更新字段,直接改。
- 到期日:属于可更新字段,直接改。
- metadata:你附加在这张卡上的自定义信息,属于可更新字段,直接改。
只要变更落在这四类之内,就在原记录上更新。落在四类之外,文档的规则是:要做其他任何更改,必须删除该卡并新建一张。这是一条边界规则,它不逐项列举哪些变更算“其他”,而是把四类可更新字段之外的所有情况统一归入删除重建这一条路径。因此判断时不必去猜某个具体变更属于什么性质,只需对照它是否在四类清单里。
这条规则的适用范围
上面的边界规则针对的是“更新一张已保存的卡”这一操作。文档没有为四类之外的字段提供编辑入口,也没有解释删除重建在系统内部如何处理、旧记录与新记录之间如何衔接。判断一次变更该走哪条路,依据就是字段清单本身,而不是对底层机制的推测。
如果希望用户在你自己的产品里自助更新或替换已保存的卡,需要实现相应流程,让用户能够手动更新和替换他们保存的卡。Stripe 提供更新与删除新建这两类能力;哪些字段走更新、哪些走删除重建,由你的产品流程按上面的字段清单来实现。
操作顺序小结
- 确认这次变更涉及哪些字段。
- 字段全部落在姓名、账单地址、到期日、metadata 之内,就在原记录上更新。
- 有任何字段落在四类之外,就删除旧卡并新建一张。
按这个顺序判断,可以避免把本应删除重建的变更当成普通字段更新来处理。