上个月接了个小活,朋友介绍的,一个本地卖手作茶器的店,要个下单页,带短信验证码登录。报价的时候我在脑子里过了一遍流程:表单、验证码、跳转,两天吧,报了两千八。现在回头看,两天是我嘴上说的,实际花了四天半,其中三天在跟文档较劲。
坑不在短信本身。短信那家服务商是国内的,中文文档,我半小时就连通了。坑是店主后来说,对了我们还要发优惠券,下单以后自动发,能不能做。我说能,加个 webhook 就行。
Webhook 这个词我见过,没见过活的。
回去翻那家的文档,全英文。callback 和 webhook 两个词在同一个页面里来回跳,我以为是一回事,查了下词典,callback 直译是“回调”,webhook 直译过来是“网络钩子”(??这什么翻译)。我按 callbak 的思路写了个接口,把地址填进去,等了半天没反应,日志干干净净,一个请求都没有。
后来去问 AI,它说这俩不是一回事,webhook 是对方的服务器主动往我这边发,callback 是我这边调过去。大概是这个意思。我方向搞反了。改完真的有请求进来了,但 body 里的 sign 一直校验不过。文档写签名是 HMAC-SHA256,我算出来死活对不上,最后发现 secret 要放在 header 里,我读的太快,把它当成 body 的一部分了。那行字夹在一大段英文中间,我第一遍扫过去根本没看见。
真正让我破防的是本地测试。webhook 得对方服务器能打到我这来,我本地 localhost,人家打个屁。查了半天,说得用内网穿透,工具装是装了,配置说明又是英文,我还是没舍得逐句读,照着示例抄了个命令,端口写错,折腾四十分钟。
这些我在报价的时候一个都没算进去。
也不是说我亏了多少钱,其实细算下来多花两天,两千八还是两千八。是那种感觉——我报价是按“我知道怎么做”报的,真做的时候是“我以为我知道”。这两者之间的差价,是拿我自己的晚上补的,补完还得跟店主说快了快了。
以后接活,我打算先花一个小时把要接的东西的文档过一遍再开口。这一个小时不算钱,但能省三个晚上。
今日单词:webhook,网络钩子,第一次见,估计还得再查四次。