本文为您介绍了Android客户端如何接入短信验证码功能。
接入步骤
下载SDK
登录号码认证产品控制台,在概览页面右侧API&SDK区域,单击立即下载,进入API&SDK页面,根据页面提示下载并解压对应SDK。
创建认证方案
您导入项目或调用API接口时,会用到方案Code等参数信息,请先在号码认证产品控制台,创建认证方案,获取方案Code等参数信息。
导入项目
控制minSdkVersion。
说明短信认证SDK最低依赖版本为16,因此创建新项目minSdkVersion不能低于16。
导入aar产物并添加依赖。
在使用短信认证功能的module中引入相关SDK,即将相关aar导入
module libs
文件夹。在module下
build.gradle
文件中找到dependencies,添加如下引用:implementation fileTree(dir: 'libs', include: ['*.aar'])
交互流程详解
完整的功能交互流程请参见短信认证的交互流程。
SDK方法说明
获取实例(SmsAuthHelper)
/**
* 初始化SDK实例
* @param context 上下文,不能为空
* @param sceneCode 方案号,必传字段
*/
public SmsAuthHelper(Context context, String sceneCode)
使用示例
mSmsAuthHelper = new SmsAuthHelper(this, BuildConfig.SCENE_CODE);
设置Token更新监听回调
public void setTokenUpdater(TokenUpdater tokenUpdater)
试用示例
mSmsAuthHelper.setTokenUpdater(new TokenUpdater() {
@Override
public Tokens updateToken() {
return null;
}
});
发送短信验证码
/**
* 发送短信验证码
*
* @param countryCode 国际电话区号,目前仅作为保留字段,当前版本只支持86(即中国大陆的电话号码)
* @param phoneNumber 手机号
* @param callback 获取验证码监听回调
* @param timeoutMills 接口超时时间(单位:ms)
*/
public void sendVerifyCode(int countryCode,
String phoneNumber,
SmsCallback callback, long timeoutMills)
使用示例
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);
其他接口说明
清空本地SmsTokens缓存
/**
* 清空本地缓存的Token信息
*/
public void clearToken()
使用示例
mSmsAuthHelper.clearToken();
SmsTokens实体类
/**
* Sms Token
*/
private String stsToken;
/**
* 临时AccessKeyId
*/
private String accessKeyId;
/**
* 临时AccessKey Secret;
*/
private String accessKeySecret;
/**
* Biz Token
*/
private String BizToken;
/**
* Token过期时间,绝对时间,单位ms
*/
private long expiredTimeMills;
SDK回调说明
SDK发送短信验证码时需要用到BizToken、StsToken(包含AccessKey信息)这两个Token。调用方法详情请参见GetSmsAuthTokens。
public interface TokenUpdater {
/**
* 更新Token
* @return
*/
Tokens updateToken();
}
重要
SDK在检测到本地缓存中无有效Token(Token不存在或者已过期)时,则调用updateToken
方法,开发者需要实现该接口,并且获取到Token后,封装成SmsTokens返回给SDK。
文档内容是否对您有帮助?