自学内容网 自学内容网

中软高科支付宝小程序身份证解码插件集成说明

1、引入插件

在小程序的app.json中,加入插件。

"plugins": {
    "readcard-plugin": {
      "version": "*",
      "provider": "2021004143649912"
    }
}

2、使用插件

在需要使用身份证读卡的页面中,使用插件。


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();

    // 初始化读卡
    that.initRead();
  },

  // 设置读卡SDK参数
  readSetting(){
    // 不需要日志时,可以不设置
    plugin.setShowLog(my.getFileSystemManager(), my.env.USER_DATA_PATH);

    // 读卡参数设置,根据需要自行修改参数值,参数名称及类型不可修改。
    var _Setting = {
      decodeImageType: "dn1", // dn0: 无照片   dn1: 平台解码照片
      readCardType: 7, // 2:NFC  7:蓝牙外设读卡器
      saveLog: false, // 是否保存日志文件。设置true时,必须调用以上的 plugin.setShowLog(); 设置日志保存的目录
      openLocalCache: true, // 是否开启本地缓存
      // 解码服务器配置
      ipPortArray: [{
        address: 'ws.mtjsoft.cn',
        port: 443,
        canUse: true
      }]
    };
    // 将参数设置给插件
    plugin.readSetting(_Setting);
  },

  // 初始化 读卡示例代码
  initRead() {
    if (initSuccess == true) {
      my.showToast({
        content: '已经初始化过了',
        type: 'none'
      });
      return;
    }
    // 初始化并开始读卡
    plugin.startReadCard(function (code, msg, value, cardType) {
      let code_msg = "code:" + code + "\n" + "msg:" + msg;
      that.setData({
        msg: code_msg,
      });
      switch (code) {
        case StatusCode.ININ_ING.code: // 初始化中
          my.showLoading({
            content: '初始化中...'
          });
          break;
        case StatusCode.ININ_OK.code: // 初始化成功
          my.hideLoading();
          initSuccess = true;
          my.showToast({
            content: '初始化成功',
            type: 'success'
          })
          break;
        case StatusCode.ININ_FAILE.code: // 初始化失败
          my.hideLoading();
          initSuccess = false;
          if (msg.indexOf("61000") != -1) {
            my.showModal({
              title: '温馨提示',
              content: '设备不支持NFC',
              complete: (res) => {}
            });
          } else if (msg.indexOf("61001") != -1) {
            my.showModal({
              title: '温馨提示',
              content: '系统NFC开关未打开',
              complete: (res) => {}
            });
          } else {
            my.showToast({
              content: msg,
              type: 'fail'
            })
          }
          break;
        case StatusCode.FIND_CARD_START.code: // 开始寻卡
          my.showToast({
            content: '开始寻卡',
            type: 'success'
          })
          break;
        case StatusCode.FIND_CARD_SUCCESS.code: // 寻卡成功
          my.showToast({
            content: '寻卡成功',
            type: 'success'
          })
          break;
        case StatusCode.READCARD_START.code: // 解码中
          my.showLoading({
            content: '请勿移动卡片',
          })
          break;
        case StatusCode.READCARD_SUCCESS.code: // 解码成功
          my.hideLoading();
          my.showToast({
            content: '解码成功',
            type: '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 港澳台居住证
              // idCardInfo.type=1083 旧版外国永久居住证
              break;
          }
          break;
        case StatusCode.READCARD_FAILE.code: // 解码失败
          my.hideLoading();
          my.showToast({
            content: '解码失败' + msg,
            type: 'fail'
          })
          break;
      }
    });
  },

  onShow() {
    console.log("onShow", "界面显示");
  },

  onHide() {
    console.log("onHide", "界面隐藏");
  },

  onUnload() {
    console.log("onUnload", "界面销毁,需要停止读卡");
    plugin.stopReadCard();
  }
})

3、附录

身份证详细信息 IdCardData

字段类型注释
typeint1080:中国居民身份证
addressstring家庭住址
birthdaystring出生日期
dnstringdn码
endDatestring身份证结束时间
startDatestring身份证生效时间
idstring身份证号码
imageStringbase64照片
issuestring签发机关
namestring姓名
nationstring民族
sexstring性别
uuidstringuuid

外国人永久居留身份证 IdCardData

字段类型注释
typeint1081:新版外国人永久居住证 1083:旧版外国人永久居住证
birthdaystring出生日期
dnstringdn码
endDatestring身份证结束时间
startDatestring身份证生效时间
idstring身份证号码
issuestring签发机关
sexstring性别
uuidstringuuid
imageStringbase64照片
nameChinesestring中文姓名
nameEnglishstring英文姓名
nameEnglishAddstring英文姓名备用
nationlitystring国籍
cardVersionstring卡版本号
cardTypestring卡类型
historicalNumberstring既往版本证件号码关联项
renewalNumberstring换证次数

港澳台居民居住证详细信息 IdCardData

字段类型注释
typeint1082:港澳台居住证
addressstring家庭住址
birthdaystring出生日期
dnstringdn码
endDatestring身份证结束时间
startDatestring身份证生效时间
idstring身份证号码
imageStringbase64照片
issuestring签发机关
namestring姓名
nationstring民族
sexstring性别
uuidstringuuid
passCheckIdstring通行证号码
issuesNumberstring签发次数

原文地址:https://blog.csdn.net/weixin_39406065/article/details/145487094

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!