本文为您介绍了Android客户端如何接入短信验证码功能。
前提条件
- 确保您的终端设备已经开启了移动数据网络。
- 确保您已开通了号码认证服务,并成功创建了对应的短信验证码方案且短信签名、模板均已与该方案绑定,详情请参见短信认证使用流程。
- 应用须在iOS 9.0版本及以上平台上运行。
搭建开发环境
SDK方法说明
- 获取实例(SmsAuthHelper)
SmsAuthHelper smsAuthHelper = new SmsAuthHelper(context, sceneCode);
- 设置Token更新处理器(setTokenUpdater)
/** * 设置Token更新器 * * @param tokenUpdater */ public void setTokenUpdater(TokenUpdater tokenUpdater);
- 发送短信验证码(sendVerifyCode)
/** * 发送短信验证码 * @param countryCode国际电话区号,目前仅作为保留字段,当前版本只支持86(即中国大陆的电话号码) * @param phoneNumber手机号 * @param callback * @param timeoutMills接口超时时间(单位:ms) */ public void sendVerifyCode(int countryCode, String phoneNumber, SmsCallback callback, long timeoutMills)
- 销毁实例(destroy)
/** * 销毁实例 */ public void destroy();
SDK回调说明
- TokenUpdater。SDK发送短信验证码时需要用到BizToken、StsToken(包含AccessKey信息)这两个Token。调用方法详情请参见GetSmsAuthTokens。
public interface TokenUpdater{ /** * 更新Token1 * @return */ Tokens updateToken(); }
注意 SDK在检测到本地缓存中无有效Token(Token不存在或者已过期)时,则调用TokenUpdater#updateToken
方法,开发者需要实现该接口,并且获取到Token后,封装成Tokens返回给SDK。Tokens中具体字段可参见Demo和GetSmsAuthTokens。 - SmsCallback。调用发送验证码接口时,无论成功或失败都会通过该接口给开发者发送通知,开发者可以根据返回的Ret对象中Code字段做出判断。
public interface SmsCallback { void onResult(Ret ret); }
SDK事件返回码
处理错误码时,建议您直接参见SmsReturnCode.h文件中的常量字符进行比对处理,不建议直接使用数值。
返回码 | 描述 | 原因/解决方法 |
---|---|---|
600000 | 成功。 | 无。 |
600001 | 网络不可用。 | 无可用的网络,建议您切换网络。 |
600002 | 手机号非法。 | 手机号格式错误或无效的手机号。 |
600003 | Token获取失败。 | StsToken 或BizToken 获取失败、为空,建议您检查相应字段。
|
600004 | 接口状态异常。 | 检查接口状态是否正确,比如是否调用了destroy之后,又调用了业务接口。 |
600010 | 请求超时。 | 需要根据日志和环境信息具体排查,可联系阿里云客服。 |
600011 | 鉴权失败。 | StsToken 鉴权失败或者其信息与BizToken 不对应(账号关系),可检查账号信息、方案信息、包名、签名等。
|
600012 | BizToken错误。 | BizToken错误,建议重新申请。 |
600013 | StsToken错误。 | StsToken错误,建议重新申请StsToken。 |
600014 | StsToken过期。 | StsToken过期,建议重新申请StsToken。 |
600015 | BizToken过期。 | BizToken已过期,建议重新申请。 |
600016 | 验证码发送频次超出限制。 | 同一个号码每分钟、每小时或每日发送频次超过限制。具体限制次数,请登录号码认证产品控制台,单击通用设置查看详情。 |
600050 | 未知异常 | 联系阿里云客服进行排查。 |