芝麻信用 NodeJS SDK
該項(xiàng)目是芝麻信用平臺(tái)的 NodeJS SDK 開(kāi)發(fā)包,非官方!
接入流程
1. 注冊(cè)芝麻信用商家服務(wù)平臺(tái)并簽約
2. 在芝麻信用商家服務(wù)平臺(tái)創(chuàng)建商家應(yīng)用并交換公鑰
與芝麻信用交換公鑰的步驟:
進(jìn)入openssl
運(yùn)行
genrsa -out app_private_key.pem 1024生成一個(gè)私鑰運(yùn)行
rsa -in app_private_key.pem -pubout -out app_public_key.pem生成公鑰進(jìn)入芝麻信用后臺(tái),將生成的公鑰 去除 首行 / 尾行 / 換行符 粘貼進(jìn)應(yīng)用的公鑰一欄
應(yīng)用創(chuàng)建后,點(diǎn)擊應(yīng)用的芝麻公鑰一欄,得到芝麻信用的公鑰(原始格式)
將其整理為RSA公鑰形式, 即加入首行,尾行,以及每64字符就換行, 并保存為 zmxy_public_key.pem
至此我們一共有三個(gè)秘鑰文件,分別是:
app_private_key.pem 應(yīng)用私鑰
zmxy_public_key.pem 芝麻信用公鑰
app_public_key.pem 應(yīng)用公鑰(僅用于調(diào)試)
3. 使用SDK
在任意Node項(xiàng)目中可以通過(guò)npm安裝
npm install zmxy --save
在保存秘鑰的文件夾下創(chuàng)建app.js文件
const fs = require('fs');const ZmxyClient = require('zmxy').default;const zmxy = new ZmxyClient({
appId: '123456', //芝麻應(yīng)用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);
});
請(qǐng)求成功后可以看到控制臺(tái)打印芝麻信用的返回
{ success: true,
biz_no: 'ZM2016102030000000XXXXXXXXX',
ivs_detail:
[ { code: 'PHONE_Match_Recency_Bad',
description: '電話(huà)號(hào)碼與其他信息匹配,但匹配后的信息近期不活躍' },
{ code: 'NAME_Match_Reliability_Bad',
description: '姓名與其他信息匹配,但匹配后的信息未經(jīng)認(rèn)證' } ],
ivs_score: 72 }
SDK功能
反欺詐信息驗(yàn)證
zmxy.verifyIvs({
name: '張三',
mobile: '12345678901'}).then(({ result }) => { console.log(result);
});
查詢(xún)芝麻評(píng)分
由于芝麻評(píng)分需要用戶(hù)授權(quán),因此首先需要生成授權(quán)URL
生成授權(quán)URL
授權(quán)URL可以通過(guò)姓名+身份證或者手機(jī)號(hào)得到, 同時(shí)又支持PC網(wǎng)頁(yè)和H5頁(yè)面,排列組合共4種情況如下
手機(jī)號(hào)+PC
const { url } = zmxyClient.getAuthorizeUrl({
mobile: '12345678901'});
手機(jī)號(hào)+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');
獲得OpenId
獲得授權(quán)URL后, 可以在瀏覽器中打開(kāi)此URL,根據(jù)提示授權(quán)后會(huì)被重定向到芝麻應(yīng)用的回調(diào)地址, 地址Q(chēng)uery中的params參數(shù)會(huì)攜帶OpenId, 可以通過(guò)如下方式獲得
const { open_id } = zmxyClient.getOpenId(params);
查詢(xún)芝麻信用分
有了OpenID后就可以查詢(xún)芝麻信用分
zmxyClient.getCreditScore('openid').then((r) => { console.log(r.result.zm_score)
});
查詢(xún)行業(yè)關(guān)注名單
同上獲得OpenId后可做如下查詢(xún)
zmxyClient.verifyWatchlist('openid').then((r) => { console.log(r.result.is_matched)
});
開(kāi)啟調(diào)試
由于SDK使用了request, 所以可以直接在命令行中通過(guò)環(huán)境變量開(kāi)啟Debug模式
NODE_DEBUG=request node app.js
