THINKPHP6.02调用百度H5实名认证接口

THINKPHP6.02调用百度H5实名认证接口
1、首先你要有百度账号并通过实名认证
2、在人脸识别处新建应用,如下三张图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

你在你的账号能看到上面的三张图,证明你的前提工作已经准备好。下面是代码。
3、代码部份:
3.1先获取ACCESS_TOKEN,再获取VERIRY_TOKEN,然后才可以进入实人认证界面。注意:要把VERIRY_TOKEN记下来或自行存进数据库,因为一会查询验证结果时,要用的。

public function index()
    {
		//第一步:获取ACCESS_TOKEN		
		$data = array("grant_type" => "client_credentials", 
              "client_id" => "9VxDIKAY9lKc1fu1CeeIi***",
              "client_secret"=>'NicAlBwS7e60WkgygR4uaZTo0258e***'              
              );
		//client_id和client_secret自行在百度后台查找,grant_type是固定的
		$data_string = $data;
		 
		$url = "https://aip.baidubce.com/oauth/2.0/token";
		$ch = curl_init ();
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt ( $ch, CURLOPT_URL, $url );
		curl_setopt ( $ch, CURLOPT_POST, 1 );
		curl_setopt ( $ch, CURLOPT_HEADER, 0 );
		curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
		curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data_string );
		$response = curl_exec($ch);
		if (curl_errno($ch)) {
			print curl_error($ch);
		}
		curl_close($ch);		
		//将获取到的数据转成JSON
		$my_json = json_decode($response);
		
		
		//第二步:利用ACCESS_TOKEN获取verify_token
		$data_string = "{\"plan_id\":10928}";//注意这一步,必须是JSON格式,否则会提示方案不存在,当然,你必须提前在后台申请方案
		$url = "https://aip.baidubce.com/rpc/2.0/brain/solution/faceprint/verifyToken/generate?access_token=".$my_json->access_token;
		$ch = curl_init ();
		curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt ( $ch, CURLOPT_URL, $url );
		curl_setopt ( $ch, CURLOPT_POST, 1 );		
		curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
		curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data_string );
		curl_setopt ( $ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));		
		$response = curl_exec($ch);
		if (curl_errno($ch)) {
			print curl_error($ch);
		}
		curl_close($ch);
		
		//将获取到的数据转成JSON
		$my_json = json_decode($response);		
		
		//第三步:将拼接的URL输出到页面
		$url="https://brain.baidu.com/face/print/?token="
		     .$my_json->result->verify_token."&successUrl=http://XXXX.oicp.net:50559/public/index.php/index/success1"
			 ."&failedUrl=http://XXXX.oicp.net:50559/public/index.php/index/faild1";
		View::assign('url',$url);	 
		View::assign('verify_token',$my_json->result->verify_token);	 
		// 模板输出
        return View::fetch('index');
    }

3.2要有成功的页面和失败的页面。
//认证成功后跳转的页面

public function success1()
	{
		// 模板输出
        return View::fetch('success1');
	}
	
	//认证失败后跳转的页面
	public function faild1()
	{
		// 模板输出
        return View::fetch('faild1');
	}

3.3用刚才记住的VERIFY_TOKEN来查询认证结果。
//查询页面

public function query()
	{
		//获取传进来的verify_token
		$verify_token=input('get.verify_token');
		echo $verify_token."</br>";
		
		//第一步:获取ACCESS_TOKEN		
		$data = array("grant_type" => "client_credentials", 
              "client_id" => "9VxDIKAY9lKc1fu1CeeIi***",
              "client_secret"=>'NicAlBwS7e60WkgygR4uaZTo0258e***'
              
              );
		$data_string = $data;
		 
		$url = "https://aip.baidubce.com/oauth/2.0/token";
		$ch = curl_init ();
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt ( $ch, CURLOPT_URL, $url );
		curl_setopt ( $ch, CURLOPT_POST, 1 );
		curl_setopt ( $ch, CURLOPT_HEADER, 0 );
		curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
		curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data_string );
		$response = curl_exec($ch);
		if (curl_errno($ch)) {
			print curl_error($ch);
		}
		curl_close($ch);		
		//将获取到的数据转成JSON
		$my_json = json_decode($response);
		
		//第二步:利用ACCESS_TOKEN加上这个用户认证时使用的verify_token
		$data_string = "{\"verify_token\":\"".$verify_token."\"}";//注意这一步,必须是JSON格式
		$url = "https://aip.baidubce.com/rpc/2.0/brain/solution/faceprint/result/detail?access_token=".$my_json->access_token;
		$ch = curl_init ();
		curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt ( $ch, CURLOPT_URL, $url );
		curl_setopt ( $ch, CURLOPT_POST, 1 );		
		curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
		curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data_string );
		curl_setopt ( $ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));		
		$response = curl_exec($ch);
		if (curl_errno($ch)) {
			print curl_error($ch);
		}
		curl_close($ch);
		echo $response;
		//将结果从UNICODE转成中文
		$result = unicode2Chinese($response);
		
		
		echo $result;
		//将获取到的数据转成JSON
		//$my_json = json_decode($response);	
	}

3.4辅助代码,UNICODE转中文。

function unicode2Chinese($str)
	{
		return preg_replace_callback("#\\\u([0-9a-f]{4})#i",
			function ($r) {return iconv('UCS-2BE', 'UTF-8', pack('H4', $r[1]));},
			$str);
	}

4、效果如下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值