你还以为短信验证码很简单吗?

昨天看到一个网站的短信发送功能,我诧异于这个产品经理的心大,也诧异于这个通道商的胆大,短信发送界面居然没有图形验证码就可以点击发送短信了,并且点击发送短信也就算了,居然还没有时间频率限制。好吧,就着这个事情我把历史做过的短信验证码功能复盘一下。


短信验证码的功能主要是为了方便客户,也便于平台获取客户真实有效的联系方式,也是平台积累客户属性的一种方式。常规的短信验证码发送必须在前端具备三要素,手机号、图形识别码、发送按钮。这里仅谈PC版,手机版虽然使用方式不一样,但是这个要素也是经过转化必须的。


先谈图形识别码的必须性,图形识别码在大部分的通道商都有硬性的要求,这个是为了防止机器人点击造成的资源浪费。比方说技术可以通过手段进行模拟点击,如果你有验证码就能在发送前屏蔽掉一些恶意的攻击,如果没有那就可以刷爆这个短信通道了,虽然发送的信息是你指定的,但是你想一下,如果在10分钟内把你在通道商预存的费用全部刷光,你是不是想哭。虽然这点对于用户体验比较不友好,毕竟有个障碍在这里,但却是为了更好的保护平台方的利益,两害相较取其轻嘛。

其次,发送按钮的间隔就是一个体验问题了,由于客户的网络或者误操作的原因造成的多次点击,那平台还发送多次短信给客户,这不利于客户的理解,就有必要在单次点击后暂时限制住客户的点击行为,通过一个交互给客户一个已经发送的反馈。其实,这也是一个保护平台方利益的方式,避免重复发送。

再次,这里可能有个小隐患,有些开发同学可能会在客户点击以后,将图形验证码的值回传给页面,在页面点击提交的时候进行校验,这样就不需要再次在后端进行验证码校验,这里就是一个安全问题,如果是通过接口的方式,那黑客就可以进行解析,相当于绕过了图形验证码的验证意义,所以,还是需要将图形码的值放在后端进行校验才行。

前端页面的表象说完了,我们来谈谈冰山后面的事情。


短信发送是需要有人来发的,这里可以是通讯运营商,也可以是代理商,还可能是通道服务商,按公司接入的短信量来进行设计,大部分的公司可能就只是接入两家通道商,如果默认的通道发现发送失败就自动转入备选通道,如果两条通道都失败,那就不发了,通知人工处理。我们这里往大的方面去设计一下,如果你在使用多家通道商的短信发送功能,那如何进行数据流转呢?首要的你需要进行一个发送次数的判断,目前运营商这边针对单一通道设置了单日最多发十条的限制,可是我们服务商可以通过切换通道的方式去发送短信绕开这个限制,但是某些服务商只是单一通道,那切换通道就在平台这边进行了,而为了保证用户收到短信的最大效率,我们还需要有最后的一个救济方式:语音短信。这就是我们说的到了预警阈值就需要在终止发送短息前给最稳定的一个方式。由于我们多家通道商,我们也是需要评估通道商的服务质量的,在系统运行一段时间后就可以得出哪些号段哪个运营商发送的比较稳定,发送时间较快(用户点击发送的次数较少),或者这个号码在通道商那边是否已经列入黑名单(已经回复过TD的将无法接受该通道的短信内容),以及一些成本核算时发现支出率较低的通道,根据这些进行指标选择发送给不同的用户,也可以采用投放策略的方式来管理发送的地域范围或者号段范围,这个具体设计的时候留心即可。这里我只是抛砖引玉一下,其实后面的这些功能完全可以成为一个独立的系统,相同类似的可能有支付、商品、供应链等,这里就不展开了,希望大家能多想想后续的衍变。

多家通道商的质量评估,这个可是产品经理必须具备的素养哦,千万不能完成功能就放手前进了,要多记得戴明环的应用哦,后台产品经理干的就是冰山一角后的所有事情。

你可能感兴趣的:(你还以为短信验证码很简单吗?)