有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

接入准备

申请商户 ID 及获取 EidToken

详情请参考 E证通小程序接入

前置条件

1. 添加服务器域名⽩名单 ⼩程序前端接⼝请求有域名⽩名单限制,未添加⽩名单的域名只能在调试模式下运⾏。您需要在⼩程序上线前需要将以下域名添加⾄服务器域名⽩名单。
// request 合法域名
eid.faceid.qq.com
eid-enhance.faceid.qq.com
2. 添加业务域名⽩名单
在小程序配置业务域名中,将下载后的校验文件在控制台随商户 ID 提交审核时上传,待腾讯侧审核通过后,将以下域名添加⾄业务域名⽩名单。
eid.faceid.qq.com
eid-enhance.faceid.qq.com

uni-app 接入

步骤一:注册并创建 uni-app 开发环境

uni-app 开发接⼊具体参照 uni 官⽹

步骤二:下载并配置 mp_ecard_sdk 源码

2. 配置 sdk 源码。
⽅法⼀:项⽬根⽬录配置(推荐)
2.1 将 sdk 源码包 mp_ecard_sdk ⽂件夹拷⻉到项⽬根⽬录。
2.2 在 pages.json 中配置相关⻚⾯。
"pages": [
{
"path": "mp_ecard_sdk/index/index",
"style": {
"navigationBarTitleText": "腾讯云E证通授权"
}
},
// v1.0.3 以下版本需配置以下路径
{
"path": "mp_ecard_sdk/protocol/eid/eid",
"style": {
"navigationBarTitleText": "eID数字身份⼩程序服务协议",
"enablePullDownRefresh": false
}
},
{
"path": "mp_ecard_sdk/protocol/privacy/privacy",
"style": {
"navigationBarTitleText": "腾讯隐私政策",
"enablePullDownRefresh": false
}
},
{
"path": "mp_ecard_sdk/protocol/service/service",
"style": {
"navigationBarTitleText": "腾讯云E证通服务协议",
"enablePullDownRefresh": false
}
},
{
"path": "mp_ecard_sdk/protocol/userAccredit/userAccredit",
"style": {
"navigationBarTitleText": "⽤户授权协议",
"enablePullDownRefresh": false
}
}
]
⽅法⼆:任意位置⽂件夹配置
2.3 将 sdk 源码放置在其他⽂件夹下,例如 pagse/mp_ecard_sdk。
2.4 在 pages.json 中配置相关⻚⾯,pages 的 path 应为 mp_ecard_sdk 的相对位置路径,例如:pages/。
"pages": [
{
"path": "pages/mp_ecard_sdk/index/index",
"style": {
"navigationBarTitleText": "腾讯云E证通授权"
}
},
// v1.0.3 以下版本需配置以下路径
{
"path": "pages/mp_ecard_sdk/protocol/eid/eid",
"style": {
"navigationBarTitleText": "eID数字身份⼩程序服务协议",
"enablePullDownRefresh": false
}
},
{
"path": "pages/mp_ecard_sdk/protocol/privacy/privacy",
"style": {
"navigationBarTitleText": "腾讯隐私政策",
"enablePullDownRefresh": false
}
},
{
"path": "pages/mp_ecard_sdk/protocol/service/service",
"style": {
"navigationBarTitleText": "腾讯云E证通服务协议",
"enablePullDownRefresh": false
}
},
{
"path":
"pages/mp_ecard_sdk/protocol/userAccredit/userAccredit",
"style": {
"navigationBarTitleText": "⽤户授权协议",
"enablePullDownRefresh": false
}
}
],
2.5 修改 mp_ecard_sdk 下的 globalConfig.js 的 normalPath 参数,修改为对应相对路径,例如:'/pages'。注意,开头需要加'/'。
export default {
normalPath: '/pages'
}
3. 初始化
⽅法⼀:可以在 App.vue 中全局初始化。
import { initEid } from './mp_ecard_sdk/main';
export default {
onLaunch: function() {
initEid();
},
};
⽅法⼆:在需要调⽤到的⻚⾯⽅法之前初始化即可。
4. 调⽤ 在需要进⾏核身的地⽅引⼊调⽤ SDK 的⽅法 startEid。
注意
startEid 调⽤需要在 initEid 初始化之后。
import { startEid } from './mp_ecard_sdk/main'
// 示例⽅法
startEid({
data: {
token, needJumpPage
},
verifyDoneCallback(res) {
const { token, verifyDone } = res;
console.log('收到核身完成的res:', res);
console.log('核身的token是:', token);
console.log('是否完成核身:', verifyDone);
},
});
startEid() 参数说明:
startEid(options) :进⼊实名认证⻚⾯。
options :Object required 接⼊⽅传⼊的参数。
options.data.token :String required 接⼊⽅⼩程序从接⼊⽅服务端获取 EidToken。
options.data.needJumpPage:是否需要中转页,默认为 false(uni-sdk v1.0.3 及以上支持)
options.verifyDoneCallback :Function(res) required 核身完成的回调。res 包含验证成功的 token,是否完成的布尔值标志 verifyDone。请根据 res 返回的结果进⾏业务处理判断。

