Skip to content
This repository was archived by the owner on Jun 29, 2026. It is now read-only.

Commit e872791

Browse files
committed
3.1.1
1 parent a53c8db commit e872791

10 files changed

Lines changed: 58 additions & 502 deletions

File tree

README.rst

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
Gt Python SDK
22
===============
3-
3+
使用 3.1 之前版本SDK的用户如果想更新到3.1以及以后版本请先联系极验客服,因为为了兼容老用户,新的特性需要修改验证设置
44
极验验证的Python SDK目前提供基于django, flask, tornado框架的DEMO
5-
本项目是面向服务器端的,客户端相关开发请参考我们的 `前端文档 <http://www.geetest.com/install/>`_.
5+
本项目是面向服务器端的,具体使用可以参考我们的 `文档 <http://www.geetest.com/install/sections/idx-server-sdk.html>`_ ,客户端相关开发请参考我们的 `前端文档 <http://www.geetest.com/install/>`_.
66

77
开发环境
88
----------------
@@ -45,9 +45,10 @@ Gt Python SDK
4545
4646
@app.route('/getcaptcha', methods=["GET"])
4747
def get_captcha():
48-
gt = GeetestLib(captach_id, private_key)
49-
status, response_str = gt.pre_process()
50-
session[gt.GT_STATUS_SESSION_KEY] = gt
48+
gt = GeetestLib(captcha_id, private_key)
49+
status = gt.pre_process()
50+
session[gt.GT_STATUS_SESSION_KEY] = status
51+
response_str = gt.get_response_str()
5152
return response_str
5253
5354
上述代码是一般验证初始化的代码,因为现在我们服务提供完备的服务宕机方案,所以推荐直接使用我们的宕机方案,也可以换成你们自己的方案,根据返回的 `status` 前端自行处理.
@@ -63,27 +64,14 @@ Gt Python SDK
6364
challenge = request.form[gt.FN_CHALLENGE]
6465
validate = request.form[gt.FN_VALIDATE]
6566
seccode = request.form[gt.FN_SECCODE]
66-
gt = GeetestLib(captcha_id, private_key)
67-
result = gt.validate(status, challenge, validate, seccode)
68-
return result
69-
70-
如果不想采用极验提供的failback方案,你可以自己处理,代码如下
71-
72-
.. code-block :: python
73-
74-
@app.route('/validate', methods=["POST"])
75-
def validate_capthca():
76-
status = session[GeetestLib.GT_STATUS_SESSION_KEY]
7767
if status:
78-
gt = GeetestLib(captcha_id, private_key)
79-
challenge = request.form[gt.FN_CHALLENGE]
80-
validate = request.form[gt.FN_VALIDATE]
81-
seccode = request.form[gt.FN_SECCODE]
82-
result = gt.success_validat(challenge, validate, seccode)
68+
result = gt.success_validate(challenge, validate, seccode)
8369
else:
84-
#你们自己的验证方法
70+
result = gt.fail_validate(challenge, validate, seccode)
71+
result = "sucess" if result else "fail"
8572
return result
8673
74+
8775
运行demo
8876
---------------------
8977

@@ -114,6 +102,18 @@ Gt Python SDK
114102

115103
发布日志
116104
-----------------
105+
+ 3.2.0
106+
107+
- 统一接口
108+
109+
+ 3.1.0
110+
111+
- 添加challenge加密特性,使验证更安全, 老版本更新请先联系管理员
112+
113+
+ 3.0.1
114+
115+
- 修复failback情况下 无法正确解码答案的错误
116+
117117
+ 3.0.0
118118

119119
- 去除SDK对Session操作, 现在Session部分由开发者自己处理

demo/django_demo/app/views.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,17 @@
33
from django.http import HttpResponse
44
from geetest import GeetestLib
55

6-
BASE_URL = "api.geetest.com/get.php?gt="
76
captcha_id = "a40fd3b0d712165c5d13e6f747e948d4"
87
private_key = "0f1a37e33c9ed10dd2e133fe2ae9c459"
9-
product = "embed"
10-
11-
# 弹出式
12-
# product = "popup&popupbtnid=submit-button"
138

149
def home(request):
1510
return render_to_response("index.html", context_instance=RequestContext(request))
1611

1712
def getcaptcha(request):
1813
gt = GeetestLib(captcha_id, private_key)
19-
status, response_str = gt.pre_process()
14+
status = gt.pre_process()
2015
request.session[gt.GT_STATUS_SESSION_KEY] = status
16+
response_str = gt.get_response_str()
2117
return HttpResponse(response_str)
2218

2319
def validate(request):
@@ -27,6 +23,10 @@ def validate(request):
2723
validate = request.POST.get(gt.FN_VALIDATE, '')
2824
seccode = request.POST.get(gt.FN_SECCODE, '')
2925
status = request.session[gt.GT_STATUS_SESSION_KEY]
30-
result = gt.validate(status, challenge, validate, seccode)
26+
if status:
27+
result = gt.success_validate(challenge, validate, seccode)
28+
else:
29+
result = gt.fail_validate(challenge, validate, seccode)
30+
result = "sucess" if result else "fail"
3131
return HttpResponse(result)
3232
return HttpResponse("error")

demo/flask_demo/start.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@
1212
@app.route('/getcaptcha', methods=["GET"])
1313
def get_captcha():
1414
gt = GeetestLib(captcha_id, private_key)
15-
status, response_str = gt.pre_process()
15+
status = gt.pre_process()
1616
session[gt.GT_STATUS_SESSION_KEY] = status
17+
response_str = gt.get_response_str()
1718
return response_str
1819

1920
@app.route('/validate', methods=["POST"])
@@ -23,8 +24,11 @@ def validate_capthca():
2324
challenge = request.form[gt.FN_CHALLENGE]
2425
validate = request.form[gt.FN_VALIDATE]
2526
seccode = request.form[gt.FN_SECCODE]
26-
gt = GeetestLib(captcha_id, private_key)
27-
result = gt.validate(status, challenge, validate, seccode)
27+
if status:
28+
result = gt.success_validate(challenge, validate, seccode)
29+
else:
30+
result = gt.fail_validate(challenge, validate, seccode)
31+
result = "sucess" if result else "fail"
2832
return result
2933

3034
@app.route('/')

demo/tornado_demo/start.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ def get(self):
1919
class GetCaptchaHandler(SessionBaseHandler):
2020
def get(self):
2121
gt = GeetestLib(captcha_id, private_key)
22-
status, response_str = gt.pre_process()
22+
status= gt.pre_process()
2323
self.session[gt.GT_STATUS_SESSION_KEY] = status
24+
response_str = gt.get_response_str()
2425
self.write(response_str)
2526

2627
class ValidateHandler(SessionBaseHandler):
@@ -30,7 +31,11 @@ def post(self):
3031
validate = self.get_argument(gt.FN_VALIDATE, "")
3132
seccode = self.get_argument(gt.FN_SECCODE, "")
3233
status = self.session[gt.GT_STATUS_SESSION_KEY]
33-
result = gt.validate(status, challenge, validate, seccode)
34+
if status:
35+
result = gt.success_validate(challenge, validate, seccode)
36+
else:
37+
result = gt.fail_validate(challenge, validate, seccode)
38+
result = "sucess" if result else "fail"
3439
self.write(result)
3540

3641
if __name__ == "__main__":

doc/api.rst

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)