📘 DCaptcha API 接入文档
🔔 教程说明
注意:本页为 API 接入教程,非后台实现文档,非开发者勿用!
1️⃣ 明确验证码类型
首先要明确验证码的类型, 然后根据类型找到对应的 imageId, 类型表如下:
|
来源 |
imageId |
类型说明 |
消耗积分 |
图片示例 |
| 0 |
DX |
2232501010 |
滑块验证 |
10 |
 |
| 1 |
DX |
2232501020 |
文字点选 |
10 |
 |
| 2 |
DX |
2232501030 |
图标点选 |
10 |
 |
| 3 |
DX |
2232501040 |
文字语序 |
10 |
 |
| 4 |
DX |
2232501050 |
刮刮卡 |
10 |
 |
| 5 |
DX |
2232501060 |
空间语义 |
10 |
 |
| 6 |
DX |
2232501070 |
乱序拼图 |
10 |
 |
| 7 |
DX |
2232501080 |
旋转验证 |
10 |
 |
| 8 |
DX |
2232501090 |
面积 |
10 |
 |
| 9 |
DX |
2232501100 |
差异点击 |
10 |
 |
| 10 |
DX |
2232501110 |
字体识别 |
10 |
 |
| 11 |
DX |
2232501120 |
滑动拼图 |
10 |
 |
| 12 |
GT |
2702501010 |
文字点选 |
10 |
 |
| 13 |
GT |
2702501020 |
图标点选2 |
10 |
 |
| 14 |
GT |
2702501030 |
图标点选3 |
10 |
 |
| 15 |
GT |
2702501040 |
图标点选4 |
10 |
 |
| 16 |
GT |
2702501041 |
图标点选5 |
10 |
 |
| 17 |
GT |
2702501050 |
九宫格 |
10 |
 |
| 18 |
GT |
2702501060 |
消消乐 |
10 |
✅ 直接传入数组即可 |
| 19 |
GT |
2702501070 |
五子棋 |
10 |
✅ 直接传入数组即可 |
| 20 |
GT |
2702501080 |
文字重叠点击 |
10 |
 |
| 21 |
GT |
2702501090 |
新九宫格 |
10 |
 |
| 22 |
GT |
2702501100 |
文字点选(gt4) |
10 |
 |
| 23 |
GT |
2702501110 |
文字语序(gt4) |
10 |
 |
| 24 |
YD |
2802501010 |
文字点选 |
30 |
 |
2️⃣ 获取 token
3️⃣ API 接口详解
🔗 请求地址
| POST https://dcap.xiaocai.site/api/v1/yzm/images?imageId={imageId}
|
📌 Query 参数
| 参数名 |
类型 |
是否必填 |
说明 |
| imageId |
int |
✅是 |
验证码类型的 ID |
| 参数名 |
示例值 |
是否必填 |
说明 |
| Authorization |
Bearer your_token |
✅ 是 |
携带身份验证 token |
| Content-Type |
application/json |
✅ 是 |
固定值 |
| Accept |
application/json |
✅ 是 |
固定值 |
📤 请求体(Payload)
⚠️ 不同验证码类型参数结构不同.
具体请参阅 dx 和 gt中的参数,不必关注其他信息。
以下为示例:
| 字段名 |
类型 |
是否必填 |
说明 |
| bg |
string |
✅ 是 |
背景图 base64 编码字符串 |
| ... |
- |
按需填充 |
其他字段视类型而定 |
📥 返回结果(JSON)
| 参数 |
类型 |
说明 |
| code |
int |
返回状态码,成功为 200 |
| msg |
string |
返回提示信息 |
| success |
boolean |
是否识别成功,程序可只依据此字段判断是否成功 |
| data |
object |
识别结果内容,结构因验证码类型而异 |
4️⃣ API 调用示例
✅ 案例 1:识别 DX 面积
| import base64
import requests
##api 接口地址(测试接口, 注意: 请求路径是固定不变的)
API_URL = "https://dcap.xiaocai.site/api/v1/yzm/images"
headers = {
"accept": "application/json",
"Authorization": "Bearer eyJhbGciOi************",
"Content-Type": "application/json",
}
# 1. 读取图片并转换为 base64 编码
bgfile = "docs/example/dx_area.png"
with open(bgfile, "rb") as f:
imgbase64 = base64.b64encode(f.read()).decode()
# 2. 准备请求的 payload 和参数, 具体的参数查看相关文档
payload = {"bg": imgbase64}
params = {"imageId": 2232501090}
# 3. 发送 POST 请求
response = requests.post(API_URL, params=params, json=payload, headers=headers)
print("返回的结果:", response.json())
|
| 返回的结果: {'code': 0, 'msg': '识别成功', 'success': True, 'data': '[85, 104]'}
|
✅ 案例 2:识别 DX 文字点选
| import base64
import requests
API_URL = "https://dcap.xiaocai.site/api/v1/yzm/images"
headers = {
"accept": "application/json",
"Authorization": "Bearer eyJhbGciOi************",
"Content-Type": "application/json",
}
bgfile = "docs/example/dx_click.png"
with open(bgfile, "rb") as f:
imgbase64 = base64.b64encode(f.read()).decode()
payload = {"bg": imgbase64, "cw": "听埋扣"}
params = {"imageId": 2232501020}
response = requests.post(API_URL, params=params, json=payload, headers=headers)
print("返回的结果:", response.json())
|
| 返回的结果: {'code': 0, 'msg': '识别成功', 'success': True, 'data': '[[43, 44], [28, 106], [147, 62]]'}
|
5️⃣ 积分查询接口
🔗 请求地址(注意为 get 请求)
| GET https://dcap.xiaocai.site/api/v1/self/info
|
📌 Query 参数
📥 返回结果 (JSON)