# 电子码扫码事件回调
用户使用电子码进行身份验证、消费等行为后,主体方可以通过消息模板接口将结果推送至用户的电子码小程序上
# 一.接口地址
# 请求方法:
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