# 企业身份认证(实名信息认证方案)
# 1、身份认证流程
身份认证是其他应用的基础,认证方(即:企业)需要提供一个验证接口,具体身份绑定流程如下:
身份认证绑定步骤:
- 员工在点击激活电子卡,跳转到腾讯微卡身份绑定页面,输入姓名及身份证号;
- 腾讯微卡对用户进行实名认证,校验成功后将姓名及身份证号加密发送到认证方接口;
- 认证方解密获取姓名及身份证号,验证身份,将结果加密后返回;
- 腾讯微卡收到对应的验证消息,若成功则激活成功,失败则返回相应提示。
# 2、身份认证接口
# 2.1 请求方式
身份验证接口采用POST
的方式向认证方发送数据。
# 2.2 请求参数
原始数据 R
:
{
"name":"test",
"idcard":"440582xxxxxxxxxxxx",
}
通过加密R
可以得到R'
:R' = AES_CBC_ENCRYPT(R)
。
{
"raw_data":R',
"app_key":APP_KEY
}
腾讯微卡会把加密后的数据以POST
的方式发送到认证方提供的认证接口。
加密算法见附件。
# 2.3 数据返回
返回数据:
{
"code":0,
"message":"OK",
"raw_data":R',
"app_key":APP_KEY
}
关键点:
- 认证成功,认证方需保证返回的
code
为 0。 - 认证失败,认证方需保证返回的
code
不为 0。 message
字段在code
不为 0 时才会有意义。app_key
跟请求时的app_key
保持一致。raw_data
对应的R'
为加密后的数据。 通过解密R'
可得到R
:R = AES_CBC_DECRYPT(R·)
- 不同身份类型用户的具体字段要求见用户字段说明 (opens new window)。
{
"errcode": 0,
"card_number": "1604030126", // 员工编号
"name": "evan1", // 姓名
"identity_type": "1", // 身份类型,1为其他,6为员工
"identity_type_child": "0", // 身份类型的小类(需申请)
"identity_title": "高级工程师", // 职称(需申请)
"gender": 1, // 性别(需申请)
"organization": [
2,
222,
496
], // 组织架构(需申请)
"physical_chip_number": "", // 物理芯片号(需申请)
"physical_card_number": "", // 物理卡号(需申请)
"employer":"XX研究所", // 工作单位(需申请)
"nation": "汉族", // 民族(需申请)
"address": "广东省深圳市XXX", // 家庭住址(需申请)
"email": "xxxxx@qq.com", // 邮箱(需申请)
"card_type": "1", // 证件类型(需申请)
"id_card": "440XXXXXXXXXXXXXXX", // 证件号码(需申请)
"country": "CHN", // 国籍(需申请)
"telephone": "137XXXXXXXX" // 手机号(需申请)
"expire_at": "2019-12-31 12:00:00" // 有效期(需申请)
"qq": "12345678" // qq号(需申请)
"en_name":"sfzhang", //英文名
"office_phone":"88234", //办公座机
"app_key":"96C4213E987F1755"
}
注意:
- 1,接口开发完后可以到腾讯微卡进行自助调试,地址:https://weixiao.qq.com/public/apiDebug/index.html ;
- 2,默认身份类型(其他、员工)如果能够满足需求,则identity_type传对应的名称即可;
- 3,若需定义更多的身份类型,要先到身份类型管理配置好身份类型,地址: https://wecard.qq.com/home/identity#/identity-type ,然后identity_type传用户对应的身份类型名称过来(中文编码UTF8),如传未设置的名称,则默认将此用户身份类型归属至"其他"。
# 附件
# 1 数据加密
采用AES对称加密算法(AES/CBC/ZeroPadding 128位模式),具体算法见加解密demo。
KEY = APP_KEY
IV = APP_SECRET 前16位。
APP_KEY和APP_SECRET的获取见接口对接指引 (opens new window)。
# 更新日志
日期 | 变更说明 |
2019-10-18 | 实名信息认证方案接口 响应返回新增 start_time 有效起始时间字段,将 expire_time的有效期解释更改为 有效结束时间 |