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

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

1、介绍一下微信小程序开发步骤

        熟悉开发工具:首先,你需要了解微信小程序开发工具有哪些相关的知识。微信小程序开发工具提供了图形化开发环境,使得开发者能够更容易地进行小程序的开发工作。这是基础的一步。编写小程序代码:微信小程序采用类似HTML、CSS和JavaScript等Web前端技术进行开发。你需要掌握这些基础知识,并根据具体业务需求编写各种小程序功能。这是开发过程中最重要的一步,需要深入理解并运用这些技术。功能测试:在编写完小程序代码之后,你需要使用微信开发工具进行模拟器测试以验证功能是否正常。这是一个非常重要的步骤,可以帮助你及早发现并修复可能存在的问题。

        上传并发布:完成功能测试后,你需要将小程序上传到微信小程序的开放平台,并通过一系列审核流程,最终发布小程序。这一步需要耐心等待,一旦通过审核,你的小程序就可以向公众展示。以上就是微信小程序开发的完整流程,每个步骤都至关重要,需要开发者认真对待。

2、进入微信小程序身份证读取插件官网地址

海飞思Pro+ | 小程序插件 | 微信公众平台

必备条件:运行小程序的设备或手机,必须开启NFC功能

3、根据插件集成说明集成

中软高科·小程序身份证云解码插件

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

4、温馨提示

可以先试用默认DEMO做一下读取身份证的体验²海飞思微信读卡小程序试用方式:微信界面,下拉通知框,搜索“海飞思”即可。

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值