300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Mob实现短信验证码功能

Mob实现短信验证码功能

时间:2022-01-23 21:20:39

相关推荐

Mob实现短信验证码功能

1、各类第三方短信功能对比

1、一直想做一个Android短信验证码功能,但是由于业务上没有需求,还有就是短信验证码原来一直以为是收费的,就没做过,今天上网查了一下,好多第三方SDK。

网易云短信验证码地址:http://netease.im/sms(0.045元/条,12w条以上会更便宜)

聚合数据:/docs/api/id/54 (0.045元/条,10万条以上会有优惠)

荣联云通讯:/?ly=sem-baidu&qd=pc-dasou&cp=ppc&xl=null&kw=10236399 (最便宜的0.045元/条,平常都是0.06元/条,较贵)。

免费的mob:/(免费的,但是条数有限制,具体可查看下方SDK限制规则)

2、没办法,感觉自己还是默默集成mob吧,谁让人家是免费的呢。

2、Mob简介

Mob是一个多功能的移动开发平台,可以发送短信和Im通话等。在官方文档中说是发送短信完全免费的,不限条数,不限全球运营商,但是还是有一定的限制的。

官方说明如下:

SDK限制规则:

1、同一个应用下同一个手机号码30秒内只能一次发送请求,每分钟只能有2次发送请求。

2、同一个应用下每分钟只能有100次同类型短信(文本、语音、自定义内容短信)的发送请求(SDK + webApi)。

3、同一个手机号码24小时内只能发送10条文本验证码短信,10条语音短信,10条自定义短信。

所以对于大型应用,可能不太适合,但是一般中小型的应用应该是没问题的,毕竟每分钟也是可以有100条短信的。

3、Mob集成

(1)需要在网站注册后,进入后台,然后开通SMSSDK,如下图所示:

其实Mob集成起来非常简单,要比IM集成容易很多,可以参考官方网址:/sdk-sms-android-3-0-0/

只需要几步,几行代码就可以集成完毕,然后就是在Activity中写代码。官网中提供了两种方式,一种是自带UI的,只需一个send方法调用即可:

fun sendCode() {val page = RegisterPage()//如果使用我们的ui,没有申请模板编号的情况下需传nullpage.setTempCode(null)page.setRegisterCallback(object : EventHandler() {override fun afterEvent(event: Int, result: Int, data: Any) {if (result == SMSSDK.RESULT_COMPLETE) {// 处理成功的结果val phoneMap = data as HashMap<String, Any>val country = phoneMap["country"] as String // 国家代码,如“86”val phone = phoneMap["phone"] as String // 手机号码,如“13800138000”// TODO 利用国家代码和手机号码进行后续的操作} else {// TODO 处理错误的结果}}})page.show(this)}

4、自己写的xml界面

执行如下方法即可

fun myCode() {// 在尝试读取通信录时以弹窗提示用户(可选功能)SMSSDK.setAskPermisionOnReadContact(true)eventHandler = object : EventHandler() {override fun afterEvent(event: Int, result: Int, data: Any?) {// afterEvent会在子线程被调用,因此如果后续有UI相关操作,需要将数据发送到UI线程val msg = Message()msg.arg1 = eventmsg.arg2 = resultmsg.obj = dataHandler(Looper.getMainLooper(), Handler.Callback { msg ->val event = msg.arg1val result = msg.arg2val data = msg.objif (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {if (result == SMSSDK.RESULT_COMPLETE) {// TODO 处理成功得到验证码的结果showToastShort("获取验证码成功")// 请注意,此时只是完成了发送验证码的请求,验证码短信还需要几秒钟之后才送达} else {// TODO 处理错误的结果(data as Throwable).printStackTrace()}} else if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {if (result == SMSSDK.RESULT_COMPLETE) {// TODO 处理验证码验证通过的结果showToastShort("验证码验证通过")} else {// TODO 处理错误的结果(data as Throwable).printStackTrace()}}// TODO 其他接口的返回结果也类似,根据event判断当前数据属于哪个接口false}).sendMessage(msg)}}// 提交验证码,其中的code表示验证码,如“1357”if(vertification_vode!!.text.toString()!=""){SMSSDK.submitVerificationCode("86", phone_id!!.text.toString(), vertification_vode!!.text.toString())}else{// 注册一个事件回调,用于处理SMSSDK接口请求的结果SMSSDK.registerEventHandler(eventHandler)// 请求验证码,其中country表示国家代码,如“86”;phone表示手机号码,如“13800138000”SMSSDK.getVerificationCode("86", phone_id!!.text.toString())}}// 使用完EventHandler需注销,否则可能出现内存泄漏override fun onDestroy() {super.onDestroy()SMSSDK.unregisterEventHandler(eventHandler)}

5、编辑短信签名和模板

完成以后发送短信时,短信前方的括号会显示:[掌淘科技],如果想去掉则需要去官网的SMSSDK下设置“短信模板”,和“短信签名”来设置自己想发送的短信内容。

备注:在官网后台首页SMSSDK概览下方,需要把是否开启Mob云验证关闭,不然只能第一次发送成功,以后会成功,但是不会往手机发送验证码了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。