<?php
/**
 * =============================================================
 *   易盾识别 Demo (PHP版)
 *
 *   功能说明：
 *   提交易盾验证码识别任务
 *
 *   使用方法：
 *   1. 确保PHP已安装并启用curl扩展
 *   2. 将下方的 APPKEY 替换为你自己的用户密钥
 *   3. 将 YIDUN_ID 替换为你获取到的易盾验证码 id 参数
 *   4. 将 YIDUN_REFERER 替换为你获取到的 referer 值
 *   5. 运行脚本：php recognize_yidun.php
 * =============================================================
 */

// ======================== 配置区域（请替换为你自己的参数）========================
// 用户密钥，登录平台后获取
$APPKEY = "你的appkey";

// 易盾验证码的 id 参数值（从目标网站抓包获取）
$YIDUN_ID = "你获取到的易盾id";

// 易盾验证码的 referer 值（从目标网站抓包获取，注意不是当前页面的URL）
$YIDUN_REFERER = "你获取到的referer地址";

// 项目类型，易盾固定填写 500（特殊类型请联系客服）
$ITEM_ID = 500;

// 可选参数：代理IP（格式示例：http://IP:端口，若需白名单支持请联系客服。http://账号:密码@proxy.com:8080 或 socks5://127.0.0.1:9888）
$PROXY = "";

// 可选参数：开发者密钥（如果有的话填写）
$DEVKEY = "";
// ===============================================================================

// API基础地址
$API_BASE = "http://api.ttocr.com/api";

// ======================== 主流程 ========================
echo str_repeat("*", 60) . "\n";
echo "  易盾识别 Demo (PHP版)\n";
echo str_repeat("*", 60) . "\n";

// 检查参数是否已配置
if ($APPKEY === "你的appkey") {
    echo "\n[错误] 请先在脚本顶部的配置区域填写你的 APPKEY\n";
    exit(1);
}
if ($YIDUN_ID === "你获取到的易盾id") {
    echo "\n[错误] 请先在脚本顶部的配置区域填写 YIDUN_ID 和 YIDUN_REFERER\n";
    exit(1);
}

echo str_repeat("=", 50) . "\n";
echo "[易盾识别] 正在提交易盾识别任务...\n";
echo str_repeat("=", 50) . "\n";

$url = $API_BASE . "/recognize2";

// 构建POST请求数据
$postData = array(
    'appkey' => $APPKEY,
    'id' => $YIDUN_ID,
    'referer' => $YIDUN_REFERER,
    'itemid' => $ITEM_ID,
);
// 如果设置了代理，则添加代理参数
if (!empty($PROXY)) {
    $postData['proxy'] = $PROXY;
}
// 如果设置了开发者密钥，则添加
if (!empty($DEVKEY)) {
    $postData['devkey'] = $DEVKEY;
}

echo "[请求参数] id=" . $YIDUN_ID . "\n";
echo "[请求参数] referer=" . $YIDUN_REFERER . "\n";
echo "[请求参数] itemid=" . $ITEM_ID . "\n";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // 识别可能需要较长时间

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo "[异常] 网络请求出错：" . curl_error($ch) . "\n";
    curl_close($ch);
    exit(1);
}
curl_close($ch);

$result = json_decode($response, true);
if ($result['status'] == 1) {
    echo "[成功] 识别成功！耗时：" . $result['time'] . "ms\n";
    echo "[识别结果] " . $result['data'] . "\n";
} else {
    echo "[失败] 识别失败，错误信息：" . $result['msg'] . "\n";
    echo "[提示] 错误状态码：" . $result['status'] . "，请参考错误代码表排查\n";
}
echo "\n[完整响应] " . json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . "\n";

echo "\n" . str_repeat("=", 50) . "\n";
echo "[完成] 识别执行完毕\n";
echo str_repeat("=", 50) . "\n";
?>

