Interfaz de identificación de certificado de datos agregados: basada en código de muestra de PHP

1. Abra la interfaz

El siguiente ejemplo de código se basa en la interfaz de identificación de certificados proporcionada por los datos agregados. Antes de usarlo, debe registrarse y solicitar esta interfaz para obtener la clave de clave de solicitud.
Dirección del documento de interfaz: https://www.juhe.cn/docs/api/id/153
inserte la descripción de la imagen aquí

2. Introducción a la función

Obtenga el contenido del texto de los certificados regulares a través de la identificación automática, eliminando la tediosa entrada manual por parte de los usuarios y asegurando la precisión del contenido.
Según el archivo de imagen cargado y el tipo de certificado, se reconoce el certificado y se devuelve el contenido del texto.
Admite el reconocimiento OCR de más de 40 tipos de documentos, como tarjetas de identificación, tarjetas bancarias, licencias de conducir y licencias comerciales.

3. Documentación de la API

Dirección de interfaz: http://v.juhe.cn/certificates/typeList
Formato de retorno: json
Método de solicitud: get/post
Ejemplo de solicitud: http://v.juhe.cn/certificates/typeList?key=appkey
interfaz que solicitó Observaciones: consulte la lista de tipos de documentos admitidos

4. Código de ejemplo

<?php
// 证件识别接口 请求密钥key
$apiKey = '********';
// 证件识别接口的URL
$apiUrl = 'http://v.juhe.cn/certificates/query';

// 需要识别的图片信息
$imgFile = 'WechatIMG305.jpeg'; // 本地图片文件路径
$pic = curl_file_create($imgFile, 'image/jpeg', 'pic');

// 组装请求参数
$params = [
    'key' => $apiKey, // 您申请到的接口请求key
    'cardType' => 3, // 证件类型,依据支持的证件类型清单id修改
    'pic' => $pic
];

// 发起网络请求证件识别接口
$response = juheHttpRequest($apiUrl, $params, 1);
$result = json_decode($response, true);
if ($result) {
    
    
    print_r($result);
    // 请求成功,正常响应。 依据自己的业务逻辑修改
    $errorCode = $result['error_code'];
    if ($errorCode === 0) {
    
    
        // 识别成功
    } else {
    
    
        // 识别失败
    }
} else {
    
    
    // 可能网络异常等问题,无法正常获得相应内容,业务逻辑可自行修改
    echo "请求异常" . PHP_EOL;
}


/**
 * 发起网络请求函数
 * @param $url 请求的URL
 * @param bool $params 请求的参数内容
 * @param int $ispost 是否POST请求
 * @return bool|string 返回内容
 */
function juheHttpRequest($url, $params = false, $ispost = 0)
{
    
    
    $httpInfo = array();
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
    curl_setopt($ch, CURLOPT_TIMEOUT, 12);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));

    if ($ispost) {
    
    
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
        curl_setopt($ch, CURLOPT_URL, $url);
    } else {
    
    
        if ($params) {
    
    
            curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
        } else {
    
    
            curl_setopt($ch, CURLOPT_URL, $url);
        }
    }
    $response = curl_exec($ch);
    if ($response === FALSE) {
    
    
        // echo "cURL Error: ".curl_error($ch);
        return false;
    }
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
    curl_close($ch);
    return $response;
}

3. Resultado de la respuesta de la interfaz

{
    
    
    "reason":"操作成功",
    "result":{
    
    
        "保留":"",
        "签发机关":"苏州市公安局工业园区分局",
        "有效期限":"20160607-20360607",
        "签发日期":"2016-06-07",
        "有效期至":"2036-06-07"
    },
    "error_code":0
}

Supongo que te gusta

Origin blog.csdn.net/juhedata/article/details/130752344
Recomendado
Clasificación