06 · 开发 · 供应商协同

供应商在微信里点了提交,采购单还没生成

小程序工程师处理微信里的外部用户:登录、订阅消息和审核都不等于业务已经完成。一次性链接归 H5,离线队列归移动端。

手机上的小程序界面

供应商:我昨晚点了提交,怎么采购说没看见?

小程序:页面在本地校验通过后就显示成功。服务端没返回单号,就不能算提交成功。

小程序工程师处理的是微信里的外部用户

供应商、门店店长、司机不一定有后台账号。小程序工程师让他们在微信里完成约定的动作,同时接受平台限制:登录方式、订阅消息要用户授权、包体积、审核周期。岗位特点是不把平台能力误当成业务完成。订阅消息没弹出,不代表单据失败;弹出了,也不代表对方已经处理。业务完成只看服务端单号和状态。

外部用户的身份要比内部更严。一个微信号可以绑定哪家供应商,由采购在后台确认,不由用户自填公司名。自填会造成串单。手机号变更、人员离职,要能解绑。解绑前他名下未提交的草稿如何作废,要写清楚,不能留在下一任的列表里。作废要有记录,否则供应商会说采购删了他的预约。小程序工程师把绑定、解绑、作废做成可查询的流水,而不是在数据库里直接改掉关系。

弱网和审核窗口

供应商常在仓库外用手机提交送货预约。小程序工程师要做请求号和明确的成功页:成功页必须出现单号,失败页必须可以用同一张单重试。没有单号的绿色对勾是事故。版本发布受审核影响时,他要让旧版本的关键接口继续可用,不把预约停在审核那几天。紧急修复如果过不了审核,就要有 H5 或后台的备用入口,并且备用入口走同一套服务端规则。

预约单的假成功

上线第一周,三家供应商声称已经预约,采购列表为空。日志里请求没有到达。页面在本地校验通过后就显示了成功,网络错误被吃掉。小程序工程师改为:只有返回单号才进入成功页;失败保留已填数据;列表增加「待确认上传」。采购按单号才能看见预约。之后用飞行模式复测,不再出现无单号的成功。

消息通知只负责提醒采购有新单,不负责把状态从草稿改成已确认。确认仍是采购在系统里的动作。订阅消息授权被拒绝时,小程序仍要能在列表里看见预约状态。授权不是业务成功的前提。他把「没弹出通知」和「没有单号」写成两种完全不同的提示,避免供应商以为通知没来就是单没生成,于是再提交一次。供应商变更手机号时,旧号码名下的草稿要保留单号给采购查询,但不能继续提交。继续提交会让一个已经离职的人还能影响预约队列。

审核被拒时,小程序工程师看的是哪一句业务文案触发了平台规则,而不是先把预约流程改掉。业务文案可以调整,提交必须返回单号这条不能为了过审拿掉。过审的版本如果没有单号,上线比审核失败更糟。

审核窗口里旧版本的预约接口必须继续可用。紧急修复过不了审核时,H5 或后台备用入口走同一套服务端规则。解绑前未提交的草稿作废要有记录,不能留在下一任列表里,也不能在数据库里直接改掉绑定。作废流水可查,否则供应商会说采购删了他的预约。一次性链接仍归 H5,离线队列仍归移动端。本岗只处理微信里的外部用户,以及平台能力不等于业务完成这件事。

回到时间线

外部的人必须在微信里完成哪一步

那一步要有单号,不能只有提示。