# 电子码扫码事件回调
用户使用电子码进行身份验证、消费等行为后,主体方可以通过消息模板接口将结果推送至用户的电子码小程序上
# 一.接口地址
# 请求方法:
POST(application/json)
# 请求地址:
https://weixiao.qq.com/apps/school-api/scan-notify
# 二.请求参数
# 参数说明:
{
"app_key": "APP_KEY",
"card_number": "CARD_NUMBER",
"event_id": "EVENT_ID",
"nonce": "NONCE",
"school_code": "SCHOOL_CODE",
"timestamp": "TIMESTAMP",
"signature": "SINGATURE"
}
| 参数 | 必填 | 类型 | 示例值 | 说明 |
|---|---|---|---|---|
| app_key | 是 | String(16) | CA1D905AC89ACDCA | 应用KEY |
| card_number | 是 | String | CA1D905AC89ACDCA | 需要推送事件的用户电子卡号 |
| event_id | 是 | int | CA1D905AC89ACDCA | 事件id |
| nonce | 是 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 32位随机字符串 |
| school_code | 是 | int(10) | 4111010001 | 主体代码(该参数在之前版本中曾被命名为 school_id,现已兼容处理) |
| timestamp | 是 | int | 1514276659 | 当前unix时间戳 |
| signature | 是 | String(32) | A790E009D30C09BD8605810EAF9C44B0 | 按照签名算法生成的签名(参考签名算法) |
模板参数:不同的事件模板会对应不同的参数,将参数以Json数组的形式作为一个参数传递,列如:
params: ["12.12", "三食堂", "110.01"]
签名参数:计算方式见签名算法。
"signature": 签名
最终将上述所有参数以POST形式传递到对应接口
# 三.数据返回
# 响应说明:
{
"code":0,
"message":"success",
}
| 参数 | 是否可空 | 说明 |
|---|---|---|
| code | 非空 | 返回码(0表示成功) |
| message | 非空 | 提示信息 |
# 错误返回:
{
"code":CODE, (错误码)
"message":"MESSAGE", (错误信息)
}
# 四.消息模板参数(事件id及对应参数)
请按照顺序将参数以json数组的形式传递
# 1.微信支付成功
event_id : 10001
| 参数名称 | 必填 | 参数要求 |
|---|---|---|
| 消费金额 | 是 | 精确2位小数的浮点数(例:10.24) |
| 消费地点 | 是 | 15字符以内(例:湖滨食堂) |
参数格式:params=["10.24", "湖滨食堂"]
# 2.微信支付失败
event_id : 10002
| 参数名称 | 必填 | 参数要求 |
|---|---|---|
| 支付失败原因 | 否 | 15字符以内,默认为:余额不足 |
参数格式:params=["余额不足"]
# 3.一卡通支付成功
event_id : 10003
| 参数名称 | 必填 | 参数要求 |
|---|---|---|
| 消费金额 | 是 | 精确2位小数的浮点数(例:10.23) |
| 消费地点 | 是 | 15字符以内(例:三食堂) |
| 一卡通余额 | 是 | 精确2位小数的浮点数(例:123.12) |
参数格式:params=["10.23", "三食堂'", "123.12"]
# 4.一卡通支付失败
event_id : 10004
| 参数名称 | 必填 | 参数要求 |
|---|---|---|
| 一卡通余额 | 是 | 精确2位小数的浮点数(例:123.12) |
| 支付失败原因 | 否 | 15字符以内,默认值:余额不足 |
参数格式:params=["123.12", "余额不足"]
# 5.图书馆选座成功
event_id : 10005
| 参数名称 | 必填 | 参数要求 |
|---|---|---|
| 选座信息 | 是 | 15字符以内(例:3排18号座位) |
参数格式:params=["3排18号座位"]

# 6.图书馆选座失败
event_id : 10006
无需传递params
# 7.门禁验证成功
event_id : 10007
| 参数名称 | 必填 | 参数要求 |
|---|---|---|
| 位置信息 | 是 | 15字符以内(例:图书馆1号楼) |
参数格式:params=["图书馆1号楼"]
# 8.门禁验证失败
event_id : 10008
| 参数名称 | 必填 | 参数要求 |
|---|---|---|
| 位置信息 | 是 | 15字符以内(例:图书馆1号楼) |
参数格式:params=["图书馆1号楼"]
# 9.签到成功
event_id : 10009
无需传递params
# 10.门禁验证失败
event_id : 10010
| 参数名称 | 必填 | 参数要求 |
|---|---|---|
| 签到信息 | 是 | 15字符以内(例:非本班成员) |
参数格式:params=["非本班成员"]
# 请求样例
https://weixiao.qq.com/apps/school-api/scan-notify?app_key=A&card_number=B&event_id=10001&nonce=C&school_code=D×tamp=E¶ms=F&signature=G
# 11.支持配置折扣和服务费的支付模板
注意:新的支付模板支持配置服务费和折扣,并兼容原有的10001和10003支付模板,建议支付成功统一使用此模板
event_id : 10011
| 参数名称 | 必填 | 参数要求 |
|---|---|---|
| 消费金额 | 是 | 精确2位小数的浮点数(例:10.24) |
| 消费地点 | 否 | 15字符以内(例:湖滨食堂) |
| 消费原价 | 否 | 精确2位小数的浮点数(例:13.24) |
| 折扣优惠 | 否 | 精确2位小数的浮点数(例:5.00) |
| 消费服务费 | 否 | 精确2位小数的浮点数(例:2.00) |
| 余额 | 否 | 精确2位小数的浮点数(例:101.00) |
参数格式:params=["10.24","湖滨食堂","13.24","5.00","2.00","101.00"]
注意:
这里参数支持以下几种形式满足支付成功的不同需求:
只传递消费金额 ["10.24"]
传递消费金额和地点 ["10.24","湖滨食堂"], 类似事件模板10001
当传递消费原价时,必须传递对应的折扣以及消费服务费,如没有折扣或服务费,则置空
["10.24","湖滨食堂","13.24","","2.00"]
["10.24","湖滨食堂","13.24","5.00",""]
["10.24","湖滨食堂","13.24","5.00","2.00"]
如只要传递余额,则将中间相关服务、折扣配置项置为空
["10.24","湖滨食堂","","","","101.00"],类似事件模板10003
# 请求样例
https://weixiao.qq.com/apps/school-api/scan-notify?app_key=A&card_number=B&event_id=10001&nonce=C&school_code=D×tamp=E¶ms=F&signature=G