新闻详情

微信支付宝小程序怎么读取身份证?

郑州中软高科信息技术有限公司
117次浏览 2024-10-08

微信小程序怎么读取身份证?


第一步:介绍一下微信小程序开发步骤:


掌握开发环境:初始阶段,你需要熟悉微信小程序的开发工具及其相关知识。微信小程序开发工具为开发者提供了一个直观的图形化界面,极大地简化了开发过程。这一步骤是入门的基础。

编写代码实现:微信小程序的开发基于Web前端技术,如HTML、CSS和JavaScript。开发者需精通这些技术,并结合实际业务需求来编写小程序的功能代码。这一环节是整个开发流程中最为核心的部分,需要对相关技术有深刻的理解和熟练的应用。

功能验证:在代码编写完成之后,利用微信开发工具的模拟器功能进行测试,以确保小程序的各项功能按预期工作。这个步骤至关重要,它能帮助开发者及时发现并解决潜在的问题。

上传与发布:测试无误后,将小程序上传至微信小程序的开放平台,并经历必要的审核流程,以便最终将小程序推向市场。这个过程可能需要一些耐心,因为审核通常需要一定时间。一旦审核通过,你的小程序将可以向用户正式发布。

以上便是微信小程序开发的全过程,每个环节都不可或缺,开发者应给予充分的重视并逐一完成。



第二步:进入微信小程序身份证读取插件官网地址:

https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wxa2583ebacdb87a6a

必备条件:运行小程序的设备或手机,必须开启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,

},

onLoad() {

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


海飞思微信读卡小程序试用方式:微信界面,下拉通知框,搜索“海飞思”即可。


郑州中软高科信息技术有限公司
所在地:河南省-郑州市