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();
}
}
文檔內容是否對您有幫助?