腾讯校园码

校园码可以理解为原校园卡二维码的升级,校园码可以实现:

  1. 快速解码,甚至校内部署,短期断外网也可用,保证服务高可用,应对突发情况
  2. 可以同时支持一卡通支付、微信支付、身份认证
  3. 更丰富的功能拓展,未来扫码后可以即时反馈余额或者奖励鼓励金等,可以提升服务品质和拓展更多玩法

本质上校园码能实现更多功能,加解密方法也有变动(对应码长度会达到几百位),如果学校没有本校部署,那么修改之前的调用地址调用方法和之前一样,如果本校部署了可以调用本校接口解码。

校园码接口地址:

请求方法:

POST(application/json)

请求地址:

https://weixiao.qq.com/apps/school-api/campus-code

参数说明:

{
    "app_key": "APP_KEY",
    "timestamp": "TIMESTAMP",
    "nonce": "NONCE",
    "signature": "SINGATURE",
    "school_code": "SCHOOL_CODE",
    "auth_code": "AUTH_CODE",
    "scene": "SCENE",
    "device_no": "DEVICE_NO",
    "location": "LOCATION"
}
字段名 变量名 必填 示例值 类型 说明
APP_KEY app_key CA1D905AC89ACDCA int 应用分配的app_key
时间戳 timestamp 1514276659 long 当前unix时间戳(秒)
随机字符串 nonce 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 32位随机字符串
数字签名 signature A790E009D30C09BD8605810EAF9C44B0 String(32) 使用签名算法计算出来的数字签名
场景id scene 1 int 1.门禁 2.消费 3.签到 4.其它
设备号 device_no device-1213 String(64) 设备编号
地点 location 三食堂 String(64) 扫码地点
校园码 auth_code http://wx.url.cn/v001.Eee8m...kA String 扫码获得的动态码
学校编码 school_code 4144010559 String 扫码的学校编码

查看本校代码

签名方式:见签名算法

注意:新版校园码长度在80到150个字节之间,使用 wxcc://http://wx.url.cn/ (最新版本)为前缀,解码时可不携带前缀。

响应说明:

{
    "code" : 0,
    "user" : {
        "card_number": '',(学号)
        "name": '',(姓名,需申请)
        "gender": '',(性别:0:未知,1:男,2:,需申请)
        "grade": '',(年级,需申请)
        "college": '',(学院,需申请)
        "profession": '',(专业,需申请)
        "class": '',(班级,需申请)
        "identity_title": '',(职称,需申请)
        "remark": '',(身份认证自定义字段,需申请)
        "physical_card_number": '',(物理卡卡号,需申请)
        "physical_chip_number": ''(物理芯片号,需申请)
    },
    "offline" : 1(1表示当前码为离线码;0表示当前码为在线码)
}
参数 是否可空 说明
code 非空 返回码(0表示成功)
user 非空 用户信息列表
card_number 非空 用户学号
name 可空 姓名,需申请
gender 可空 性别:0:未知,1:男,2:女,需申请
grade 可空 年级,需申请
college 可空 学院,需申请
profession 可空 专业,需申请
class 可空 班级,需申请
identity_title 可空 职称,需申请
remark 可空 身份认证自定义字段,需申请
physical_card_number 可空 物理卡卡号,需申请
physical_chip_number 可空 物理芯片号,需申请
offline 非空 1(1表示当前码为离线码;0表示当前码为在线码)

错误时返回:

失败返回:
{
    "code" : xxx, (错误码)
    "message": xxx (错误原因)
}

错误码

名称 解决方案
1000 必填参数不存在
1001 请求已过期,请检查时间戳
1002 签名验证失败,请使用签名验证工具校验
1005 app_key错误
10001 学校代码不正确
10002 当前学校未接入校园码
10003 解码失败,码格式不正确
10004 解码成功,二维码已过期
10005 权限不足
10006 该码已被截图
10007 该码已被使用