或在【项目管理页】,点击【编辑】,输入您的上链交易结果异步推送回调地址。
| 参数 | 类型 | 说明 |
|---|---|---|
| X-Api-Key | string | 项目 API Key |
| X-Signature | string | API 签名,算法为 SHA256 (Params+ApiSecret) |
{
"operation_id":"string", // 操作 ID
"type": "string", // 用户操作类型
"module": "string", // 交易模块
"tx_hash": "string", // 交易哈希
"status": 0, // 交易状态,1 成功; 2 失败
"message": "string", // 交易失败的错误描述信息
"block_height": 0, // 交易上链的区块高度
"timestamp": "string", // 交易上链时间(UTC 时间)
"nft": "{ // 对应不同操作类型的消息体 (参数值为:json字符串)
"class_id": "string"
"nft_id": "string",
}",
"mt": "{ // 对应不同操作类型的消息体(参数值为:json字符串)
"class_id": "string"
"mt_id": "string",
}"
}签名 = sha256 (body + api_secret)
将接收到的 body 转换成 json 字符串,拼接上 api_secret ,进行 sha256 计算。可参考网关鉴权签名示例中的 sha256 的计算方法。
JSONObject jsonStr = JSON.parseObject("body参数");
String jsonStr1 = JSON.toJSONString(jsonStr, SerializerFeature.MapSortField);
// 执行签名
String signature = sha256Sum(jsonStr1 + "api_secret");public String huidiao(HttpServletRequest request, HttpServletResponse response,@RequestBody String data) throws Exception{
String timestamp = request.getHeader("X-Timestamp");
String qianming = request.getHeader("X-Signature");
// 验签
JSONObject jsonStr = JSON.parseObject("data");
String jsonStr1 = JSON.toJSONString(jsonStr, SerializerFeature.MapSortField);
// 执行签名
String signature = sha256Sum(jsonStr1 + "api_secret");
if(!signature.equals(qianming)){
return "failed";
}
Map map = new HashMap<>(); // map 是 data 转换成 json 格式后将数据组装到 map 中
return "SUCCESS";
}