学习
实践
活动
专区
工具
TVP
写文章
专栏首页腾讯云AI最佳实践 | 用腾讯云慧眼人脸核身为诚信考试保驾护航
原创

最佳实践 | 用腾讯云慧眼人脸核身为诚信考试保驾护航

点击参与:腾讯云AI用户实践有奖征稿活动!

2020年新冠疫情爆发后,疫情之下的考试在各国均受到不同程度的影响,“延期”、“取消”、“补考”成为各国考生的“赶考”关键词,传统意义上的线下考试工作面临较大的人群聚集风险,而且十分依赖人工监考模式,人力物力成本趋高。

随之而来的是在线考试大潮来临,从校园到职场,尤其是学业考试、培训认证考试等因疫情原因都转到线上进行,各行业在线考试的需求集中爆发。而线上考试一个首要难题就是用户从平台注册到考试登陆等环节都需要实名身份核验,依赖于人工手段核验,必然占用过多人力财力。那么,有没有更智能的方式呢?

作为一名开发者,期间也有参加不少线上培训认证考试的经历,经过一番调研,从产品易用性和性价比看,发现腾讯云慧眼人脸核身在考试领域已有成熟应用,不仅可以满足考试用户身份核验,在考试过程中,如需随机抽选查看是否违规,还可以结合人脸识别等能力达到防作弊的管理。

接下来,将详细讲述我是如何使用腾讯云慧眼人脸核身能力,完成在线考试过程中用户身份核验的。

一、准备工作

准备工作包括:开通人脸核身服务、业务申请、了解腾讯云慧眼人脸核身配置、获取账号的云API密钥5个步骤,下面一一详细介绍:

第一步:开通人脸核身服务

我们先进入腾讯云慧眼 人脸核身控制台 ,首次使用人脸核身服务的用户,需要先开通人脸核身服务。直接点击提交申请,按照实际情况填写信息,提交申请。

特别提醒:

1. 互联网行业和金融行业必须上传业务相关营业资质。

2. 因为腾讯云E证通服务不仅支持权威库比对,还支持客户自传身份证照片,所以需要的功能组合为:活体人脸核身(完成活体检测后照片与权威库比对)和身份信息实名验证(二要素)。

第二步:业务申请

成功开通人脸核身服务后,进入自助接入页面。E证通服务目前只向已完成企业实名认证的腾讯云用户开发,使用服务前需要通过企业资质审核。

点击认证指引按钮进入企业账号认证指引页面,按照指引完成企业账号实名认证。

企业认证完成后即可进行商户ID申请,开启E证通服务。

第三步:了解腾讯云E证通服务

首先可以在官网产品简介页面了解E证通服务的功能和优势等。

第四步:获取账号的云API密钥

我们需要个人密钥。在腾讯云访问管理的API密钥管理页面,我们新建了个人密钥。 注意:所申请的API密钥需要妥善保管。

二、接入E证通人脸核身服务

第一步:查看接入文档并选择接入方式

首先查看E证通接入文档,在左侧目录栏中可以看到E证通的接入方式有三种:E证通小程序接入、E证通小程序接入(uni-app)和E证通H5接入。其中E证通小程序接入和E证通小程序接入(uni-app)需要微信小程序支持,实现接入方小程序和eID小程序之间的交互逻辑,而H5接入方式只需要接入方后台调用E证通服务接口,就可以得到一个用户可访问的H5页面。

结合在线考试身份核验应用场景,我们选择基于H5的E证通服务进行接入。

第二步:确定交互流程

查看E证通H5接入指引我们能够知道,E证通H5接入方式需要与E证通后端接口交互两次,分别是:初始时获取EidToken和核身URL,考生完成核身流程后获取核验结果。获取核验结果又有两种方式:轮询和重定向,在这个场景下,我们选择重定向方式,时序图如下所示。

其中,接入方前端为考生个人微信,接入方服务端为我们实现的接入逻辑。整个实现流程为:

1. 给考生发放一个二维码,这个二维码指向接入方调用GetEidToken的接口 2.,考生使用微信扫描二维码后跳转到核身Url指定的核身H5页面,进行身份证OCR识别以及人脸识别身份核验 ,核身完成后自动调用RedirectUrl指定的获取核验结果的接入方后端接口 3. 由于E证通的重定向方式会自动将token作为参数传入RedirectUrl指定的接口,所以接入方获取结果的接口能够拿到token,调用E证通后端提供的GetEidResult接口,获得核验结果

通过下面这个实际使用页面中的流程图能够形象的说明这一过程。

第三步:接入实现

基于第二步的分析,我们只需要实现两个接入方后端接口即可完成对E证通H5方式的接入,同时为了实现通过扫描二维码启动身份核验,需要实现一个获取指向getToken接口的二维码的接口。 主函数中开放出三个接口,实现如下:

