200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 用百度接口验证是否上传了身份证图片信息[非姓名 身份证号匹配]

用百度接口验证是否上传了身份证图片信息[非姓名 身份证号匹配]

时间:2020-02-21 00:26:54

相关推荐

用百度接口验证是否上传了身份证图片信息[非姓名 身份证号匹配]

<?php

// 数据层

namespace Common\Model;

use Think\Model;

use Vendor\Func\Red;

class IdCardCheckModel extends Model{

public function checkIdCard($img_path,$id_card_side = 'front'){

$token = $this->getToken();

if (!$token){

$return_data = [

'num' => '-1',

'desc' => 'token获取失败'

];

return $return_data;

}

$url = '/rest/2.0/ocr/v1/idcard?access_token=' . $token;

//$img_path = '/15555712831806909448.jpeg'; // 正面

//$img_path = '/1555572181863006213.jpeg'; // 反面

//$img_path = '/mmopen/vi_32/61Y6viaroCFUu7J68k1GB9ibXiaAGQaCDn3rLiaDibZrqau7Dx94gDva2UkRZwicibIpkBdrpddjmpZu78ERgSPxMFp1g/132';

$img = file_get_contents($img_path);

$img = base64_encode($img);

$bodys = array(

"image" => $img,

"id_card_side"=> $id_card_side,

"detect_direction" => true,

"detect_risk" => true

);

$res = $this->request_post($url, $bodys);

$res = json_decode($res,true);

if (!$res){

$return_data = [

'num' => '-200',

'desc' => '接口无返回'

];

return $return_data;

}

if ($res['image_status'] != 'normal'){

$return_data = [

'num' => '-2',

'desc' => '请上传正确图片'

];

return $return_data;

}

return $res;

}

/***

*

* {

"log_id":1952791012656395794,

"words_result_num":6,

"direction":0,

"image_status":"normal",

"words_result":{

"住址":{

"location":{

"width":159,

"top":195,

"height":38,

"left":138

},

"words":"云南省保山市隆阳区芒宽乡西亚村委会金勐1组"

},

"出生":{

"location":{

"width":127,

"top":164,

"height":16,

"left":137

},

"words":"19911029"

},

"姓名":{

"location":{

"width":52,

"top":102,

"height":17,

"left":137

},

"words":"孟小梅"

},

"公民身份号码":{

"location":{

"width":204,

"top":267,

"height":22,

"left":204

},

"words":"533001199110292467"

},

"性别":{

"location":{

"width":12,

"top":136,

"height":15,

"left":136

},

"words":"女"

},

"民族":{

"location":{

"width":12,

"top":135,

"height":12,

"left":215

},

"words":"汉"

}

}

}

*/

/**

* 发起http post请求(REST API), 并获取REST请求的结果

* @param string $url

* @param string $param

* @return - http response body if succeeds, else false.

*/

private function request_post($url = '', $param = '')

{

if (empty($url) || empty($param)) {

return false;

}

$postUrl = $url;

$curlPost = $param;

// 初始化curl

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $postUrl);

curl_setopt($curl, CURLOPT_HEADER, 0);

// 要求结果为字符串且输出到屏幕上

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

// post提交方式

curl_setopt($curl, CURLOPT_POST, 1);

curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);

// 运行curl

$data = curl_exec($curl);

curl_close($curl);

return $data;

}

private function request_post_access_token($url = '', $param = '') {

if (empty($url) || empty($param)) {

return false;

}

$postUrl = $url;

$curlPost = $param;

$curl = curl_init();//初始化curl

curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页

curl_setopt($curl, CURLOPT_HEADER, 0);//设置header

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上

curl_setopt($curl, CURLOPT_POST, 1);//post提交方式

curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);

$data = curl_exec($curl);//运行curl

curl_close($curl);

return $data;

}

public function getToken(){

$redis = Red::create();

$token_key = 'nsh_baidu_access_token';

$redis_access_token = $redis->get($token_key);

if ($redis_access_token){

return $redis_access_token;

}

$url = '/oauth/2.0/token';

$post_data['grant_type'] = 'client_credentials';

$post_data['client_id'] = '*******'; //你的 Api Key

$post_data['client_secret'] = '*******************'; //你的 Secret Key

$o = "";

foreach ( $post_data as $k => $v )

{

$o.= "$k=" . urlencode( $v ). "&" ;

}

$post_data = substr($o,0,-1);

$res = $this->request_post_access_token($url, $post_data);

$res = json_decode($res,true);

$redis->set($token_key,$res['access_token'],(int)($res['expires_in'] / 2));

return $res['access_token'];

}

/***

* <pre>array(6) {

[&quot;refresh_token&quot;] =&gt; string(72) &quot;25.54c86eece3d142c1f95a79bd38e61e12.315360000.1870935687.282335-16049194&quot;

[&quot;expires_in&quot;] =&gt; int(2592000)//秒为单位,一般为1个月

[&quot;session_key&quot;] =&gt; string(96) &quot;9mzdX7m2z9HJ1/DdRnRqArZfQXWmjlyPJAtL/yLowHm7bLXd+CGBdQ90JmGX6YCcCzuIsqGB5aCsGOHEnL/xFevEd/tN1Q==&quot;

[&quot;access_token&quot;] =&gt; string(70) &quot;24.dcee9fa9addf5dd12f33bb2812fb73f8.2592000.1558167687.282335-16049194&quot;

[&quot;scope&quot;] =&gt; string(971) &quot;public vis-ocr_ocr brain_ocr_scope brain_ocr_general brain_ocr_general_basic brain_ocr_general_enhanced vis-ocr_business_license brain_ocr_webimage brain_all_scope brain_ocr_idcard brain_ocr_driving_license brain_ocr_vehicle_license vis-ocr_plate_number brain_solution brain_ocr_plate_number brain_ocr_accurate brain_ocr_accurate_basic brain_ocr_receipt brain_ocr_business_license brain_solution_iocr brain_ocr_handwriting brain_ocr_passport brain_ocr_vat_invoice brain_numbers brain_ocr_train_ticket brain_ocr_taxi_receipt vis-ocr_车辆vin码识别 vis-ocr_定额发票识别 brain_ocr_vin brain_ocr_quota_invoice wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test权限 vis-classify_flower lpq_开放 cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi&quot;

[&quot;session_secret&quot;] =&gt; string(32) &quot;d58142076b808065574c596be7dfcddc&quot;

}

</pre>

*/

}

基于tp3.2 , model 封装开发

/***** {"log_id":1952791012656395794,"words_result_num":6,"direction":0,"image_status":"normal","words_result":{"住址":{"location":{"width":159,"top":195,"height":38,"left":138},"words":"云南省保山市隆阳区芒宽乡西亚村委会金勐1组"},"出生":{"location":{"width":127,"top":164,"height":16,"left":137},"words":"19911029"},"姓名":{"location":{"width":52,"top":102,"height":17,"left":137},"words":"孟小梅"},"公民身份号码":{"location":{"width":204,"top":267,"height":22,"left":204},"words":"533001199110292467"},"性别":{"location":{"width":12,"top":136,"height":15,"left":136},"words":"女"},"民族":{"location":{"width":12,"top":135,"height":12,"left":215},"words":"汉"}}}*/

参考百度文档:/docs#/Auth/top

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。