1、添加服务器域名白名单
小程序前端接口请求有域名白名单限制,未添加白名单的域名只能在调试模式下运行。您需要在小程序上线 前需要将以下域名添加至服务器域名白名单:
// request 合法域名
sdk.253.com
eid.faceid.qq.com
2、添加业务域名白名单
在小程序配置业务域名中,将下载后的校验文件发给我们的对接人员,待对接人员完相应的操作后,将以下域名添加至业务域名白名单:
eid.faceid.qq.com
将小程序 SDK 文件夹放在小程序根目录下。
删除mp_ecard_sdk文件夹。
1、初始化SDK
在 app.js 文件中引入初始化SDK的方法 initEid;
在 App.js 的 onLaunch() 中加入相应代码,在 App.json 文件里添加E证通SDK⻚面;
在 onLaunch 方法中调用 initEid;
在app.js配置如下内容
// request 合法域名 eid.faceid.qq.com
import { initEid } from './mp_ecard_sdk/main';
App({
onLaunch() {
initEid();
},
});
在app.json配置如下内容
{
"pages":[
"mp_ecard_sdk/index/index",
"mp_ecard_sdk/protocol/service/index",
"mp_ecard_sdk/protocol/privacy/index",
"mp_ecard_sdk/protocol/userAccredit/index",
"mp_ecard_sdk/protocol/eid/index"
]
}
在需要进行核身的地方引入调用SDK的方法 startEid;
在业务需要的时机触发 startEid;
接入方服务端调用获取认证Token 【getToken】 接口,传入服务所需信息获取到 token。
import { startEid } from './mp_ecard_sdk/main';
// 示例⽅法
goSDK(token) {
startEid({
data: {
token,
},
verifyDoneCallback(res) {
const { token, verifyDone } = res;
console.log('收到核身完成的res:', res);
console.log('核身的token是:', token);
console.log('是否完成核身:', verifyDone);
},
});
},
startEid参数说明:
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
token | String | 是 | 接入方小程序从接入方服务端获取eid_token |
verifyDoneCallback | Function | 是 | 核身完成的回调。 res 包含验证成功的 token,是否完成的布尔值标志 verifyDone。请根据res返回的结果进行业务处理判断。 |
用户完成人脸核身后,会以回调形式返回 eid_token 以及其他信息,接入方小程序将 eid_token 传给接入方的服务端,接入方服务端即可凭借 eid_token 参数调用获取小程序核身结果信息 【check】 接口去获取本次核身的详细信息,最后将核身结果返回给接入方小程序。
请在微信开发者工具中使用手机“预览”模式进行调试,请勿使用“真机调试”。
由于微信的机制,用户在eID数字身份小程序跳转回接入方小程序的时候,同时也会触发接入方小程序 app.js 中的 onShow 方法。为了避免冲突,如果接入方小程序在 onShow 中有执行逻辑的话,需要排除掉从eID数 字身份小程序跳转回接入方小程序这个场景。
可通过以下方法实现:
// app.js
onShow(options) {
const { referrerInfo, scene } = options;
/* 判断是否从eID数字身份⼩程序返回 */
const { appId } = referrerInfo;
if (scene === 1038 && appId === 'wx0e2cb0b052a91c92') {
return;
} else {
// 执⾏接⼊⽅⼩程序原本的逻辑
}
}