# 微信小程序接入国家网络身份认证公共服务指引

本文档适用于有意向对接国家网络身份认证公共服务的小程序开发者。

# 修订记录

时间 修订说明
2026年4月28日 1.0版本

# 第一章 国家网络身份认证公共服务介绍

# 1.1 国家网络身份认证公共服务相关定义

国家网络身份认证公共服务(简称"公共服务")依托国家统一平台,为自然人提供网号、网证申领及身份核验服务。

网号是与身份信息对应的字母数字组合(不含明文信息)。

网证是承载网号及非明文身份信息的电子凭证。

微信小程序开发者可使用国家网络身份认证公共服务对用户进行身份核验。

# 1.2 国家网络身份认证公共服务的优势

权威性:基于法定身份证件与国家人口基础信息,结合多因子认证,确保认证权威;

安全性:匿名认证,减少明文信息使用,保护隐私;

可信性:每次认证需本人授权,记录可追溯,抗抵赖;

便捷性:手机一键核验,支持多种模式验证,简化数字化办事流程 ;

公益性:免费服务企业,降本增效,助力数字经济发展。

# 1.3 国家网络身份认证服务模式

国家网络身份认证依据自然人的网号或网证与其他认证因子(如口令、人脸图像等),验证身份真实性、有效性、一致性后,返回网络身份认证服务凭据。

微信小程序可通过第二章接入指引,按需选择国家网络身份认证服务模式并接入。

服务模式 请求数据项 凭据数据项
网号 网证 口令/公民身份号码后四位 人脸图像 认证结果 网络身份应用标识 人脸相似度分值
网证
网证+口令
网证+人脸
网证+口令+人脸
请注意:
1 口令由用户在国家网络身份认证 App 中设置;
2 人脸图像采集可通过微信活体检测接口采集;
3 网络身份认证服务凭据包含服务时间、服务类型、认证结果(通过/不通过),认证结果为"通过"时根据应用场景需要和最小化原则返回网络身份应用标识等。
4 网络身份应用标识是可供接入机构关联自然人的编码。

针对符合法律法规、政策文件要求的接入机构,经用户本人授权,国家网络身份认证公共服务支持按照"最小必要性"原则返回相关属性标识、加密个人信息的服务,其中属性标识如年龄段标识、性别标识等,加密个人信息如申领证件类型、脱敏姓名、脱敏公民身份号码、绑定的手机号等。

# 第二章 接入指引

# 2.1 向国家网络身份认证公共服务管理机构提交接入申请

小程序开发者可通过如下方式登记接入意向:

方式1 通过国家网络身份认证App的“意见反馈”或“在线客服”登记接入意向;

方式2 拨打客服热线400-117-1166登记接入意向。

关于国家网络身份认证公共服务对接案例、热点问答等,可在国家网络身份认证App或国家网络身份认证公共服务平台应用接入管理系统中查看。


注:小程序接入国家网络身份认证公共服务,需按国家网络身份认证公共服务平台管理机构要求提交接入申请,申请通过之后,微信团队为小程序开通下文2.2中所涉及的wx.ncidas接口权限。

# 2.2对接wx.ncidas接口拉起国家网络身份认证APP

微信小程序可以通过wx.ncidas接口,拉起国家网络身份认证 App,用来获取网络身份认证的相关数据。

# 1)基础库要求

微信基础库要求 3.3.5 及以上版本。

# 2)函数说明

表1 wx.ncidas函数说明表

函数名称 wx.ncidas(Object object)
说明 微信小程序平台提供给接入机构的微信小程序拉起国家网络身份认证App的接口,用来获取网络身份认证请求数据和网络身份认证凭证口令数据。
参数 object:Object无序键值对,数据结构见表 2。
结果 无返回值,结果通过 object 中的函数回调,包括:
success:成功结果回调函数;
fail:失败结果回调函数;
# 请求参数

表2 请求参数 object数据结构说明列表