步骤三:半屏接入指引(可选)

如您需要实现小程序半屏模式,可参考3.4步骤进行配置,如不需要实现半屏模式,则可直接跳到 获取 E证通的核验结果信息
小程序的半屏模式可以省去小程序跳转的弹窗步骤,实现如图所示的半屏页面展示,流程体验可以联系慧眼小助手获取:




接入准备

申请半屏调用 eID 数字身份小程序
打开小程序微信管理平台后台,选择设置,第三方设置,打开半屏小程序管理,单击添加
add.jpg


输入 eID 数字身份的 AppID(联系慧眼小助手获取 AppID 并通过半屏申请)。
注意:
每个小程序最多可添加10个半屏打开的小程序。

SDK 接入

1. 请先完成 步骤一 步骤二 接入,并下载较新版本的 SDK(uni-app SDK v1.0.5及以上版本支持半屏接入)。
2. app.json 中添加如下代码,其中 AppID 为eID 数字身份的 AppID。
{
"embeddedAppIdList": ["AppID"]
}
3. SDK 接入时传入允许半屏打开参数。
import { startEid } from './mp_ecard_sdk/main';

// 示例方法
goSDK(token) {
startEid({
data: {
token,
enableEmbedded: true,
allowFullScreen: false
},
verifyDoneCallback(res) {
const { token, verifyDone } = res;
console.log('收到核身完成的res:', res);
console.log('核身的token是:', token);
console.log('是否完成核身:', verifyDone);
},
});
},

startEid() 参数说明:
半屏接入不支持时会自动降级为全屏打开。
因半屏接入是微信新上的能力,少部分机型还存在兼容性问题,请谨慎开启。
options.data.token:String required 接入方小程序从接入方服务端获取 EidToken。
options.data.needJumpPage :是否需要中转页,默认为 false(sdk v1.0.7 及以上支持)
options.data.enableEmbedded :是否支持半屏打开,默认为 false(uni-app 版 sdk1.0.5及以上支持)
options.data.allowFullScreen :半屏打开后是否支持全屏,默认为 true(uni-app 版 sdk1.0.5及以上支持)
options.verifyDoneCallback:Function(res) required 核身完成的回调。res 包含验证成功的 token,是否完成的布尔值标志 verifyDone。请根据 res 返回的结果进行业务处理判断。

注意事项

1. 每个小程序最多可添加10个半屏打开的小程序。
2. 半屏接入需向E证通eID数字身份发送半屏申请,审核通过后才会生效。
3. 半屏接入不支持时会自动降级为全屏打开。
4. 因半屏接入是微信新上的能力,少部分机型还存在兼容性问题,请确保进行过完善的测试后再上线。

获取 E 证通核验结果信息

⽤户完成⼈脸核身后,会以回调形式返回 EidToken 以及其他信息,接⼊⽅⼩程序将 EidToken 传给接⼊⽅的服务端,接⼊⽅服务端即可凭借 EidToken 参数调⽤获取⼩程序核身结果信息 GetEidResult 接⼝去获取本次核身的详细信息,最后将核身结果返回给接⼊⽅⼩程序。
说明
EidToken 作为⼀次核身流程的标识,有效时间为600秒;完成核身后,可⽤该标识获取3天内验证结果信息。

卸载 sdk

删除 mp_ecard_sdk ⽂件夹。

接⼊时序图





完整示例参考

注意事项

从 eID 数字身份⼩程序返回接⼊⽅⼩程序 当接⼊⽅⼩程序在初始化 E 证通 SDK 的时候,E 证通 SDK 会通过 wx.onAppShow 注册⼀个监听从 eID 数字身份⼩程序跳转回接⼊⽅⼩程序的事件,从⽽根据情况触发接⼊⽅传⼊的核身完成的回调函数,由于微信的机制,⽤户在 eID 数字身份⼩程序跳转回接⼊⽅⼩程序的时候,同时也会触发接⼊⽅⼩程序 app.js 中的 onShow ⽅法。为了避免冲突,如果接⼊⽅⼩程序在 onShow 中有执⾏逻辑的话,需要排除掉从 eID 数字身份⼩程序跳转回接⼊⽅⼩程序这个场景。 可通过以下⽅法实现:
// app.vue
onShow(options) {
const { referrerInfo, scene } = options;
/* 判断是否从eID数字身份⼩程序返回 */
const { appId } = referrerInfo;
if (scene === 1038 && appId === 'wx0e2cb0b052a91c92') {
return;
} else {
// 执⾏接⼊⽅⼩程序原本的逻辑
}
},
基于对个人隐私信息的保护,按照最小必要返回身份信息的要求,E证通服务不再返回姓名和身份证号的明文信息。如因业务需要返回,请查看E证通获取实名信息指引