JAVA服务端SDK集成

IClientProfile是与阿里云验证码服务端API交互的接口,所有SDK的操作都需要通过IClientProfile完成。

前提条件

  • 已为您的阿里云账号创建AccessKey。

  • 已从阿里云验证码控制台下载JAVA服务端SDK包。

  • 服务端开发环境为J2SE Development Kit (JDK) 1.5或以上版本。

安装SDK

  1. 在解压的SDK包中,找到aliyun-java-sdk-core-2.2.5.jar和aliyun-java-sdk-afs.jar文件。

  2. 将这两个jar包导入您的服务端工程中。

    例如,在Eclipse中,右键单击工程,选择Properties>Java Build Path>Libraries>Add External JARs,选择并添加这两个jar包。

  3. 添加成功后,您就可以在您的服务端工程中使用阿里云验证码的JAVA SDK。

  4. 若为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可以复用,建议将其设置成应用程序全局唯一。

String regionid = "cn-hangzhou";
String accessKeyId = "*** Provide your AccessKeyId ***";
String accessKeySecret = "*** Provide your AccessKeySecret ***";
// Create a new IClientProfile instance
IClientProfile profile= DefaultProfile.getProfile(regionid, accessKeyId, accessKeySecret);
IAcsClient client = new DefaultAcsClient(profile);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "afs", "afs.aliyuncs.com");

调用阿里云验证码服务端API

IClientProfile完成后,即可调用阿里云验证码服务端提供的API,根据业务需要开发前端页面请求的处理类和对运行结果的处理方式。

关于阿里云验证码服务API的具体说明,请参见阿里云验证码Web/HTML5应用类型服务API

public void test(){        
      AuthenticateSigRequest request = new AuthenticateSigRequest();
      request.setSessionId("xxx");// 会话ID。必填参数,从前端获取,不可更改。
      request.setSig("xxx");// 签名串。必填参数,从前端获取,不可更改。
      request.setToken("xxx");// 请求唯一标识。必填参数,从前端获取,不可更改。
      request.setScene("xxx");// 场景标识。必填参数,从前端获取,不可更改。
      request.setAppKey("xxx");// 应用类型标识。必填参数,后端填写。
      request.setRemoteIp("xxx");// 客户端IP。必填参数,后端填写。
      try {
      //response的code枚举:100验签通过,900验签失败。
          AuthenticateSigResponse response = client.getAcsResponse(request);
          // TODO
      } catch (Exception e) {
          e.printStackTrace();            
      }        
  }