func main() {
   // http请求路径和接口名
   http.HandleFunc("/gettoken", getToken)
   http.HandleFunc("/redirect", getResult)
   http.HandleFunc("/getqrcode", getQRCode)

   // 在IP:Port开启服务
   err := http.ListenAndServe("ServerIP:Port", nil)
   if err != nil {
      fmt.Println("ListenAndServe Error:", err.Error())
   }
}

三个http接口的实现如下:

1.getToken接口: 由考生触发,调用E证通后端GetEidToken,获取到核身Url,考生进行刷脸认证。基于Go的实现如下:

func getToken(w http.ResponseWriter, req *http.Request) {
   credential := common.NewCredential(
      "SecretId",
      "SecretKey",
   )
   cpf := profile.NewClientProfile()
   cpf.HttpProfile.Endpoint = "faceid.tencentcloudapi.com"
   client, _ := faceid.NewClient(credential, "", cpf)

   request := faceid.NewGetEidTokenRequest()

   // 装填参数
   merchantId := "MerchantId"
   redirectUrl := "http://ServerIP:Port/redirect"
   request.MerchantId = &merchantId
   request.RedirectUrl = &redirectUrl

   // 发起调用
   response, err := client.GetEidToken(request)
   if _, ok := err.(*errors.TencentCloudSDKError); ok {
      fmt.Printf("An API error has returned: %s", err)
      return
   }
   if err != nil {
      panic(err)
   }
   // 控制前端H5页面跳转
   http.Redirect(w, req, *response.Response.Url, 302)
}

2.getResult接口: RedirectUrl指定,考生在H5页面完成核身后,由E证通前端自动调用,传入本次核验的token,获取核验结果。给予Go的实现如下:

func getResult(w http.ResponseWriter, req *http.Request) {
   credential := common.NewCredential(
      "SecretId",
      "SecretKey",
   )

   cpf := profile.NewClientProfile()
   cpf.HttpProfile.Endpoint = "faceid.tencentcloudapi.com"
   client, _ := faceid.NewClient(credential, "", cpf)

   request := faceid.NewGetEidResultRequest()
   // 装填参数
   err := req.ParseForm()
   if err != nil {
      fmt.Println(err.Error())
   }
   token, found := req.Form["token"]
   if !found {
      fmt.Println("参数解析出错")
   }
   request.EidToken = &token[0]
   // 发起结果查询
   response, err := client.GetEidResult(request)
   if _, ok := err.(*errors.TencentCloudSDKError); ok {
      fmt.Println("An API error has returned: %s", err)
      return
   }
   if err != nil {
      panic(err)
   }
   // 获取结果信息
   code := response.Response.Text.ErrCode
   name := response.Response.Text.Name
   if *code == 0 {
      res := "认证通过,该用户是" + *name
      fmt.Println(res)
      fmt.Fprint(w, res)
   } else {
      res := "!!!认证未通过,该用户不是" + *name
      fmt.Println(res)
      fmt.Fprint(w, res)
   }
}

3.获取二维码的接口实现代码如下:

func getQRCode(w http.ResponseWriter, req *http.Request) {
   err1 := req.ParseForm()
   if err1 != nil {
      fmt.Println(err1.Error())
   }
   url := "http://ServerIP:Port/gettoken"
   // 设置http响应头首部行
   w.Header().Set("content-type", "image/png")
   w.Write(stringToQR(url))
}

// 字符串转二维码
func stringToQR(url string) []byte {
   res, err := qrcode.Encode(url, qrcode.Medium, 256)
   if err != nil {
      fmt.Println(err.Error())
   }
   return res
}

在接入过程中,我们可以充分利用官方文档的API接口范例,得到对接口的调用框架代码,只需要在里面完成自己的逻辑就行。这里以获取E证通Token为例,说明一下如何使用官方API调用范例。 首先在E证通接入页面点击“获取E证通Token”,进入接口调用说明页面

然后在接口说明页面中选择“点击调试”,进入接口调试界面,选择语言,复制代码即可。

三、效果展示

最后我们在同一网段搭建测试环境,使得手机能够访问pc提供的服务(实际场景中将服务部署在公网即可),最后得到完整测试结果如下所示:查看视频

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

