V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ab11800222
V2EX  ›  程序员

想知道你们在设计短信验证接口的时候,会不会设计一个《动态短信关联码》?

  •  
  •   ab11800222 · 2020-12-23 11:35:58 +08:00 · 2318 次点击
    这是一个创建于 1465 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在写一个快捷协议支付绑卡签约的接口,参考了银联的接口设计,发现他们除了有一个交易流水号来关联一次绑卡请求,还会返回一个《动态短信关联码》,在上送验证码的时候除了交易流水号还要带上这个码。

    想不明白这个动态短信关联码的作用,按理说有了唯一的交易流水号,在上送验证码的时候肯定能根据流水号找到之前那笔请求绑卡的报文,动态短信关联码显得有些多余了,这个码是用来验证什么东西的呢?

    第 1 条附言  ·  2020-12-23 15:08:51 +08:00
    刚参考了下 Google 标准支付短信验证的接口设计,发现他们也会返回一个类似《短信关联码》的标记码,但不同的是,这个标记码只是用于让安卓系统能捕捉到包含这个标记码的短信,并为用户自动输入验证码。在服务端上送验证码的接口只需要上送流水号,不需要再上送这个关联码。

    我大概算是明白这个《动态短信验证码》的作用了。

    在用户界面,如果发起方能严格控制一次只发一个短信,这个码是没用的,因为某一时间只会有一个验证码被发送。
    但是如果不能控制,不小心同时发了多个的时候,用户是不知道哪个对应哪个的,这时候关联码就起作用了。

    之所以有这个问题,是我假设的是发起方能严格控制发送短信,短信验证码是串行地被发送的,不会同时有多个有效的验证码
    9 条回复    2020-12-24 09:24:52 +08:00
    whusnoopy
        1
    whusnoopy  
       2020-12-23 11:40:49 +08:00
    纯猜测,不一定对,欢迎指正

    这个动态关联码是全局的,不仅仅是在这一个验证接口里用到。对于服务端,为了方便在没有流水号的时候做匹配,对于客户,如果同时有多个请求验证码的操作,方便确认是填的哪一个

    某些银行的短信验证码经常会有个两位随机序号,也是方便客户确认是否是自己发起的短信验证码,不然如果有中间人劫持,应该可以干很多黑产的事
    securityCoding
        2
    securityCoding  
       2020-12-23 12:05:01 +08:00
    直觉是安全机制
    ab11800222
        3
    ab11800222  
    OP
       2020-12-23 12:05:48 +08:00
    @whusnoopy
    全局短信服务照顾没有流水号的情况也说得过去,但是有流水号的情况下,还是有点多余。假设同时有多个请求验证码的操作,这些操作都会有自己请求时的流水号,填的时候带上流水号就知道填的是哪个。

    从用户的角度出发,这个关联码对他们来说就更加没有作用了,用户不会校对当前填的是哪个关联码的短信码,在我用过的大厂产品中也极少意识到有这么一个码的存在;
    whusnoopy
        4
    whusnoopy  
       2020-12-23 12:10:27 +08:00
    @ab11800222 照顾没有流水号的情况也要带这个码,我猜是为了多个接口的一致性,即只要有短信验证码一定有这个关联码,而流水号不一定是所有接口都用得上的

    互联网大厂一般都没有关联码,建行工行好像是都有的
    dotw2x
        5
    dotw2x  
       2020-12-23 12:15:30 +08:00 via iPhone
    盲猜:兼容旧系统结构或给其他业务使用👀
    YouLMAO
        6
    YouLMAO  
       2020-12-23 13:21:31 +08:00
    一次绑卡交易可以获取多次验证码的呀, 肯定要知道你是第几次获取的验证码, 后端先校验动态短信关联码, 这个校验不需要交易流水号, 速度快 20 倍, 通过了再去校验交易流水号, 这个校验全球交易是五地五中心, 有点慢的
    leekafai
        7
    leekafai  
       2020-12-23 15:41:09 +08:00
    交行 app 就有,发给你的码会有两个,一个填写验证,一个对应 app 上面的显示序号
    win7pro
        8
    win7pro  
       2020-12-24 09:19:45 +08:00
    方便描述“哪个验证码”。
    draguo
        9
    draguo  
       2020-12-24 09:24:52 +08:00
    工行的也有,手机信号不好的时候确实会出现收到两条验证码的情况,这时候确实不好区分哪个才是新的。但是让人区分这个的难度太大了,还是只有一个验证码比较好,有两个估计会有一些人把序号当作验证码填进去
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   957 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:34 · PVG 06:34 · LAX 14:34 · JFK 17:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.