微信小程序怎么读取身份证?
第一步:介绍一下微信小程序开发步骤:
熟悉开发工具:首先,你需要了解微信小程序开发工具有哪些相关的知识。微信小程序开发工具提供了图形化开发环境,使得开发者能够更容易地进行小程序的开发工作。这是基础的一步。编写小程序代码:微信小程序采用类似HTML、CSS和JavaScript等Web前端技术进行开发。你需要掌握这些基础知识,并根据具体业务需求编写各种小程序功能。这是开发过程中最重要的一步,需要深入理解并运用这些技术。功能测试:在编写完小程序代码之后,你需要使用微信开发工具进行模拟器测试以验证功能是否正常。这是一个非常重要的步骤,可以帮助你及早发现并修复可能存在的问题。
上传并发布:完成功能测试后,你需要将小程序上传到微信小程序的开放平台,并通过一系列审核流程,最终发布小程序。这一步需要耐心等待,一旦通过审核,你的小程序就可以向公众展示。以上就是微信小程序开发的完整流程,每个步骤都至关重要,需要开发者认真对待。
第二步:进入微信小程序身份证读取插件官网地址:
必备条件:运行小程序的设备或手机,必须开启NFC功能
第三步:根据插件集成说明集成
中软高科·小程序身份证云解码插件
1、引入插件
在小程序的app.json中,加入插件。
"plugins": {
"readcard-plugin": {
"version": "2.0.0",
"provider": "wxa2583ebacdb87a6a"
}
}
2、基础库
调试基础库 2.18.1及以上
微信版本:
iOS 暂不支持
Android 8.0.6及以上版本
3、使用插件
在需要使用身份证读卡的页面中,使用插件。
const plugin = requirePlugin('readcard-plugin');
var StatusCode = null;
var that = this;
var initSuccess = false;
Page({
data: {
idCardInfo: null,
},
() {
that = this;
StatusCode = plugin.StatusCodeEnum();
console.log("对照状态码:", StatusCode);
// 设置APPID (开始读卡之前,必须设置)
plugin.setAppId("appid联系我司商务获取");
// 设置读卡SDK参数
that.readSetting();
// 初始化NFC读卡。
// 初始化之前,请先自行判断设备是否支持NFC、系统NFC开关是否打开
that.initRead();
},
// 设置读卡SDK参数
readSetting(){
// 日志保存目录
// 默认在 Android/data/com.tencent.mm/MicroMsg/wxanewfiles目录下 搜索 zrgk_mini_log
// 不需要日志时,可以不设置
plugin.setShowLog(wx.getFileSystemManager(), wx.env.USER_DATA_PATH);
// 读卡参数设置,根据需要自行修改参数值,参数名称及类型不可修改。
var _Setting = {
decodeImageType: "dn1", // dn0: 无照片 dn1: 平台解码照片
saveLog: false, // 是否保存日志文件。设置true时,必须调用以上的 plugin.setShowLog(); 设置日志保存的目录
openLocalCache: true, // 是否开启本地缓存
// 解码服务器配置。
// 默认第1个为主服务器,优先使用。
// 其余皆为备用服务器,主服务器异常时自动切换启用
ipPortArray: [{
address: 'yfs3.sfzydq.com',
port: 9999,
canUse: true
}, {
address: "yjm2.sfzydq.com",
port: 9999,
canUse: true
}]
};
// 将参数设置给插件
plugin.readSetting(_Setting);
},
// 初始化 读卡示例代码
initRead() {
if (initSuccess == true) {
wx.showToast({
title: '已经初始化过了',
icon: 'none'
});
return;
}
// 初始化并开始读卡
plugin.startReadCard(function (code, msg, value, cardType) {
that.setData({
msg: "code:" + code + "\n" + "msg:" + msg,
});
switch (code) {
case StatusCode.ININ_OK.code: // 初始化成功
initSuccess = true;
wx.showToast({
title: '初始化成功',
icon: 'success'
});
break;
case StatusCode.ININ_FAILE.code: // 初始化失败
initSuccess = false;
if (msg.indexOf("13000") != -1) {
wx.showModal({
title: '温馨提示',
content: '设备不支持NFC',
complete: (res) => {
}
});
} else if (msg.indexOf("13001") != -1) {
wx.showModal({
title: '温馨提示',
content: '系统NFC开关未打开',
complete: (res) => {
}
});
} else {
wx.showToast({
title: msg,
icon: 'error'
})
}
break;
case StatusCode.READ_NFC_TAG.code: // 识别到NFC标签
wx.showLoading({
title: '请勿移动卡片',
});
break;
case StatusCode.READCARD_SUCCESS.code: // 解码成功
wx.hideLoading();
wx.showToast({
title: '解码成功',
icon: 'success'
});
switch (cardType) {
case StatusCode.CARD_IC.code: // IC卡
console.log("IC卡:" , value);
break;
case StatusCode.CARD_LCT_STUDENT.code: // 绿城通学生卡
console.log("绿城通学生卡:" , value);
break;
case StatusCode.CARD_LCT_NORMAL.code: // 绿城通普通卡
console.log("绿城通普通卡:" , value);
break;
case StatusCode.CARD_LCT_OLD.code: // 绿城通老年卡
console.log("绿城通老年卡:" , value);
break;
case StatusCode.CARD_IDCARD.code: // 身份证
// 读取到的身份证信息
var idCardInfo = JSON.parse(value);
console.log("身份证信息:" , idCardInfo);
// 当设置平台解码身份证照片时,
// idCardInfo.image字段,为base64编码的照片字符串,可直接用于显示
// idCardInfo.type=1080 中国居民身份证
// idCardInfo.type=1081 外国永-久居住证
// idCardInfo.type=1082 港澳台居住证
break;
}
break;
case StatusCode.READCARD_FAILE.code: // 解码失败
wx.hideLoading();
wx.showToast({
title: '解码失败' + StatusCode.READCARD_FAILE.code,
icon: 'error'
});
break;
}
});
},
/**
* 生命周期
*/
onShow() {
console.log("onShow", "界面显示");
},
onHide() {
console.log("onHide", "界面隐藏");
},
onUnload() {
console.log("onUnload", "界面销毁,需要停止读卡");
plugin.stopReadCard();
}
})
4、配置TCP合法域名
必须将参数配置时,配置的 ipPortArray 参数中的所有服务器地址,加入到合法的TCP域名,
否则无法访问到服务器。
如配置:
tcp://yjm2.sfzydq.com
tcp://yfs3.sfzydq.com
温馨提示:
可以先试用默认DEMO做一下读取身份证的体验²海飞思微信读卡小程序试用方式:微信界面,下拉通知框,搜索“海飞思”即可。