首先,这个使用文档是极光推送的短信验证。别问我为什么不用阿里的短信,因为boss决定的,而且是一种很奇葩的方式验证。不过万一遇到跟我一样要这么用的。你完全可以参考我的这个篇文章。算是利人利己吧。
首先介绍下这个 极光推送,就是一个平台。里面服务主打app推送。但是也有发送短信的功能。其实文档也还算可以。sdk可用性也很高。不过到底看文档需要时间的。所以我直接写一下用法(仅限于短信)。
先附上极光的官网吧。点击直接跳转~~~
然后极光的短信验证码有两种使用方式。
1,自己生成短信验证码,自己记录自己对比。优点就是灵活性高。一次调用极光接口。
2,极光帮忙生成短信验证码,然后将用户输入的验证码再调用验证码验证接口去获取结果。返回一个boolean值。比对成功true,不成功false。
讲真,以前一直用阿里的自己生成短信验证码的我一开始有点理解不了第二种方式的使用。。不过其实现在觉得也还可以吧。毕竟还省的本地对验证码的存储和维护了,挺简单的。
然后我们项目中用的的第二种方式,所以这里以第二种方式为例子。
首先极光账号和开通服务就不说了。这是基本配置。然后生成模板也不提了。说一下这个验证码的模板。极光有一个现成的,id是1的一个五分钟验证码有效期模板。然后可以自定义一个sign作为短信头。(这里就以这个模板为例子)
首先引入依赖。如果你是从官方sdk上引入,要引入一大堆东西。其实用到的只有一个,别的都是日志打印什么的。因为我们项目自己有配置了,所以只引入用到的那个
这个版本是我用的时候的最新版。现在2019.7.1。如果你看到的时候时间过好久了我建议你自己去官方查询最近版本。
然后是建立工具类JsmsUtil(名字你自己取,反正就是用来发短信和验证验证码的,因为我个人习惯把所有的第三方都放在一个service里了,省的再包装好几次调用,你可以别跟我学这么懒)。
好的了。发送短信验证码就这么完成了。剩下的还有一个是验证验证码(说起来有点绕口 验证 “验证码” 是否正确)。
然后上面也说了,验证验证码需要发送的时候返回的messageId。还有就是用户输入验证码 这两个参数。用户输入对了返回true,输错了返回false。如果超过五分钟了哪怕用户输入对了也会返回false(这个也是我觉得虽然调个接口但是也比自己维护验证码强。不然还得存缓存设置过其时间啥的,简单就是王道啊)。附上代码:
到这一个完整的发送验证码和验证验证码就做完了。
其中有个坑我额外说一下:
就是这个发送短信的接口。在极光平台上的记录是可以看到短信发送是否成功的。但是在接口里,如果哪怕手机号码是空号,只要手机号格式正确也会返回200的。这是我一次无意间测试输入错了才发现的。
还有就是如果验证码错误,会直接报错。。我一开始还傻了吧唧以为验证码错误正常返回对象,只不过是isVolid是false呢。。然后屁颠屁颠还给res.getIsVolid做了个判断。。后来还是在测试的时候发现的问题。。然后就整改代码。。一下子缩成了两句话~~~
至此,极光推送的短信验证码功能已经实现。
另外再说点题外话,就是我写的好多技术贴,可能好多地方加了好多废话或者个人态度之类的。然后有的还写的特别小白,显而易见的东西也解释。其实这个是个人原因。因为我也是从小白过来的。你所以为的常识可能别人就是不懂。我多打几个字,你要是懂的就略过,真遇到不懂的注释用到了的,也就不枉费我花时间敲了。就因为我真的好多东西都是在网上别人的帖子,教程,博客啥的上面学到的,所以才决定自己也写点什么,指不定就帮到了谁。还有就是我写简书要是一点不在意粉丝啊,收藏啊,喜欢啊啥的有点太假了。有肯定更开心,也更有动力。但是哪怕没有,单纯的让别人看到了用到了,也是一种值得。然后又因为我所有的帖子,大多数都是我根据自己的理解写的,肯定有的说法不是很全面,说的不是很对甚至可能有错(这个以防万一,其实我写上来的都是自己实践过的,错的可能性不大)。所以大佬们有不同意见或者问题或者看到错误了非常希望您别怕麻烦给我留言指出来。万分感谢。
有问题留言,欢迎纠错~~
喏,手打不易,大家动动小手分享转发点赞评论啥的~~~~