开发应用中,注册登陆流程中须要用到短信验证SDK,因此对第三方短信验证码服务平台作了一下调研。api
短信验证码的做用:服务器
- 肯定手机号的真实性
- 防止大规模恶意注册
该流程中,SDK与MOB的服务器有两次交互过程网络
所找到的两个提供短信验证码服务的SDK分别是:app
二者都下载下来demo和SDK进行测试过.
聚合数据的SDK包含了不少服务,短信验证码只是其中一种。短信API接口,接口数据一大堆,从一个角度看,可定制性强,但从实际使用看,极其简单的一个短信验证码功能,做为用户,我但愿我所提供的输入就是一个String phoneNumber,其余的东西那都是你的实现细节。我不须要关心。Mob作到了这样简单,因此好用些。ide
MOB短信SDK集成文档
这个sdk使用起来至关简单,测试
//短信回调事件,处理获取验证码和验证反馈事件 EventHandler eventHandler = new EventHandler() { @Override public void afterEvent(int event, int result, Object data) { if (result != SMSSDK.RESULT_COMPLETE) { Log.v("cc", "链接短信验证码服务器失败"); ((Throwable) data).printStackTrace(); return; } //回调完成 if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) { //验证码验证成功,服务器的反馈事件 Log.v("cc", "验证成功"); register(); } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) { //手机请求验证码,服务器在发送验证码以后,给与的网络反馈 Log.v("cc", "已经发送验证码"); } } };
这个EventHandler是SDK注册过程的回调接口,其中分别有对各个验证状态和过程的响应状态。须要稍微吐槽一下的是,仅仅去看状态名是很难直接认识到这个状态所对应的是哪一个功能的,官方的文档也没有说清楚,仍是要经过下载demo去看代码测试,才能明白其中的细节。好在SDK自己作的极其简单。网站
初始化SMSSDK:两个参数分别是本身的app所对应的两个参数,须要去网站申请。
SMSSDK.initSDK(RegisterActivity.this, "a01257a383f0", "*********************");
this
注册SDK回调
SMSSDK.registerEventHandler(eventHandler); //注册短信回调
code
请求验证码
SMSSDK.getVerificationCode("86", mUserName);
教程
回传验证码以肯定输入的验证码是否正确
SMSSDK.submitVerificationCode("86", mUserName, varifyCode);
在使用过程当中,程序一开始先初始化SMSSDK,而后初始化EventHandler(),egisterEventHandler(), 请求验证码和回传验证码方法根据业务逻辑放到合适的地方去就能够了,发送后的事件都在EventHandler里相应的状态中处理。总的来看,MOB SDK在使用的过程当中没有遇到什么困惑。开发者友好型SDK。
(另外一个槽点是,官网没有对Android Studio的使用教程,一个下载包里面有一个教程,可是官网上是看不到的,对于用AS的用户有必定的干扰)
测试期间,天天200条免费 上线以后,天天10000条免费 多的须要充值。