吾生也有涯,而知也无涯~欢迎优化补充、指正!
本文主要介绍基于百度的H5业务场景下人脸识别的创建与实现!
首先百度开放平台进入人脸实名认证控制台新建项目:


接着在方案清单页面点击「新建方案」按钮,方案类型选择「H5实名认证」
授权声明可以跳过

接着根据业务需求选择身份证信息录入等功能,官方提供多种认证过程,根据自身需求选用!
本例采用照片活体认证,效果图如下:



样本核验指标如下,分为严格、正常、宽松三个等级,越严格,图片对角度、模糊度、遮挡等信息参数把控越高,推荐使用宽松。

认证结果对比分数值官方推荐阀值80,可根据自身需求进行调整
完成项目配置提交后可扫码体验认证流程:

接下来进入验证实现步骤
先上代码

public function bd(){global $_W,$_GPC;if(empty($_W['openid'])){header('location: ' . mobileUrl('account/login'));}$insertid = $_GPC['insertid']; //自定义参数,与实际认证业务处理无关$url = 'https://aip.baidubce.com/oauth/2.0/token';$post_data = ['grant_type' => 'cli********ls','client_id' => 'L45W********n3MQ','client_secret' => '1Tq9********jGb6',];$res = $this->request_post($url, http_build_query($post_data));$res = json_decode($res, true);$accessToken = $res['access_token'];/***  获取Verify Token*/$url = sprintf("https://aip.baidubce.com/rpc/2.0/brain/solution/faceprint/verifyToken/generate?access_token=%s", $accessToken);$post_data = ['plan_id' => "10671" // H5认证方案ID];$res = $this->request_post($url, json_encode($post_data));$res = json_decode($res, true);$verifyToken = $res['result']['verify_token'];// 验证成功返回链接$successUrl =  mobileUrl("member/index/submit",['insertid' => $insertid,'access_token'=>$accessToken,'verify_token'=>$verifyToken],true);// 验证失败返回链接$failedUrl = mobileUrl("member/index/submit",['insertid' => $insertid,'access_token'=>$accessToken,'verify_token'=>$verifyToken],true);// 生成H5验验跳转链接$h5Url = sprintf("https://brain.baidu.com/face/print/?token=%s&successUrl=%s&failedUrl=%s", $verifyToken, urlencode($successUrl), urlencode($failedUrl));header(sprintf("Location: %s", $h5Url));//include($this->template());}public function request_post($url = '', $param = ''){if (empty($url) || empty($param)) {return false;}$postUrl = $url;$curlPost = $param;$curl = curl_init();//初始化curlcurl_setopt($curl, CURLOPT_URL, $postUrl);//抓取指定网页curl_setopt($curl, CURLOPT_HEADER, 0);//设置headercurl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($curl, CURLOPT_POST, 1);//post提交方式curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);$data = curl_exec($curl);//运行curlcurl_close($curl);return $data;}

如代码所示,先获取access_token(access_token的有效期为30天,建议每次请求重新获取),然后以此获取verify_token
业务H5网页通过获取token接口返回的verify_token信息请求认证H5页面,进行用户端流程操作
URL中的信息填写如下所示:
(1)token:填写verify_token
(2)successUrl:请求成功跳转的网址,网址需要加http/https前缀
(3)failedUrl:请求失败跳转的网址,网址需要加http/https前缀
用户端操作完成后回调上述业务地址,我们在此进行下一步处理

public function submit(){global $_W,$_GPC;$accessToken = $_GPC['access_token'];$verifyToken = $_GPC['verify_token'];$insertid = $_GPC['insertid']; //自定义参数,与实际认证业务处理无关/*** 获取认证结果*/$apiUrl = sprintf('https://aip.baidubce.com/rpc/2.0/brain/solution/faceprint/result/detail?access_token=%s', $accessToken);$post_data = ['verify_token' => $verifyToken // H5认证方案ID];$res = $this->request_post($apiUrl, json_encode($post_data));$res = json_decode($res, true);if(!$res['success'] || $res['result']['verify_result']['score'] < 0.7){$this->message("实名认证失败,请返回核对姓名和身份证号码",mobileUrl("member/dataform",[],true));}# other code}

如上所示,根据verify_token进行认证查询,verify_token的独立生成方法见上文!
返回示例如下:

{"success": true,"result": {"idcard_ocr_result": {"address": "江苏省淮安市淮阴区XXX","birthday": "19691211","name": "孙XX","id_card_number": "320821XXXXXXX","gender": "女","nation": "汉","expire_time": "XXX","issue_authority": "XXX","issue_time": "XXX"},"verify_result": {"liveness_score": 0.39,"score": 11.65885925},"idcard_confirm": {"name": "孙XX","idcard_number": "320821XXXXXXX"}},"log_id": "1436111694"
}


示例根据score进行判断,数值越大则认证越严格!
以上就是人脸识别的全部流程,博文创建时间仓促,欢迎指正与讨论!
注:示例是在微擎下搭建的,其它框架请自行调整!

浅谈H5业务场景下的人脸识别相关推荐

  1. 浅谈云化场景下的那些业务迁移基本流程设计与华为迁移方案概述

    前言 本文简单介绍云化场景下业务迁移的流程,主要从迁移的背景.概述.评估.方案的设计与实施以及最后的调优与验收的五大方面阐述迁移实施的基本流程,最后介绍华为的业务迁移解决方案以及华为业务迁移方案的特点 ...

  2. 1688 复杂业务场景下的 Serverless 提效实践

    前言 首先为大家简单介绍一下我们的业务场景,1688 隶属于阿里集团的国内贸易事业部(CBU),是阿里最早起家的业务,已有十几年的历史.我们主要负责 PC 端 1688.com 以及手机端阿里巴巴 A ...

  3. 浅谈NB-IoT应用场景及方案

    浅谈NB-IoT应用场景及方案   ​说起NB-IoT相信大家一定都不陌生,可谓是近来LPWAN技术中的热门.对于NB-IoT高覆盖.低功耗.低成本的优势这里就不在赘述了.本文主要介绍NB-IoT的应 ...

  4. 搜索推荐业务场景下的特征系统搭建

    转载:https://zhuanlan.zhihu.com/p/79874983?utm_source=wechat_session 前提:前阵子受朋友的邀约,结合自己在推荐搜索系统下的经验,对企业级 ...

  5. [数据空间]浅谈信息革命背景下数字技术的变与不变

    前言 坚持在不变中强基础,在变中求发展. [数据空间]浅谈信息革命背景下数字技术的变与不变 前言 信息革命发展历程及特点 信息革命带来的影响 机遇 挑战 数字技术的发展趋势及发展方向(变) 发展趋势 ...

  6. python open找不到文件的原因_浅谈python在提示符下使用open打开文件失败的原因及解决方法...

    题目:在提示符下使用open打开一个文件 刚开始网上看了下打开的方式,结果一直实现不了,报错是没找到这个文件,而且和我输入的文件名不一样. 错误如下: >>>open('d:\456 ...

  7. 浅谈线程池(下):相关试验及注意事项

    三个月,整整三个月了,我忽然发现我还有三个月前的一个小系列的文章没有结束,我还欠一个试验!线程池是.NET中的重要组件,几乎所有的异步功能依赖于线程池.之前我们讨论了线程池的作用.独立线程池的存在意义 ...

  8. 神策数据成林松:数据智能在业务场景下的应用(附 PPT 下载)

     在神策 2020 数据驱动用户大会「上海站」现场,神策数据业务咨询师成林松分享了<数据智能在业务场景下的应用>的演讲.(文末附 PPT 下载地址) 本文根据其演讲内容整理,数据均为虚拟. ...

  9. 报名 | 美团技术沙龙第64期:美团不同业务场景下的系统架构实践

    [美团技术沙龙]由美团技术团队和美团科协主办,每期沙龙邀请美团及其他互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域.从2015年7月举办第一期美团技术沙龙至今,已经吸引了三万多名工程师 ...

最新文章

  1. 餐饮O2O创业 有用户却难变现
  2. mysql集群经常无法truncate_失败的mysql cluster配置-无法顺利转换已有数据
  3. 分享超全的 Linux 渗透测试命令速查表
  4. SAP CRM里note界面默认语言的决定逻辑
  5. 互斥锁和读写锁的区别
  6. Windows下python发送邮件_CustomEmail.py[text、html、附件、读取文本到正文]
  7. mysql表的relationship_sqlalchemy 配置多连接读写库后的relationship设置
  8. Linux/Unix IO多路复用之select网络编程(含源码)
  9. Oracle 单实例 迁移到 RAC 实例 -- 使用导出导入方法
  10. 瑞星杀毒软件网络版各版本功能差异
  11. Freeswitch+Sip.js实现软电话功能
  12. 互联网+脑科学,中国脑计划的机会
  13. java真垃圾_JAVA吧真的很垃圾!!!
  14. MBR20200CT-ASEMI肖特基二极管MBR20200CT
  15. java中的字节流和字符流
  16. Matlab中mat2str函数使用
  17. 用Android做的一个简单的视频播放器
  18. 一套完整的硬件电路设计该怎么做?
  19. 【经验】VMware|windows更新20H2版本后VMware虚拟机无法开启(禁用Device guard)
  20. 【转自知乎】软件实施工程师技能要求

热门文章

  1. 《赢在中国-蓝天碧水间》观后感
  2. 鲁大师12月新机性能榜:跑分116万,小米12 Pro夺冠
  3. 2022年R1快开门式压力容器操作考试资料及R1快开门式压力容器操作考试总结
  4. 图片加载—Glide为什么这么强?Glide源码分析(下)
  5. 控制Unity物体的旋转
  6. 上市公司财务年报中ps代表什么意思?
  7. codeforces 1244 C 数论
  8. 传浪潮预购德国奇梦达50%股权
  9. QT(2)-QRegExp
  10. android:layout_marginright 不起作用,为什么RelativeLayout的marginBottom和marginRight无法使用...