前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信普通H5接入腾讯云慧眼活体人脸核身SAAS服务

微信普通H5接入腾讯云慧眼活体人脸核身SAAS服务

原创
作者头像
周朋伟
修改2020-11-10 17:36:47
9K4
修改2020-11-10 17:36:47
举报
文章被收录于专栏:腾讯云大数据与AI专家服务

导语

腾讯云慧眼人脸核身(原金融级身份认证升级版)是一组对用户身份信息真实性进行验证审核的服务套件,提供各类认证功能模块,包含证件 OCR 识别、活体检测、人脸1:1对比等能力,以解决行业内大量对用户身份信息核实的需求,广泛应用于金融、运营商、共享出行等领域。

腾讯云慧眼人脸核身提供身份证 OCR、活体检测、1:1人脸比对的配套服务,引擎能力领先,并且可根据需求灵活组合。

腾讯云慧眼人脸核身产品功能
腾讯云慧眼人脸核身产品功能

腾讯云慧眼人脸核身的活体人脸核身提供 API 接口PAAS服务和SaaS 服务两种方式。SaaS 服务支持:微信公众号 H5、微信小程序、App sdk、H5、PC web的渠道接入。如果是微信原生H5浮层模式或者微信小程序,想要接入SAAS服务,需要符合一定的资质条件,用于微信侧审核。由于资质门槛较高,笔者并没有满足条件的公众号和小程序,因此只能使用另一种大众模式——微信普通H5。这种模式下,只要是公众号都可以接入SAAS服务。

笔者注册的公众号是未认证的个人订阅号,以此作为demo,利用NodeJS部署后端服务,给大家详细介绍如何接入人脸核身的SAAS服务。最终实现的效果为:点击公众号下方菜单中的“静默活体”,跳转进入人脸核身SAAS服务,完成核身后回调到腾讯云人脸核身产品官网首页。(此处可以放一个流程图&四张图片组合)

成功接入后的最终展示效果
成功接入后的最终展示效果

下面介绍详细的服务部署流程。

前置准备

1.公众号

2.腾讯云CVM云服务器:标准型S5 1核2G CentOS 8.0

上述准备大家自行完成,都较为基础和简单。

详细步骤

一、人脸核身控制台普通H5接入配置

开通人脸核身服务后,进入到人脸核身控制台,在“自助接入”中选择“微信H5/小程序服务”,点击“创建业务流程”:

创建业务流程概览
创建业务流程概览

选择“微信H5(普通模式)”,输入微信公众号名称:

应用场景配置
应用场景配置

输入“页面标题”,“业务名称”,“业务描述”字段内容:

接入配置之首页
接入配置之首页

选择比对库源,本文选择“跟公安权威库比对”:

接入配置之对比源选择
接入配置之对比源选择

选择身份信息传入方式,根据用户的选择,在页面最下方会明确提示,调用“实名核身鉴权”时是否传入姓名和身份证号:

接入配置之身份信息传入
接入配置之身份信息传入

选择活体检测方式:

接入配置之活体检测方式选择
接入配置之活体检测方式选择

配置结果页面的提示文案:

接入配置之结果页面
接入配置之结果页面

最后,确认业务配置流程,并提交审核:

业务流程配置确认
业务流程配置确认

审核通过后,我们就可以利用此次生成的RuleID进行SAAS服务调用了。

审核通过界面展示
审核通过界面展示

二、搭建服务端Express框架环境

登录云服务器,切换到root用户,安装node运行环境:

代码语言:txt
复制
yum install nodejs

验证node安装是否成功:

代码语言:txt
复制
node -v

安装Express框架:

代码语言:txt
复制
npm install express-generator -g

使用-h选项显示express的命令选项:

代码语言:txt
复制
express -h

在当前工作目录下创建名为generalH5的Express应用程序

代码语言:txt
复制
express --view=pug generalH5

安装依赖项:

代码语言:txt
复制
cd generalH5
npm install

至此,完成Express框架的搭建,可直接运行:

代码语言:txt
复制
npm start

此时默认会在3000端口开启服务,访问"{云服务器IP}:3000",即可看到Express默认首页:

Express框架搭建后的默认首页
Express框架搭建后的默认首页

三、微信公众号开发者模式

1. 登录公众号的管理后台,选择左侧的“开发”下的“开发者工具”。此处重点关注:

  • “开发者文档”:基于微信平台进行二次开发的文档说明。
  • “在线接口调试工具”:http请求发送工具,免除安装postman等工具的麻烦。
  • “公众平台测试账号”:拥有所有高级权限的测试账号。

公众号开发者工具
公众号开发者工具

2. 进入“公众平台测试账号”,在“测试号信息”下,记录appID和appsecret。同时,找到“测试二维码”,利用微信扫描关注该账号。接下来的操作都是对该测试号的更改和配置。

测试号管理中的关键信息
测试号管理中的关键信息

3. 进入“在线接口调试工具”,完成测试号底部菜单栏的设置:

  • 利用“基础支持”中的“获取access_token接口”,传入appid和appsecret,完成access_token的获取。所有的接口请求都要利用该access_token值,完成接口鉴权。
调用“获取access_token”接口
调用“获取access_token”接口
  • 利用“自定义菜单”中的“自定义菜单创建接口”,传入access_token和body内容,完成底部菜单栏的配置。
