# 电子码扫码事件回调

用户使用电子码进行身份验证、消费等行为后,主体方可以通过消息模板接口将结果推送至用户的电子码小程序上

# 一.接口地址

# 请求方法:

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 按照签名算法生成的签名(参考签名算法)

查看本校代码 (opens new window)

模板参数:不同的事件模板会对应不同的参数,将参数以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&timestamp=E&params=F&signature=G

# 11.支持配置折扣和服务费的支付模板

注意:新的支付模板支持配置服务费和折扣,并兼容原有的1000110003支付模板,建议支付成功统一使用此模板

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&timestamp=E&params=F&signature=G