最近在写一个快捷协议支付绑卡签约的接口,参考了银联的接口设计,发现他们除了有一个交易流水号来关联一次绑卡请求,还会返回一个《动态短信关联码》,在上送验证码的时候除了交易流水号还要带上这个码。
想不明白这个动态短信关联码的作用,按理说有了唯一的交易流水号,在上送验证码的时候肯定能根据流水号找到之前那笔请求绑卡的报文,动态短信关联码显得有些多余了,这个码是用来验证什么东西的呢?
1
whusnoopy 2020-12-23 11:40:49 +08:00
纯猜测,不一定对,欢迎指正
这个动态关联码是全局的,不仅仅是在这一个验证接口里用到。对于服务端,为了方便在没有流水号的时候做匹配,对于客户,如果同时有多个请求验证码的操作,方便确认是填的哪一个 某些银行的短信验证码经常会有个两位随机序号,也是方便客户确认是否是自己发起的短信验证码,不然如果有中间人劫持,应该可以干很多黑产的事 |
2
securityCoding 2020-12-23 12:05:01 +08:00
直觉是安全机制
|
3
ab11800222 OP @whusnoopy
全局短信服务照顾没有流水号的情况也说得过去,但是有流水号的情况下,还是有点多余。假设同时有多个请求验证码的操作,这些操作都会有自己请求时的流水号,填的时候带上流水号就知道填的是哪个。 从用户的角度出发,这个关联码对他们来说就更加没有作用了,用户不会校对当前填的是哪个关联码的短信码,在我用过的大厂产品中也极少意识到有这么一个码的存在; |
4
whusnoopy 2020-12-23 12:10:27 +08:00
@ab11800222 照顾没有流水号的情况也要带这个码,我猜是为了多个接口的一致性,即只要有短信验证码一定有这个关联码,而流水号不一定是所有接口都用得上的
互联网大厂一般都没有关联码,建行工行好像是都有的 |
5
dotw2x 2020-12-23 12:15:30 +08:00 via iPhone
盲猜:兼容旧系统结构或给其他业务使用👀
|
6
YouLMAO 2020-12-23 13:21:31 +08:00
一次绑卡交易可以获取多次验证码的呀, 肯定要知道你是第几次获取的验证码, 后端先校验动态短信关联码, 这个校验不需要交易流水号, 速度快 20 倍, 通过了再去校验交易流水号, 这个校验全球交易是五地五中心, 有点慢的
|
7
leekafai 2020-12-23 15:41:09 +08:00
交行 app 就有,发给你的码会有两个,一个填写验证,一个对应 app 上面的显示序号
|
8
win7pro 2020-12-24 09:19:45 +08:00
方便描述“哪个验证码”。
|
9
draguo 2020-12-24 09:24:52 +08:00
工行的也有,手机信号不好的时候确实会出现收到两条验证码的情况,这时候确实不好区分哪个才是新的。但是让人区分这个的难度太大了,还是只有一个验证码比较好,有两个估计会有一些人把序号当作验证码填进去
|