Java服务端SDK集成
更新时间:
本文介绍如何在Java服务端集成SDK代码。
前提条件
已为您的阿里云账号创建AccessKey。详细操作指导请参见创建AccessKey。
已从阿里云验证码控制台下载Java服务端SDK包。
服务端开发环境为J2SE Development Kit (JDK) 1.5或以上版本。
安装SDK
在解压的SDK包中,找到aliyun-java-sdk-core-2.2.5.jar和aliyun-java-sdk-afs.jar文件。
将这两个jar包导入您的服务端工程中。
例如,在Eclipse中,右键单击工程,选择Properties > Java Build Path > Libraries > Add External JARs,选择并添加这两个jar包。
添加成功后,您就可以在您的服务端工程中使用阿里云验证码的Java SDK。
若为Maven的方式导入,请在pom.xml文件中导入以下依赖。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-afs</artifactId>
<version>1.0.1</version>
</dependency>
注意事项
与阿里云验证码服务端SDK相关的类都在com.aliyuncs.IAcsClient包中。
SDK调用接口的默认连接超时时间是3秒,读取超时时间是80秒。您可以调用带有connectTimeout和readTimeout的构造方法来自定义设置SDK调用接口的连接超时时间和读取超时时间。
初始化IClientProfile
IClientProfile是与阿里云验证码服务端交互的接口,所有SDK的操作都需要通过IClientProfile完成。
说明
IClientProfile可以复用,建议将其设置成应用程序全局唯一。
// 请确保代码运行环境设置了环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou",System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
DefaultProfile.addEndpoint("cn-hangzhou", "afs", "afs.aliyuncs.com");
调用阿里云验证码服务端接口
IClientProfile完成后,即可调用AnalyzeNvcRequest接口,根据业务需要开发前端页面请求的处理类和对运行结果的处理方式。
public void test(){
AnalyzeNvcRequest request = new AnalyzeNvcRequest();
request.setData("xxx");//必填参数,由前端获取getNVCVal方法获得的值。
// 通过setScoreJsonStr方法声明"服务端调用阿里云验证码接口得到的返回结果"与"前端执行操作"间的映射关系,并通知验证码服务端进行二次验证授权。
// 注意:前端页面必须严格按照该映射关系执行相应操作,否则将导致调用异常。
// 例如,在setScoreJsonStr方法中声明"400":"NC",则当服务端返回400时,您的前端必须唤醒滑动验证(NC),如果唤醒其他验证,则将导致失败。
request.setScoreJsonStr("{\"200\":\"PASS\",\"400\":\"NC\",\"800\":\"BLOCK\"}");//根据业务需求设置各返回结果对应的客户端处置方式。
try {
AnalyzeNvcResponse response = client.getAcsResponse(request);
if(response.getBizCode() == 100) {
System.out.println("验签通过");
} else if (response.getBizCode() == 200) {
System.out.println("直接通过");
} else if (response.getBizCode() == 400) {
System.out.println("前端弹出nc");
} else if (response.getBizCode() == 800) {
System.out.println("直接拦截");
} else if (response.getBizCode() == 900) {
System.out.println("验签失败");
}
// TODO
} catch (Exception e) {
e.printStackTrace();
}
}
文档内容是否对您有帮助?