开发应用中,注册登录流程中需要用到短信验证SDK,所以对第三方短信验证码服务平台做了一下调研。
短信验证码的作用:
该流程中,SDK与MOB的服务器有两次交互过程
所找到的两个提供短信验证码服务的SDK分别是:
两者都下载下来demo和SDK进行测试过.
聚合数据的SDK包含了很多服务,短信验证码只是其中一种。 短信API接口 ,接口数据一大堆,从一个角度看,可定制性强,但从实际使用看,极其简单的一个短信验证码功能,作为用户,我希望我所提供的输入就是一个String phoneNumber,其他的东西那都是你的实现细节。我不需要关心。Mob做到了这样简单,所以好用些。
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", "*********************");
注册SDK回调
SMSSDK.registerEventHandler(eventHandler); //注册短信回调
请求验证码
SMSSDK.getVerificationCode("86", mUserName);
回传验证码以确定输入的验证码是否正确
SMSSDK.submitVerificationCode("86", mUserName, varifyCode);
在使用过程中,程序一开始先初始化SMSSDK,然后初始化EventHandler(),egisterEventHandler(), 请求验证码和回传验证码方法根据业务逻辑放到合适的地方去就可以了,发送后的事件都在EventHandler里相应的状态中处理。总的来看,MOB SDK在使用的过程中没有遇到什么困惑。开发者友好型SDK。(另一个槽点是,官网没有对Android Studio的使用教程,一个下载包里面有一个教程,但是官网上是看不到的,对于用AS的用户有一定的干扰)
测试期间,每天200条免费
上线之后,每天10000条免费
多的需要充值。