当前位置: 首页 > Web前端 > HTML

如何不花钱实现简单的短信验证功能

时间:2023-03-28 18:05:45 HTML

相信很多朋友在做三向登录的时候都会加上短信验证功能。最近,他们被分配和安排来实现这个需求。我是新手,所以上网查资料,目前用的比较多的有大汉、云通、MobTech的SMSSDK。相比之下,我最终还是选择了完全免费的SMSSDK来试用一下。以下是使用SDK过程中的一些个人体会。希望各位高手路过,给点建议。如果您喜欢它,请小心。首先,到MobTech官网(http://www.mob.com/)直接找到文档介绍。作为初次使用的用户,操作非常简单。至于使用方法我就不赘述了,里面的介绍还是挺详细的。浏览了整个文档,介绍了2种方法:一种是maven集成as,一种是common集成eclipse。因为公司的项目是as,后面的就不考虑了。maven集成方式真的很适合新手。gradle配置下只要OK,省心省力,先贴代码:贴下面脚本添加到你的根模块build.gradle:build{//添加MobSDK的maven地址repositories{maven{urlhttp://mvn.mob.com/android}}dependencies{//注册MobSDKclasspathcom.mob.sdk:MobSDK:+}}在app下的build.gradle中,添加MobSDK插件和扩展,如://添加插件inapplyplugin:com.mob.sdk//在MobSDK扩展中注册SMSSDK相关信息MobSDK{appKeyd580ad56**appSecret7fcae59a62342e7e2759e9e397**SMSSDK{}}//这里的appkey和appsecret是在mob后台创建app时获取的,所以当你需要使用的时候,先去官网注册一个账号,然后进入后台创建。配置完上面的gradle配置后,SMSSDK就基本集成好了。文档中提供了调用代码。直接复制粘贴到我的demo中进行测试。出乎意料的顺利,唯一不满意的是短信验证界面太旧了。卡壳了,产品肯定很难打通,(收起懒惰的念头),又默默研究了一下文档,看到了一个免gui的使用方法。(http://wiki.mob.com/sms-andro...),他们提供了相关的接口,但是他们不会贴出详细的图片,大家可以去官网文档看看。需要注意的是,如果是自己的ui,需要在之前gradle配置SMSSDK的地方加上SMSSDK{guifalse},因为只是demo测试,ui布局随便写,只是满足正常测试,难看~下面是写接口代码的调用。文档提供了初始化接口。registerEventHandler用于在SMSSDK中注册事件接收器。SMSSDK允许开发人员注册任意数量的接收器。当事件被触发时,所有接收者都会收到一条消息。以下是我的部分代码:EventHandlerhandler=newEventHandler(){@OverridepublicvoidafterEvent(intevent,intresult,Objectdata){if(result==SMSSDK.RESULT_COMPLETE){//回调完成if(event==SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE){//提交验证码成功}elseif(event==SMSSDK.EVENT_GET_VOICE_VERIFICATION_CODE){runOnUiThread(newRunnable(){@Overridepublicvoidrun(){Toast.makeText(MainActivity.this,语音验证发送,Toast.LENGTH_SHORT).show();}});}elseif(event==SMSSDK.EVENT_GET_VERIFICATION_CODE){//获取验证码成功.LENGTH_SHORT).show();}});}elseif(event==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){Log.i(test,test);}}else{((Throwable)data).printStackTrace();Throwablethrowable=(Throwable)data;throwable.printStackTrace();Log.i(1234,throwable.toString());尝试{JSONObjectobj=newJSONObject(throwable.getMessage());finalStringdes=obj.optString(detail);if(!TextUtils.isEmpty(des)){runOnUiThread(newRunnable(){@Overridepublicvoidrun(){Toast.makeText(MainActivity.this,des,Toast.LENGTH_SHORT).show();}});}}catch(JSONExceptione){e.printStackTrace();}}}};SMSSDK.registerEventHandler(handler);后面就是简单的发送验证等接口调??用:findViewById(R.id.tv_test1).setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){phone=etVGetcode.getText().toString();//获取验证码if(TextUtils.isEmpty(phone))Toast.makeText(MainActivity.this,号码不能为空,Toast.LENGTH_SHORT).show();Log.i(1234,phone.toString());SMSSDK.getVerificationCode(86,phone,null);}});findViewById(R.id.tv_test_vcode_valiable).setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){//提交验证码验证if(TextUtils.isEmpty(phone))Toast.makeText(MainActivity.this,数字不能为空,Toast.LENGTH_SHORT).show();number=etVCode.getText().toString();if(TextUtils.isEmpty(number))Toast.makeText(MainActivity.this,numbercannotbeempty,Toast.LENGTH_SHORT).show();Log.i(1234,phone+,+number);SMSSDK.submitVerificationCode(86,phone,number);}});代码其实比较简单,测试最重要的验证效率,个人感觉很快,基本上发送后两三秒就到了,更重要的是免费免费免费!重要的事说三遍。所以还是值得推荐的。说了这么多,我们来看一下效果图:添加一个坑:这是在mob后台添加短信产品设置的地方。工作了半天,问了技术客服才知道。兄弟们,请小心。.写的比较粗糙,希望对需要的同学有所帮助=。=如有不足和错误,欢迎指正~转载自:前锋大数据开发研究院https://www.sohu.com/a/315187...