跳到主要内容

半夜调代码,调得想退单

接单小蒋
接单小蒋

· 阅读约 3 分钟

就是昨天的事。接了个小程序的单,做会员储值那一套,逻辑不复杂,我本来以为加个班能搞定。结果前端支付回调那边一直报签名错误,我他妈查了四个小时。

不是第一次做支付了,熟悉的活儿。但这次甲方不知道从哪找了个第三方支付渠道,说费率低,还给我甩了份官方文档过来。文档一共就一张A4纸的量,扫码回调、服务器异步通知、加签规则写得语焉不详,连个完整的交互时序图都没有。我当时就该警觉的——正规渠道哪这么穷酸。

晚上十一点四十左右开始排查。先说结果:搞到凌晨三点二十,问题出在签名串拼接顺序上。文档里说"按参数名ASCII码升序拼接",没毛病是吧?我也这么写的。但人后端是Java,他那套签名算法里有个字段取的是JSON里value的原始字符串,是数字就按数字拼,不带引号。我这边前端传的是JSON字符串,所有value都带引号。两边签出来的结果能一样就见鬼了。

让我更来气的是,发现问题的一瞬间我就想起来了。去年也给一个客户做过类似的对接,当时也是这种破事。我还在自己的小本本上写过一行字:"下次对接第三方支付先问清楚签名算法里value怎么处理。"本子呢?找不到了。这笔账记不清是哪次搬家弄丢的。以后还是得记在云端。

中间还有个插曲。凌晨一点半那会儿,我媳妇起来上厕所看见我还坐书桌前,迷迷糊糊说了句"还不睡",我说快了。其实那会儿我还在翻报错日志,一条一条看时间戳,看是不是漏了哪条后台通知。那个时间段我甚至想过干脆给甲方发消息说这单不做了,工期退了算了。尾款我都准备退了,真的,那会儿憋屈到那个程度。

但后来还是忍住了。这单三千八,虽然不算大,但沙盒环境里调通了,本质上就是个逻辑问题,真放弃太亏。而且这个点发消息说退单,传出去名声也不好,后面还是有客户会介绍的自己,别因小失大。

最后调通的那一刻其实没那么爽,就是长出一口气,然后很平静地把代码提交了。测试环境跑了一遍,成功透传。截图存好,准备明早起来发给甲方,顺便提一嘴加签规则文档写得有歧义,让他们和那个支付渠道说一声,免得下一个接坑的同行半夜骂人。

对了,那个支付渠道我查了下他们的公司,注册资金五十万。无端端的,就感觉有点玄。写到这想起来冰箱里还有半听啤酒,喝了,三点半了,睡。

辛苦不值得吹,但钱还是得挣——不过能少熬这个夜的话,我更愿意用这个时间赶下一单。真心的。

接单小蒋
接单小蒋

自由职业接外包。技术是工具,交付是本事,账要算明白。

查看主页 →