本文为您介绍短信认证功能Demo的运行步骤及示例代码,帮助您快速了解短信认证功能。Android客户端SDK集成的详细接入步骤及用法,请参见短信认证Android客户端接入。
步骤一:下载SDK
登录号码认证产品控制台,在概览页面右侧API&SDK区域,单击立即下载,进入API&SDK页面,根据页面提示下载并解压对应SDK。
步骤二:打开Demo
使用Android Studio IDE,选择Open,选择解压后SDK文件下的Demo文件夹。项目载入过程会拉取相关依赖,请耐心等待。
本文使用Android Studio 4.0版本进行演示。如果您使用的是其他的IDE版本,可能会存在构建报错,请按照提示修改对应Gradle版本。使用工具和环境搭建相关可参考准备工作。
步骤三:创建RAM用户
创建RAM用户获取AccessKey ID和AccessKey Secret。
步骤四:创建认证方案
登录号码认证服务控制台,创建短信认证方案,获取方案Code。
查看签名
使用Android Studio右侧面板,Gradle > 项目名称 > 签名文件所在module >Tasks > android > signingReport,查看签名。
包签名获取方式如下:
方式一:上图的下方输出的MD5值移除冒号,将大写字母转换为小写字母即可生成包签名。
方式二:请通过手机终端下载并安装Android App签名获取工具,获取Android App的包签名信息。
查看包名
包名在app/build.gradle文件android.defaultConfig.applicationId
属性。
步骤五:参数替换
打开module下的build.gradle文件,补充以下字段:
如果您没有短信模板Code,请在号码认证服务控制台添加模板,待模板审核通过后即可获取模板Code。
buildConfigField "String", "ACCESS_KEY_ID", 'AccessKey Id'
buildConfigField "String", "ACCESS_KEY_SECRET", 'AccessKey Secret'
buildConfigField "String", "SCENE_CODE", '方案号'
buildConfigField "String", "SMS_TEMPLATE_CODE", '短信模板Code'
Demo项目直接在客户端发起了OpenAPI的调用,所以需要填入AccessKey ID 和 AccessKey Secret。在实际业务中,请通过服务端集成完成OpenAPI对接。
步骤六:构建及运行
将Android系统的手机连接到电脑上并打开USB调试模式。
点击IDE顶部工具菜单,构建并运行项目。
功能试用。
说明确保您的终端设备已开启SIM卡的移动数据网络(支持中国联通、中国移动的3G网络,但接口耗时会增加)。
上图是Demo项目在手机上的运行效果。
示例代码
初始化SDK
mSmsAuthHelper = new SmsAuthHelper(this, BuildConfig.SCENE_CODE);
设置Token监听回调
mSmsAuthHelper.setTokenUpdater(new TokenUpdater() {
@Override
public Tokens updateToken() {
//从服务端获取token 该部分为示例伪代码
Tokens tokens = new Tokens();
tokens.setExpiredTimeMills("");
tokens.setBizToken("");
tokens.setAccessKeyId("");
tokens.setAccessKeySecret("");
tokens.setStsToken("");
return tokens;
}
});
获取验证码
mSmsAuthHelper.sendVerifyCode(countryCode, phoneNumber, new SmsCallback() {
@Override
public void onResult(Ret ret) {
if (ret.getCode() == ResultCode.CODE_SUCCESS) {
mVerifyCodeTimerWidget.setClickable(false);
mVerifyCodeTimerWidgetController.startTimer();
mSmsToken = ret.getSmsVerifyToken();
}else {
runOnUiThread(()->{
Toast.makeText(MainActivity.this, "验证码发送失败:"+ret.getMsg(), Toast.LENGTH_SHORT).show();
});
}
}
},5000);