首頁 > 後端開發 > PHP問題 > php怎麼實現身分證OCR識別

php怎麼實現身分證OCR識別

青灯夜游
發布: 2023-03-17 08:18:02
原創
2481 人瀏覽過

實現身份證OCR識別的方法:1、申請開通身份證OCR識別接口,獲取API請求KEY;2、調用接口API,通過“function juhecurl($url,$params=false,$ispost =0){...}」方式發出請求,處理資料並回傳結果;3、取得介面回傳內容,並以json_decode()解析成陣列;4、列印回傳結果。

php怎麼實現身分證OCR識別

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

基於PHP的身份證OCR識別介面呼叫範例

申請介面

介面備註:識別身分證正面或反面的一些關鍵字

透過https://www.juhe.cn/docs/api/id/287?s=cpphpcn    自助申請開通接口,取得API請求KEY

請求參數

名稱 必填 說明
#key 在個人中心->我的資料,介面名稱上方查看
image 圖片數據,base64編碼(不包含data:image/jpeg;base64,),要求base64編碼後大小不超過4M,最短邊至少15px,最長邊最大4096px,支援jpg/png/bmp格式
#side front:正面辨識;back:反面辨識;

PHP範例程式碼

#其中將證件圖片轉為base64字串請參考https: //www.sdk.cn/details/vOVl36qOLmlV8E9WXJ

$apiurl="http://apis.juhe.cn/idimage/verify";//请求地址
$key = "";//32位的KEY
$image= "";//图片base64后字符串
$side="front";//正反面
$params=compact('key','image','side');//组合请求参数
$content=juhecurl($apiurl,$params,1);//post请求获取接口返回内容json字符串
$result = json_decode($content,true);//解析成数组
if($result){
    if($result['error_code']=='0'){
        print_r($result);
    }else{
        echo $result['error_code'].":".$result['reason'];
    }
}else{
    echo "请求失败";
}

//网络请求方法
 function juhecurl($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_CONNECTTIMEOUT , 3);
        curl_setopt( $ch, CURLOPT_TIMEOUT , 8);
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
        if ($params) {
            if (is_array($params)) {
                $paramsString = http_build_query($params);
            } else {
                $paramsString = $params;
            }
        } else {
            $paramsString = "";
        }   
        if( $ispost )
        {
            curl_setopt( $ch , CURLOPT_POST , true );
            curl_setopt( $ch , CURLOPT_POSTFIELDS , $paramsString);
            curl_setopt( $ch , CURLOPT_URL , $url );
        }
        else
        {
            if($paramsString ){
                curl_setopt( $ch , CURLOPT_URL , $url.'?'.$paramsString);
            }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;
}
登入後複製

JSON回傳範例

身份证正面识别结果示例:
{
"reason": "成功",
"result":{
         "realname": "张三",/*姓名*/
         "sex": "男",/*性别*/
         "nation": "侗",/*民族*/
         "born": "19760613",/*出生日期*/
         "address": "贵州省都匀市甘塘镇长红机器厂散居户169号",/*地址*/
         "idcard": "522701197606131935",/*身份证号*/
         "side": "front",/*正面*/
         "orderid": 339057896/*本次查询流水号*/
        

},
"error_code": 0
}
--------------------------------------------------------------------------------------------
身份证背面识别结果示例:
{
"reason": "成功",
"result":{
     "begin": "20130501",/*签发日期*/
     "department": "东台市公安局",/*签发机关*/
     "end": "20180501",/*失效日期*/ 
     "side": "back",/*反面*/
     "orderid": 478799279/*本次查询流水号*/
          },
"error_code": 0
}
登入後複製

推薦學習:《PHP影片教學

以上是php怎麼實現身分證OCR識別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板