# 跳转校企方页面认证
# 1、身份认证流程
# 1.1 跳转到校方页面认证
认证方(即:校方)需要提供一个登录页面的地址,具体身份绑定流程如下:
身份认证绑定步骤:
- 学生点击激活激活校园卡,跳到校方登录页面,腾讯微卡会在地址中带上签名等参数;
- 校方验证签名通过后返回登录页面,学生进行身份认证;
- 认证成功后校方将学生信息加密后post到腾讯微卡指定接口;
- 腾讯微卡进行身份绑定,将绑定结果返回到校方;
- 若绑定成功校方再跳转到腾讯微卡指定地址。
# 2、接口
# 2.1 跳转校方登录页面
校方提供登录页面地址,腾讯微卡会在地址中带上state及签名等参数进行跳转,校方从地址中获取参数进行签名校验,确认请求合法性。
登录地址示例:
http://www.example.com
拼接后的链接:
http://www.example.com?state=53E11CAF75C33DE0&app_key=4275F48D2CACF735×tamp=1480509053&nonce_str=B8AC262623F53EC0690C1BF22550AFEE&sign=D75DF81857AE416D6B446981F3BEEE41
参数 | 说明 |
---|---|
state | 认证状态码(300s过期) |
app_key | 腾讯微卡分配的凭证 |
timestamp | 时间戳(签名用) |
nonce_str | 随即字符串(签名用) |
sign | 签名 |
验证签名具体看签名算法。
# 2.2 认证成功将学生信息发送到腾讯微卡
# 2.2.1 请求地址
https://uni.weixiao.qq.com/identity/receive-stu-info
# 2.2.2 请求方式
POST
# 2.2.3 请求数据
原始数据 R
:
不同身份类型用户的具体字段要求见用户字段说明。
{
"state":"53E11CAF75C33DE0",
"card_number":"07302590", //校园账号,一般是学号
"name":"张三丰", //姓名
"gender": "男", // 性别:男/女
"head_image": "http://xxx/xx.png" // 学生头像地址
"grade":"2016", //年级
"college":"信息科学与技术学院", //学院/部门
"profession":"计算机系", // 专业
"class":"软件1班", // 班级
"identity_type":"学生", // 学校设置的身份类型,参照下方说明
"identity_title": "经理/总监/部长/本科生...", // 职称: "讲师"、“研究生”、“教授”
"card_type": "1", // 证件类型
"id_card":"4XXX***7", // 证件号码
"country": "CHN", // 国籍
"telephone":"137***8", // 手机号
"organization":"AA/BB/CC", // 组织架构,多个分组以;隔开,如"AA/BB/CC;A/B/C";若缺少该字段,默认以“年级/学院/班级”填充
"expire_at":"2019-12-31 12:00:00", // 有效结束时间
"start_at":"2019-12-31 12:00:00",//有效起始时间
"campus":"南校区", // 校区
"employer":"XX研究所", // 工作单位
"dorm_number":"A栋206", // 宿舍号
"remark":"00000000", // 自定义字段,默认值 0000,限10字节
"physical_chip_number":"EAEB1234", // 物理芯片号
"physical_card_number":"00001234", // 物理一卡通号
"email": "weixiao@tencent.com", // 邮箱
"qq": "12345678", //qq号
"nation": "汉族", //民族
"origin_place":"陕西省", //生源地
"graduated_school":"XX中学", //毕业中学
"address":"仙桃市郑场镇潘阳村八组", //家庭住址
"real_name_verify": 1 ,// 是否进行实名认证:1-是;0-否
"app_key":"96C4213E987F1755"
}
通过加密R
可以得到R'
:R' = AES_CBC_ENCRYPT(R)
。
{
"raw_data":R',
"app_key":APP_KEY
}
注意:
- 1,post的数据为加密后的数据;
- 2,默认身份类型(其他、学生、教职工、校友)如果能够满足需求,则identity_type传对应的名称即可;
- 3,若需定义更多的身份类型,要先到身份类型管理配置好身份类型,地址: http://uni.weixiao.qq.com/home/identity#/identity-type ,然后identity_type传用户对应的身份类型名称过来(中文编码UTF8),如传未设置的名称,则默认将此用户身份类型归属至"其他"。
加密算法见附件。
# 2.2.4 数据返回
返回数据:
{
"errcode":0,
"errmsg":"OK",
}
# 2.3 校方跳转到腾讯微卡指定页面
当身份验证成后,并且学生数据也发送到腾讯微卡方后,校方直接跳转到腾讯微卡指定的页面,带上相应参数。
地址: https://uni.weixiao.qq.com/identity/login-callback?state=53E11CAF75C33DE0
参数: state:在2.1中接收到的state
# 附件
# 1. 签名算法
具体算法见签名算法。
# 2 数据加密
采用AES对称加密算法(AES/CBC/ZeroPadding 128位模式),具体算法见加解密demo。
KEY = APP_KEY
IV = APP_SECRET 前16位。
APP_KEY和APP_SECRET的获取见接口对接指引。
# 更新日志
日期 | 变更说明 |
2019-10-18 | 校方页面认证方案接口 响应返回新增 start_time 有效起始时间字段,将 expire_time的有效期解释更改为 有效结束时间 |