券状态变更通知 请求参数 字段 类型(最大长度) 是否必填 字段含义 备注 code String 是 券号 traceNo String 是 当前交易流水号 全局唯一 saleChannelOrderId String 否 发券时渠道侧订单号 核销、核销撤销场景必传 shopNo String 否 核销门店编号 核销场景必传 timeStamp String 否 发生时间戳(毫秒) notifyType String 是 当前通知交易类型 validStartDate String 否 券有效期开始时间 yyyy-MM-dd HH:mm:ss validEndDate String 否 券有效期截止时间 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 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 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×tamp=1483372334&appSecret=XXXXXXXXXXXX 签名结果: 17e9fe1250c33fccf517ce4b5810f2c731fa45058181a15cffc4ab38332460d4 响应结果 字段 类型(最大长度) 是否必填 字段含义 备注 resultDesc String 否 通知结果描述 result String 否 通知结果 00: 成功 其他为失败