想让短信验证码自动填充生效,要两头一起做:短信模板里验证码的写法要让手机系统认得出来,App 或网页的输入框也要告诉系统“这里要填验证码”。只做一头,经常出现有的手机能填、有的手机不能填的情况。
常有做会员系统的客户找过来,说测试同事的苹果手机能自动带出验证码,安卓手机却一直不行,怀疑是短信通道有问题。查下来通道没毛病,是模板里验证码被夹在一长串活动说明中间,安卓端的识别没抓到。这类问题很典型,下面分开讲。
验证码自动填充的大致原理
手机系统收到短信后,会在本地判断这条短信是不是验证码短信。判断依据大致是:内容里有没有“验证码”“校验码”这类字眼,有没有一串独立的数字。识别出来之后,当用户正在一个“验证码输入框”里时,系统就在键盘上方给出建议,点一下就填进去。
所以自动填充本质上是系统行为,短信平台和开发者能做的,是把短信写得“好识别”,把输入框标得“好匹配”。各系统的识别规则会随版本更新调整,具体机制以苹果和谷歌的官方开发文档为准,下面讲的是我们项目里验证过的通用做法。
短信模板怎么写,自动填充才容易识别
模板写法是最容易改、也最常被忽略的一环。我们给客户的建议是:
- 句子里直接出现“验证码”三个字,别写成“动态码”“口令”这类不常见的叫法;
- 验证码用纯数字,常见是 4 到 6 位,数字前后留空格或用标点隔开,不要和其他数字连在一起;
- 验证码尽量放在短信前半段,紧跟在“验证码”后面;
- 不要在同一条短信里放订单号、金额、电话等其他长数字,系统可能会抓错;
- 整条短信保持简短,别夹带营销内容。
一个比较稳妥的示例:
【蔚岚科技】您的验证码为 386512,5分钟内有效,请勿告诉他人。
反面例子是把验证码放在最后,前面先写一段“感谢注册,新人礼包已到账……”,这种不光影响自动填充,验证码模板审核也可能不通过,因为验证码类模板一般不允许夹带营销内容。
签名会影响自动填充吗
签名本身不太影响识别,但签名要和 App 或网站名称一致。用户看到熟悉的签名才敢点那个建议,签名对不上,有的人反而会怀疑是诈骗短信。
iOS 端的验证码自动填充思路
苹果手机这边,系统识别到验证码短信后,会在键盘上方的快捷栏显示验证码。开发要做的事主要在输入框:
- 原生 App 的输入框,把内容类型设置为一次性验证码类型(官方文档里叫 oneTimeCode);
- 网页端的输入框,给 input 加上 autocomplete 属性,值设为 one-time-code,同时类型用数字键盘比较友好。
另外苹果和部分浏览器支持一种绑定域名的验证码格式,就是在短信最后一行带上“@你的域名 #验证码”,这样只有对应网站才会弹出建议,能降低钓鱼页面误用的风险。这个格式要求比较严格,写之前对照官方说明,并且模板改动要重新报备。
安卓端的自动填充思路
安卓情况复杂一些,因为手机品牌多,很多厂商系统自带了验证码识别和提取功能,表现各不相同。常见的路子有两类:
一类是依赖系统或厂商输入法自带的识别,开发者只要把输入框设为数字类型、提示为验证码,再配合规范的模板,大部分机型能在输入法上方给出建议。
另一类是 App 主动接入谷歌提供的短信检索能力,比如读取接口或用户同意接口,前者通常要求短信末尾带上应用专属的哈希字符串。国内很多机型没有完整的谷歌服务,这条路覆盖不全,一般建议两种方式都做,互相兜底。网页端在部分浏览器上也有类似的读取接口,同样要注意兼容性。
需要说明的是,不论哪种方式,都不应该申请全量读取短信的权限来抓验证码,这既不合规,用户也反感。
自动填充不生效,按这个顺序排查
客户报“自动填充没反应”,我们一般这样查:
- 先看短信有没有正常收到、收到要几秒,收不到就不是填充的问题,去查通道和回执;
- 看模板:有没有“验证码”字样,验证码是不是独立数字、有没有被别的数字干扰;
- 看输入框属性设没设对,网页和原生分开检查;
- 换几台不同品牌、不同系统版本的手机测,确认是个别机型还是全部;
- 看用户是不是关了系统的验证码自动填充开关,或者用的第三方输入法不支持。
按这个顺序走,大部分问题 1 到 2 次测试就能定位。
结论
验证码自动填充靠的是“模板好识别 + 输入框好匹配”。模板里写明“验证码”、用独立数字、放在前面、别夹营销内容;iOS 端设置一次性验证码类型或 one-time-code 属性,安卓端系统识别和检索接口两手准备。机制细节以官方文档为准,改模板记得重新报备。蔚岚科技提供验证码短信接口和网站建设、小程序开发服务,模板写法和对接上有疑问,可以打 18720919319 或者联系我们。
常见问题
为什么苹果能自动填充,安卓不行?
多数是模板或机型差异导致的。安卓各品牌识别规则不同,先把模板改规范,再测几款主流机型。
验证码用字母加数字可以吗?
可以发,但自动填充识别率会差一些。没有特殊安全要求的话,纯数字更稳妥。
改了模板格式需要重新报备吗?
需要。模板正文有任何改动,一般都要重新提交审核,通过后才能使用。
小程序里的验证码能自动填充吗?
小程序输入框的能力取决于平台提供的组件属性,部分场景能在键盘上提示。具体以平台最新文档为准。
自动填充会不会有安全风险?
填充发生在用户本机,系统只是读取短信内容做建议。风险主要来自钓鱼页面,所以短信里写“请勿告诉他人”,有条件可用绑定域名的格式。