标识符 数据项 约束条件 类型 长度 说明
orgID 机构ID 必选 string c8 机构ID,业务接入申请时,国家网络身份认证公共服务分配给接入机构的唯一标识;
businessID 应用ID 必选 string c4 应用ID,业务接入申请时,国家网络身份认证公共服务分配给接入机构微信小程序的唯一标识;
bizSeq 业务序列号 必选 string c32 由接入机构生成,用于标识每笔业务的唯一性,与2.4国家网络身份认证公共服务接口说明中的bizSeq参数一致;
type 业务类型 必选 integer c1 0:网络身份认证凭证;
1:网络身份认证凭证+口令;
success 成功结果回调函数 可选 function 变长 成功结果回调函数,回调函数参数为Object类型,参数格式见表3;
fail 失败结果回调函数 可选 function 变长 失败结果回调函数,微信通用返回。
mode 模式 可选 String c3 支持R01、R02、R03、R04四种模式
R01: 网络身份认证凭证
R02: 网络身份认证凭证+口令
R03: 网络身份认证凭证+人脸
R04: 网络身份认证凭证+口令+人脸
expectData 期望返回数据项 可选 String 50 1)期望返回数据项包括:
XM(姓名)、XB(性别)、NL(年龄段)等。
2)各个期望返回数据项使用英文“,”分隔,只能包含英文大写字母。
# 响应结果

表3 响应结果数据结构说明表

标识符 数据项 类型 长度 说明
resultCode 响应结果码 string c8 响应结果码,见表4;
resultDesc 响应结果描述 string c20 响应结果描述,见表4;
idCardAuthData 认证请求数据 string 变长 只有响应结果码为C0000000时,值不为空;
certPwdData 网络身份认证凭证口令数据 string 变长 只有业务类型type值为1且响应结果码为C0000000时,值不为空;
# 示例代码
  // 拉起国家网络身份认证APP

  wx.ncidas({

    orgID: '10000008',    // 机构ID,业务接入申请时,分配给机构的唯一标识

    businessID: '0007',   // 应用ID,业务接入申请时,分配给小程序的唯一标识

    bizSeq: '12345678901234567890123456789012',   // 由接入机构生成用于标识每笔业务的唯一性的业务序列号

    type: 0,   // 业务类型,0: 网络身份认证凭证;1: 网络身份认证凭证+口令

    success(res) {

      console.log('wx.ncidas - success:', res.resultCode);

      console.log('wx.ncidas - success:', res.resultDesc);

  },

  fail(err) {

    console.log('wx.ncidas - fail:', err);

  },

  mode: 'R01', // 模式

  expectData: 'NL' // 期望返回数据项

})

# 3)响应结果码

表4 响应结果码表

序号 响应结果码 响应结果描述
1 C0000000 成功
2 C0401001 参数格式异常
3 C0402001 机构应用未授权或不匹配
4 C0405001 数据处理异常
5 C0412002 国家网络身份认证App尚未安装
6 S0400001 系统异常
7 C0412003 用户已取消
8 C0412004 用户未登录
9 C0412005 用户未注册
10 C0412006 网络身份认证凭证未申领
11 C0412007 网络身份认证凭证未授权
12 C0412008 网络异常

# 2.3 对接国家网络身份认证公共服务接口

小程序开发者按照2.1指引,完成接入国家网络身份认证公共服务平台管理机构的申请,申请通过之后,小程序将获得完整的开发对接指引。其中关于“对接国家网络身份认证公共服务接口说明书”内容参考如下文档,最终版本以国家网络身份认证公共服务平台管理机构发送的为准。

国家网络身份认证公共服务接口说明书

# 第三章 用户在微信小程序如何进行国家网络身份认证

# 3.1 未申领用户,先下载国家网络身份认证App并申领网络身份

用户在国家网络身份认证App申领流程参照下图,具体以国家网络身份认证App为准。

图1 用户在国家网络身份认证App申领网络身份认证凭证流程(图片来源于:国家网络身份认证App)

# 3.2 已申领用户,通过微信小程序使用国家网络身份认证流程示例

已申领用户,在小程序页面选择国家网络身份认证,打开国家网络身份认证App确认授权网络身份认证凭证,再返回小程序。小程序后端将网络身份认证请求数据项请求国家网络身份认证公共服务接口进行身份验证,并接收验证结果。

若需用户使用包含人脸图像的服务模型进行身份验证,则用户可在小程序页面进入微信活体检测流程,完成活体检测后,小程序后端将网络身份认证请求数据项请求国家网络身份认证公共服务接口进行身份验证,并接收验证结果。

图2 用户在微信小程序使用国家网络身份认证流程示例