相关文章

  • 最佳实践 | 用腾讯云AI意愿核身为电话合规保驾护航

    近些年,不法分子盗用他人的电话信息实施诈骗严重影响了部分人的正常生活。针对这一情况,运营商也加强了对高危电话用户进行二次实人、实名、语音认证,提醒用户使用的电话...

    腾讯云AI
  • 腾讯云AI牵头制定2项计算机视觉标准

    6月30日,中国电子工业标准化技术协会正式发布《人工智能 深度合成图像系统技术规范》《人工智能 智能字符识别技术规范》《人工智能 视频图像审核系统技术规范》等3...

    腾讯云AI
  • 汽车出行行业云月刊【2022年7月刊】

    汽车出行行业云月刊
  • 【优秀最佳实践展播】第10期:腾讯云 AI

    腾讯云文档
  • 看过来~腾讯云AI用户实践有奖奖奖征稿啦!

    @参考范文 1/最佳实践|用腾讯云AI文字识别实现企业资质证书识别 2/最佳实践 | 用腾讯云AI语音识别零基础实现小程序语音输入法 3/最佳实践 | 用腾讯云...

    腾讯云AI
  • 创新之星!腾讯可信人脸安全能力再获权威认可

    为推动和引领人工智能领域创新发展,近日中国人工智能产业发展联盟、厦门人工智能安全研究院组织开展了2021人工智能“创新之星”、“创新人物”评选工作。 凭借在人脸...

    腾讯云AI
  • 腾讯云大学抗「疫」特别专题第二期--云产品公开课之人工智能系列课

    【云产品公开课之人工智能】系列课,让您足不出户,即可享受优质的学习资源,就能完成开发技能升级。

    可可爱爱没有脑袋
  • 筑牢金融自主安全锁

    近日,在某国产化测试项目中,依托腾讯优图实验室自研的安全产品——腾讯云慧眼私有化解决方案,通过适配海光x86,成功运行在银河麒麟操作系统V10和统信操作系统UO...

    腾讯云AI
  • 腾讯云核心伙伴生态沙龙——华南区域基础产品专场

    腾讯云与基础产品生态的结合,为产品赋能刺激生态活起来,助力产业经济焕发新生。产业数字化已经初显成果,智能将为行业带来更普惠的服务、更高效的生产、更广阔的市场;我...

    腾讯云AI
  • 真假美猴王,谁在撒谎?

    在电视剧《西游记》中, 孙悟空经常去天宫搬请救兵,其中“真假美猴王”的片段尤为深刻: “六耳猕猴化作孙悟空的模样,打昏唐僧,抢走行李,要自己上西天拜佛求经。后来...

    腾讯云AI
  • 突出贡献单位!

    近日,可信人脸应用守护计划(以下简称“护脸计划”)在线上成功召开了2022年度第一次全体成员大会,会上重磅公布了2021年度“护脸计划”突出贡献单位及个人评选成...

    腾讯云AI
  • 直播预告 | 社交文娱赛道如何卷赢对手?

    移动互联网增长见顶已是一个公认的事实。 中国互联网络信息中心 (CNNIC)发布的《中国互联网络发展状况统计报告》显示,截至2021年12月,中国手机网民用户规...

    腾讯云AI
  • AI 专题用户实践征文

    2. 投稿内容必须保证内容原创性,实践过程真实、内容代码化,一经发现侵权行为,取消活动参与资格。

    腾讯云文档
  • 最佳实践|用腾讯云AI文字识别实现企业资质证书识别

    企业经营活动中,资质证书是证明企业生产能力的必要证件,也是企业入驻各类平台、组织项目申报等必须提交的,这里面包括营业执照、税务登记证、生产许可证、高新技术企业认...

    腾讯云AI
  • 首批!腾讯云慧眼成为国检中心首批通过测评的人脸安全产品

    近日,在国家工业信息安全发展研究中心主办的人工智能融合发展与安全应用研讨会上,国家语音及图像识别产品质量检验检测中心正式发布了首批人脸识别系统安全测评结果—— ...

    腾讯云AI
  • 国产化,中国AI有底气!

    提到国产化, 我们总能看到一些耀眼与刺眼的存在! 前段时间有一则报道,记忆犹新: “东欧土地上骤然开启的冲突,掀起了一场声势浩大的限制风潮,比如开源软件限制...

    腾讯云AI
  • 火热招募!第二届腾讯Light·公益创新挑战赛等你来参赛

    第二届腾讯Light·公益创新挑战赛 正火热招募中 本届大赛由全国妇联宣传部指导,腾讯公司联合中国儿童中心主办,企鹅伴成长、腾讯华东总部、腾讯SSV创新办学实...

    腾讯云AI
  • 又双叒叕入选!

    近日,由中国中小企业发展促进中心、中国中小企业国际合作协会共同主办的第十一届APEC中小企业技术交流暨展览会—人工智能促进中小企业创新应用发展国际论坛在北京成功...

    腾讯云AI
  • 腾讯云财税管家重磅发布,以合规+效率赋能数字化升级

    12月10日,腾讯云联合高灯科技正式发布了腾讯云财税管家,双方通过数字化技术,围绕财税服务、费用管理、发票管理、差旅助手、智慧到店、税盘托管合力打造全场景合规服...

    腾讯云AI

扫码关注腾讯云开发者

领取腾讯云代金券