配置公众号底部菜单内容
配置公众号底部菜单内容

其中的body内容,参考“开发者文档”中的“自定义菜单”->“创建接口”完成,url设置为部署Express应用程序的{服务器IP地址}:{端口号}/{接口路径},具体json如下:

代码语言:javascript
复制
{
    "button": [
        {
            "name": "人脸核身", 
            "sub_button": [
                {
                    "type": "view", 
                    "name": "静默活体", 
                    "url": "http://{服务器IP地址}:{端口号}/{接口路径}"
                }
            ]
        }
    ]
}

四、服务端逻辑开发

服务端逻辑开发主要利用人脸核身SAAS服务的“实名核身鉴权”接口,根据文档填写入参(本例中并不需要填写IdCard和Name,必填RuleId)。

参数名称

必选

类型

描述

Action

String

公共参数,本接口取值:DetectAuth。

Version

String

公共参数,本接口取值:2018-03-01。

Region

String

公共参数,详见产品支持的 地域列表

RuleId

String

用于细分客户使用场景,申请开通服务后,可以在腾讯云慧眼人脸核身控制台(https://console.cloud.tencent.com/faceid) 自助接入里面创建,审核通过后即可调用。如有疑问,请加慧眼小助手微信(faceid001)进行咨询。

TerminalType

String

本接口不需要传递此参数。

IdCard

String

身份标识(未使用OCR服务时,必须传入)。 规则:a-zA-Z0-9组合。最长长度32位。

Name

String

姓名。(未使用OCR服务时,必须传入)最长长度32位。中文请使用UTF-8编码。

RedirectUrl

String

认证结束后重定向的回调链接地址。最长长度1024位。

Extra

String

透传字段,在获取验证结果时返回。

ImageBase64

String

用于人脸比对的照片,图片的Base64值; Base64编码后的图片数据大小不超过3M,仅支持jpg、png格式。请使用标准的Base64编码方式(带=补位),编码规范参考RFC4648。

接口成功调用后,有三个关键出参,其中的Url就是我们需要跳转过去的核身页面:

参数名称

类型

描述

Url

String

用于发起核身流程的URL,仅微信H5场景使用。

BizToken

String

一次核身流程的标识,有效时间为7,200秒; 完成核身后,可用该标识获取验证结果信息。

RequestId

String

唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

介绍完使用的主要接口,接下来,利用Express框架,完成后端服务接口http://81.xx.xx.xx:3000/faceid的逻辑开发。根据框架设计,主要修改routes目录下的index.js即可。

Express框架的目录结构
Express框架的目录结构

首先,安装腾讯云的NodeJS SDK,用于接口鉴权和调用,切换到generalH5目录下,执行:

代码语言:txt
复制
npm install tencentcloud-sdk-nodejs --save

其次,调用DetectAuth接口,获取biztoken和静默活体服务的url,可以利用API 3.0 Explorer工具生成的代码:

DetectAuth接口调用
DetectAuth接口调用

最后,将在/router/index.js中添加调用DetecAuth接口的代码,完成整体逻辑,具体代码如下:

代码语言:txt
复制
var express = require('express');
var router = express.Router();
const tencentcloud = require("tencentcloud-sdk-nodejs");
const FaceidClient = tencentcloud.faceid.v20180301.Client;

/* GET home page. */
router.get('/', function (req, res, next) {
  res.render('index', { title: 'Express' });
});

// faceid接口逻辑,调用实名核身鉴权DetectAuth接口
router.get('/faceid', function (req, res) {
  const clientConfig = {
    credential: {
      secretId: "xxx",//替换成自己的secrecId
      secretKey: "xxx",//替换成自己的secretKey
    },
    region: "ap-guangzhou",
    profile: {
      httpProfile: {
        endpoint: "faceid.tencentcloudapi.com",
      },
    },
  };

  const client = new FaceidClient(clientConfig);
  const params = {
    "RuleId": "0",
    "RedirectUrl": "http://cloud.tencent.com"//这里一定要带有http://头部
  };
  client.DetectAuth(params).then(
    (data) => {
      console.log(data);
      console.log(data.Url);
      res.redirect(data.Url);//跳转到DetectAuth接口返回的Url,完成人脸核身
    },
    (err) => {
      console.error("error", err);
      res.send(err);
    }
  );
});

module.exports = router;

至此,整体服务搭建完毕,在服务器后台generalH5再次启动服务,即大功告成:

代码语言:txt
复制
npm start

总结

微信普通H5接入人脸核身SAAS服务,一共包括微信公众号使用、人脸核身SAAS接口、Express框架部署等三方面内容。涉及的面较非常广,本文只是将搭建过程进行了展示,如果大家对上述三个方面有更高的要求,都可以深入去了解学习,每一块都包含很深的技术知识。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导语
  • 前置准备
  • 详细步骤
    • 一、人脸核身控制台普通H5接入配置
      • 二、搭建服务端Express框架环境
        • 三、微信公众号开发者模式
          • 四、服务端逻辑开发
          • 总结
          相关产品与服务
          人脸核身
          腾讯云慧眼人脸核身是一组对用户身份信息真实性进行验证审核的服务套件,提供人脸核身、身份信息核验、银行卡要素核验和运营商类要素核验等各类实名信息认证能力,以解决行业内大量对用户身份信息核实的需求,广泛应用于金融、运营商、共享出行等领域。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档