这应该是 “将错就错 ”的典型例子,很好奇前期居然没人发现,逼死强迫症

2018-02-03 18:03:28 +08:00
 odirus

这两天在对接微信支付的提现功能,发现返回状态中有一个扎眼的类型:RFUND_ING (为什么不是 REFUND_ING 呢?)

因为不确只是文档错了,还是接口本来就返回这个状态,有点担心后期程序会出现 BUG。但这个状态很难捕捉,因为从 "退款中 -> 退款成功" 之间的间隙很短,调试阶段基本复现不了。

所以只能去看别人的代码,然后确定微信支付返回的状态 RFUND_ING 没写错,虚惊一场

这个应该就是典型的 将错就错 例子了吧?

文档地址: https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_6&index=5

分享出来,避免以后采坑,主要是因为这个功能是对接支付系统,涉及到钱,稍后不慎就后患无穷。

2849 次点击
所在节点    分享发现
8 条回复
orangeade
2018-02-03 18:11:26 +08:00
看标题就想到了 HTTP 的 referer
chnhyg
2018-02-03 18:24:53 +08:00
// 最好解释下为什么这么做,避免后人擅自改成 refund_ing。
if (status == refund_ing or status == rfund_ing)
{
}
odirus
2018-02-03 18:29:46 +08:00
@orangeade 哦,原来这个也算是呐
odirus
2018-02-03 18:30:09 +08:00
@chnhyg 我觉得还是注释好一点吧,多写了一个反而误导人
chnhyg
2018-02-03 18:36:25 +08:00
@odirus 😂 宽容处理,接受两种值。
secondwtq
2018-02-03 20:46:17 +08:00
一个封闭的垄断系统,算什么典型例子
http://stackoverflow.com/questions/8390979/why-create-system-call-is-called-creat c - Why create system call is called creat? - Stack Overflow 私以为这个才是最典型的
zingl
2018-02-04 02:38:38 +08:00
强迫症居然可以接受 ING 前面加个下划线
dangyuluo
2018-02-04 09:19:54 +08:00
我记得 VB 有个函数,返回的因该是 Boolean,但是不知道是遗留问题还是什么,居然是"TRUE"和"FALSE"两个字符串
哪位能记住是什么函数的,拜托帮忙告诉下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/428235

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX