代码拉取完成,页面将自动刷新
与芝麻信用交换公钥的步骤:
genrsa -out app_private_key.pem 1024
生成一个私钥rsa -in app_private_key.pem -pubout -out app_public_key.pem
生成公钥至此我们一共有三个秘钥文件,分别是:
在任意Node项目中可以通过npm安装
npm install zmxy --save
在保存秘钥的文件夹下创建app.js
文件
const fs = require('fs');
const ZmxyClient = require('zmxy').default;
const zmxy = new ZmxyClient({
appId: '123456', //芝麻应用App ID
appPrivateKey: fs.readFileSync(`${__dirname}/app_private_key.pem`), //App私钥
zmxyPublicKey: fs.readFileSync(`${__dirname}/zmxy_public_key.pem`) //芝麻公钥
});
zmxy.verifyIvs({
name: '张三',
mobile: '12345678901'
}).then(({ result }) => {
console.log(result);
}).catch((err) => {
console.error(err);
});
请求成功后可以看到控制台打印芝麻信用的返回
{ success: true,
biz_no: 'ZM2016102030000000XXXXXXXXX',
ivs_detail:
[ { code: 'PHONE_Match_Recency_Bad',
description: '电话号码与其他信息匹配,但匹配后的信息近期不活跃' },
{ code: 'NAME_Match_Reliability_Bad',
description: '姓名与其他信息匹配,但匹配后的信息未经认证' } ],
ivs_score: 72 }
zmxy.getIvsScore({
name: '张三',
cert_no: '532926200804058748'
}).then(({ result }) => {
console.log(result.score); //output is risk score such as 89
});
zmxy.verifyIvs({
name: '张三',
cert_no: '532926200804058748'
}).then(({ result }) => {
console.log(result.verify_code); //output is an Array contains risk codes such as ['V_CN_NA', 'V_PH_NA']
});
zmxy.getIvsWatchList({
name: '张三',
cert_no: '532926200804058748'
}).then(({ result }) => {
console.log(result.riskCode); //output is an Array contains risk codes such as ['R_CN_002']
});
由于芝麻评分需要用户授权,因此首先需要生成授权URL
授权URL可以通过姓名+身份证或者手机号得到, 同时又支持PC网页和H5页面,排列组合共4种情况如下
手机号+PC
const { url } = zmxyClient.getAuthorizeUrl({
mobile: '12345678901'
});
手机号+H5
const { url } = zmxyClient.getAuthorizeUrl({
mobile: '12345678901'
}, 'h5');
身份证+PC
const { url } = zmxyClient.getAuthorizeUrl({
name: '张三',
certNo: '111111111111111111'
});
身份证+H5
const { url } = zmxyClient.getAuthorizeUrl({
name: '张三',
certNo: '111111111111111111'
}, 'h5');
获得授权URL后, 可以在浏览器中打开此URL,根据提示授权后会被重定向到芝麻应用的回调地址, 地址Query中的params
参数会携带OpenId, 可以通过如下方式获得
const { open_id } = zmxyClient.getOpenId(params);
有了OpenID后就可以查询芝麻信用分
zmxyClient.getCreditScore('openid').then((r) => {
console.log(r.result.zm_score)
});
同上获得OpenId后可做如下查询
zmxyClient.verifyWatchlist('openid').then((r) => {
console.log(r.result.is_matched)
});
流程与芝麻认证文档一致
1. 初始化并生成biz_no
let bizNo = null;
zmxyClient.initCertification('张三', '310105912123123412').then((r) => {
bizNo = r.result.biz_no; //output is as ZM201703093000000727200705771480
});
2. 通过biz_no
生成芝麻认证URL
const url = zmxyClient.getCertificationCertifyUrl(bizNo, 'http://localhost');
3. 设备访问芝麻认证URL,再使用bizNo
查询芝麻认证结果
zmxyClient.queryCertification(bizNo).then((r) => {
console.log(r.result.passed); //output is true or false
});
由于SDK使用了request, 所以可以直接在命令行中通过环境变量开启Debug模式
NODE_DEBUG=request node app.js
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。