参考腾讯云官方文档:
前提:已经获取了SIGN Ticket。获取参考文档:
PHP腾讯云人脸核身获取SIGN Ticket-CSDN博客
public function getTxFaceId($uid,$name,$idNo){
$appId = '';
$userId = $uid;
$nonce = $this->random(32);
$version = '1.0.0';
$ticket = file_get_contents('/data/config/tx_face_signticket.txt');
if(!$ticket){
return '';
}
$data = [$appId,$userId,$version,$ticket,$nonce];
asort($data);
$str = '';
foreach ($data as $val) {
$str.= $val;
}
$sign = sha1($str);
if(!$sign){
return '';
}
$url = 'https://kyc1.qcloud.com/api/server/getfaceid';
$post_data = [
'appId' => $appId,
'orderNo' => $uid.$nonce,
'name' => $name,
'idNo' => $idNo,
'userId' => $uid,
'version' =>'1.0.0',
'sign' => $sign,
'nonce' => $nonce
];
$result = $this->curl_post($url,$post_data);
$arr = json_decode($result,true);
if($arr['code'] == 0){
$faceId = $arr['result']['faceId'];
return $faceId;
}
return '';
}
//生成随机字符串
function random($length = 6 , $numeric = 0) {
PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
if($numeric) {
$hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
} else {
$hash = '';
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';
$max = strlen($chars) - 1;
for($i = 0; $i < $length; $i++) {
$hash .= $chars[mt_rand(0, $max)];
}
}
return $hash;
}
//curl Post提交
function curl_post($url,$data){
$data = json_encode($data);
$headerArray =array("Content-type:application/json;charset='utf-8'","Accept:application/json");
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}