.NET服務(wù)端SDK集成
IClientProfile是與阿里云驗(yàn)證碼服務(wù)端API交互的接口,所有SDK的操作都需要通過(guò)IClientProfile完成。
前提條件
已為您的阿里云賬號(hào)創(chuàng)建AccessKey。
已從阿里云驗(yàn)證碼控制臺(tái)下載.NET服務(wù)端SDK包。
服務(wù)端開(kāi)發(fā)環(huán)境為.NET Framework 4.0或以上版本。
安裝SDK
在解壓的SDK包中,找到aliyun-net-sdk-afs.dll和aliyun-net-sdk-core.dll文件。
將這兩個(gè)文件導(dǎo)入您的服務(wù)端工程中。
例如,在Visual Studio中,右鍵單擊項(xiàng)目,選擇添加引用>瀏覽,選擇并添加這兩個(gè)dll文件。
添加成功后,您就可以在您的服務(wù)端工程中使用阿里云驗(yàn)證碼的.NET SDK。
注意事項(xiàng)
與阿里云驗(yàn)證碼服務(wù)端SDK相關(guān)的類都在com.aliyuncs.IAcsClient包中。
SDK調(diào)用接口的默認(rèn)連接超時(shí)時(shí)間是3秒,讀取超時(shí)時(shí)間是80秒。您可以調(diào)用帶有connectTimeout和readTimeout的構(gòu)造方法,來(lái)自定義設(shè)置SDK調(diào)用接口的連接超時(shí)時(shí)間和讀取超時(shí)時(shí)間。
初始化IClientProfile
IClientProfile可以復(fù)用,建議將其設(shè)置成應(yīng)用程序全局唯一。
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");
調(diào)用阿里云驗(yàn)證碼服務(wù)端API
IClientProfile完成后,即可調(diào)用阿里云驗(yàn)證碼服務(wù)端提供的API,根據(jù)業(yè)務(wù)需要開(kāi)發(fā)前端頁(yè)面請(qǐng)求的處理類和對(duì)運(yùn)行結(jié)果的處理方式。
關(guān)于阿里云驗(yàn)證碼服務(wù)API的具體說(shuō)明,請(qǐng)參見(jiàn)阿里云驗(yàn)證碼Web/HTML5應(yīng)用類型服務(wù)API。
public void Test()
{
AuthenticateSigRequest request = new AuthenticateSigRequest();
request.SessionId = "xxx";// 會(huì)話ID。必填參數(shù),從前端獲取,不可更改。
request.Sig = "xxx";// 簽名串。必填參數(shù),從前端獲取,不可更改。
request.Token = "xxx";// 請(qǐng)求唯一標(biāo)識(shí)。必填參數(shù),從前端獲取,不可更改。
request.Scene = "xxx";// 場(chǎng)景標(biāo)識(shí)。必填參數(shù),從前端獲取,不可更改。
request.AppKey = "xxx";// 應(yīng)用類型標(biāo)識(shí)。必填參數(shù),后端填寫(xiě)。
request.RemoteIp = "xxx";// 客戶端IP。必填參數(shù),后端填寫(xiě)。
try
{
//response的code枚舉:100驗(yàn)簽通過(guò),900驗(yàn)簽失敗
AuthenticateSigResponse response = client.GetAcsResponse(request);
// TODO
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}