概述和资源

该SDK是为使用Csharp作为服务端语言的服务器使用的,极验验证的CsharpSDK目前提供基于.net框架的DEMO。

环境需求

条目
兼容性 兼容多版本Visual stuidio, 但是建议使用VS2012+
sdk依赖
demo依赖 .net

资源链接

条目
产品结构流程 通讯流程
SDK下载链接 gt3-dotnet-sdk

安装

下载SDK

使用命令从Github获取

git clone https://github.com/GeeTeam/gt3-dotnet-sdk.git

手动下载获取

使用从github下载.zip文件获取最新的sdk

Github: gt3-python-sdk

引入

使用VS打开项目中SDK的.sln文件即可引入SDK

在您的项目中使用以下代码即可导入SDK

using GeetestSDK;

配置接口

SDK中文件GeetestLib共有提供四个接口,分别是:

  1. 预处理接口preProcess
  2. 获取验证字符串接口getResponseStr
  3. 二次验证接口enhencedValidateRequest
  4. 本地二次验证接口failbackValidateRequest

在调用GeetestLib前请正确配置从极验3.0后台注册获取的公钥(id)和私钥(key)

namespace demo
{
public class GeetestConfig
{
public const String publicKey = "48a6ebac4ebc6642d68c217fca33eb4d";
public const String privateKey = "4f1c085290bec5afdc54df73535fc361";
}
}

代码示例

初始化及获取字符串(API1)

namespace demo
{
public partial class GetCaptcha : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "application/json";
Response.Write(getCaptcha());
Response.End();
}
private String getCaptcha()
{
GeetestLib geetest = new GeetestLib(GeetestConfig.publicKey, GeetestConfig.privateKey);
String userID = "test";
Byte gtServerStatus = geetest.preProcess(userID);
Session[GeetestLib.gtServerStatusSessionKey] = gtServerStatus;
Session["userID"] = userID;
return geetest.getResponseStr();
}
}
}

二次验证及宕机(API2)

namespace demo
{
public partial class Validate : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void submitBtn_Click(object sender, EventArgs e)
{
GeetestLib geetest = new GeetestLib(GeetestConfig.publicKey, GeetestConfig.privateKey);
Byte gt_server_status_code = (Byte) Session[GeetestLib.gtServerStatusSessionKey];
String userID = (String) Session["userID"];
int result = 0;
String challenge = Request.Form.Get(GeetestLib.fnGeetestChallenge);
String validate = Request.Form.Get(GeetestLib.fnGeetestValidate);
String seccode = Request.Form.Get(GeetestLib.fnGeetestSeccode);
if (gt_server_status_code == 1) result = geetest.enhencedValidateRequest(challenge, validate, seccode, userID);
else result = geetest.failbackValidateRequest(challenge, validate, seccode);
if (result == 1) Response.Write("<div id='sb'>success</div>");
else Response.Write(" ");
}
}
}

运行demo

demo运行:

右击解决方案资源管理器,右击demo,生成解决方案并运行。

检测demo运行:

在浏览器中访问http://localhost:2343/index.aspx即可看到Demo界面。