Skip to main content

券状态变更通知接口

请求参数

字段类型(最大长度)是否必填字段含义备注
codeString券号
traceNoString当前交易流水号全局唯一
saleChannelOrderIdString发券时渠道侧订单号核销、核销撤销场景必传
shopNoString核销门店编号核销场景必传
timeStampString发生时间戳(毫秒)
notifyTypeString当前通知交易类型
validStartDateString券有效期开始时间yyyy-MM-dd HH:mm:ss
validEndDateString券有效期截止时间yyyy-MM-dd HH:mm:ss

注: notifyType 枚举

notifyType操作名称更新前状态更新后状态
verifyNotify券核销未使用已使用
verifyCancelNotify券核销撤销已使用未使用
invalidNotify券作废未使用已作废
renewalNotify券延期已过期可使用
expireNotify过期通知过期已过期

通知报文(案例)签名过程:

JSONObject notifyJson = new JSONObject(true);

notifyJson.put("code", "10034343334344443209");

notifyJson.put("traceNo", "4200001172202109274275163730");

notifyJson.put("notifyType", "verifyNotify");

byte[] encodeBase64 = Base64.encodeBase64(notifyJson.toJSONString().getBytes("UTF-8"));

String bizContent = new String(encodeBase64, "UTF-8");

Map<String, String> map = new TreeMap<>();

map.put("appKey", "274b9cf9f01543619baa726ed24ddd19");

map.put("action", "verifyNotify");

map.put("format", "json");

map.put("charset", "utf-8");

map.put("signType", "sha256");

map.put("timestamp", "1483372334");

map.put("bizContent", bizContent);

StringBuilder buffer = new StringBuilder();

for (Map.Entry<String, String> item : map.entrySet()) {

buffer.append(item.getKey()).append("=").append(item.getValue()).append("&");

}

String signStr = buffer.toString() + "appSecret=XXXXXXXXXXXX";// appSecret(需易百提供);

String checkSign = SHAUtil.sha256(signStr);

System.out.println(signStr);

System.out.println(checkSign);

}

参与签名报文字符串:

action=verifyNotify&appKey=274b9cf9f01543619baa726ed24ddd19&bizContent=eyJjb2RlIjoiMTAwMzQzNDMzMzQzNDQ0NDMyMDkiLCJ0cmFjZU5vIjoiNDIwMDAwMTE3MjIwMjEwOTI3NDI3NTE2MzczMCIsIm5vdGlmeVR5cGUiOiJ2ZXJpZnlOb3RpZnkifQ==&charset=utf-8&format=json&signType=sha256&timestamp=1483372334&appSecret=XXXXXXXXXXXX

签名结果:

17e9fe1250c33fccf517ce4b5810f2c731fa45058181a15cffc4ab38332460d4

响应结果

字段类型(最大长度)是否必填字段含义备注
resultDescString通知结果描述
resultString通知结果

00: 成功

其他为失败