Avata 帮助文档-测试
  1. 接入说明
Avata 帮助文档-测试
  • Avata 平台文档
    • 平台介绍
      • 平台简介
      • 核心功能
      • 基础术语
      • 平台服务
        • 文昌链极速网
        • 文昌链存证服务
        • 文昌链域名服务
        • 第三方支付服务
    • 用户指南
      • 接入流程
      • AVATA API 接入说明
      • AVATA API 最佳实践
      • 费用说明
    • 常见问题
      • AVATA 平台 NFT 元数据规范
      • Avata 测试项目如何充值能量值
      • Avata 技术社区使用指南
      • 原生 NFT 和原生 MT 区别
      • operation_id 的作用
      • AVATA API & 底层链 SDK 如何选择
      • 如何开具发票
      • 申请平台合作协议
      • 网信办备案填报指南
      • 变更认证主体流程说明
      • 更多问题 >>
  • AVATA API 文档
    • AVATA API 文档
      • 接入说明
        • 网关鉴权签名示例
        • 交易结果异步回调通知
      • AVATA v3 API 文档
        • API 版本简介
        • 链账户接口
          • 创建链账户
          • 批量创建链账户
          • 查询链账户
        • 原生模块
          • 关于原生模块
          • NFT 接口
            • 创建 NFT 类别
            • 转让 NFT 类别
            • 查询 NFT 类别
            • 查询 NFT 类别详情
            • 发行 NFT
            • 转让 NFT
            • 编辑 NFT
            • 销毁 NFT
            • 查询 NFT
            • 查询 NFT 详情
            • 查询 NFT 操作记录
          • MT 接口
            • 创建 MT 类别
            • 查询 MT 类别
            • 查询 MT 类别详情
            • 转让 MT 类别
            • 发行 MT
            • 增发 MT
            • 转让 MT
            • 编辑 MT
            • 销毁 MT
            • 查询 MT
            • 查询 MT 详情
            • 查询 MT 操作记录
            • 查询 MT 余额
          • 区块链存证接口
            • 数字作品存证接口
          • 查询链账户操作记录
          • 查询上链交易结果
          • 查询枚举值列表
        • 智能合约模块
          • 关于智能合约模块
          • NFT 接口
            • 创建 NFT 类别
            • 转让 NFT 类别
            • 查询 NFT 类别
            • 查询 NFT 类别详情
            • 发行 NFT
            • 转让 NFT
            • 编辑 NFT
            • 销毁 NFT
            • 查询 NFT
            • 查询 NFT 详情
            • 查询 NFT 操作记录
          • 合约服务接口
            • Avata API 合约服务使用说明
            • 调用合约
            • 查询合约
          • Web3 域名服务接口
            • 注册域名
            • 转让域名
            • 查询域名
            • 查询用户域名
            • 设置域名解析
            • 查询域名解析
            • 设置域名反向解析
            • 查询域名反向解析
            • 续购域名
          • 查询链账户操作记录
          • 查询上链交易结果
          • 查询枚举值列表
        • 购买能量值接口
          • 购买能量值
          • 批量购买能量值
          • 查询能量值购买结果
          • 查询能量值购买结果列表
        • 钱包服务接口
          • 创建钱包用户
          • 更新钱包用户
          • 查询钱包用户信息
          • 认证钱包用户
      • AVATA v2 API 文档
        • API 版本简介
        • 链账户接口
          • 创建链账户
          • 批量创建链账户
          • 查询链账户
          • 查询链账户操作记录
        • NFT 接口
          • NFT/MT 元数据规范
          • 创建NFT类别
          • 查询NFT类别
          • 查询NFT类别详情
          • 转让NFT类别
          • 发行 NFT
          • 转让 NFT
          • 编辑 NFT
          • 销毁 NFT
          • 查询 NFT
          • 查询 NFT 详情
          • 查询 NFT 操作记录
        • web3域名服务接口
          • 注册域名
          • 转让域名
          • 查询域名
          • 查询用户域名
        • 合约服务接口
          • Avata API 合约服务使用说明
          • 调用合约
          • 查询合约
        • 购买能量值接口
          • 购买能量值
          • 批量购买能量值
          • 查询能量值购买结果
          • 查询能量值购买结果列表
        • 区块链存证接口
          • 数字作品存证接口
        • 钱包服务接口
          • 创建钱包用户
          • 更新钱包用户
          • 查询钱包用户信息
          • 认证钱包用户
        • 查询交易结果接口
          • 查询上链交易结果
      • AVATA v1 API 文档
        • API 版本简介
        • 链账户接口
          • 创建链账户
          • 批量创建链账户
          • 查询链账户
          • 查询链账户操作记录
        • NFT 接口
          • 创建 NFT 类别
          • 查询 NFT 类别
          • 查询 NFT 类别详情
          • 转让 NFT 类别
          • 发行 NFT
          • 转让 NFT
          • 编辑 NFT
          • 销毁 NFT
          • 批量发行 NFT
          • 批量转让 NFT
          • 批量编辑 NFT
          • 批量销毁 NFT
          • 查询 NFT
          • 查询 NFT 详情
          • 查询 NFT 操作记录
        • MT 接口
          • 创建 MT 类别
          • 查询 MT 类别
          • 查询 MT 类别详情
          • 转让 MT 类别
          • 增发 MT
          • 发行 MT
          • 转让 MT
          • 编辑 MT
          • 销毁 MT
          • 查询 MT
          • 查询 MT 操作记录
          • 查询 MT 余额
          • 查询 MT 详情
        • 区块链存证接口
          • 数字作品存证接口
        • 购买能量值接口
          • 购买能量值
          • 批量购买能量值
          • 查询能量值购买结果
          • 查询能量值购买结果列表
        • 查询交易结果接口
          • 查询上链交易结果
          • 查询上链交易排队状态
  • AVATA SDK 文档
    • AVATA SDK 文档
      • AVATA v3 SDK 文档
        • Go 语言
        • JAVA 语言
      • AVATA v1 SDK 文档
        • Go 语言
        • JAVA 语言
        • PHP 语言
  • 底层链 SDK 文档
    • 底层链 SDK 文档
      • 底层链介绍
      • 底层链 API 接入说明
      • Go 语言接入教程
      • JAVA 语言接入教程
      • 文昌链最佳实践建议
  1. 接入说明

交易结果异步回调通知

应用平台方可通过该服务来接收 Avata 平台主动推送的上链交易结果异步通知消息。

操作流程

  1. 登录 Avata 服务平台

  2. 在项目管理 - 我的项目列表页 - 更多操作项中,点击「设置回调地址」,输入您的上链交易结果异步推送回调地址;
    image.png
    或者在项目管理 - 我的项目列表页中,点击编辑,输入您的上链交易结果异步推送回调地址。
    image.png
    注意:需保证回调地址能够被外网访问

  3. 设置成功后,Avata 平台会将您每次接口请求上链的交易结果信息推送至设置好的地址。

  4. 单笔交易推送失败,触发重试机制,重新推送 4 次,时间间隔为 1、3、5、10 分钟。

  5. 成功接收到请求后,需要返回字符串 SUCCESS。(区分大小写)

回调推送

触发回调行为时,Avata 平台会发送回调消息到您设置的服务回调地址中,请求内容如下:

  • 请求方式:POST

  • Header Parameters ( V1 版本):

参数类型说明
X-Api-Keystring项目 API Key
X-SignaturestringAPI 签名,算法为 SHA256 (Params+ApiSecret)
  • Header Parameters ( V2 & V3 版本):
参数类型说明
X-Api-Keystring项目 API Key
X-SignaturestringAPI 签名,与 网关鉴权签名 方式保持一致
X-Timestampstring时间, 1642065511000
  • 推送参数:
{
    "operation_id":"string",                 // 操作 ID
    "module": 0,                             // 交易模块:
    "operation": 0,                          // 用户操作类型: module = 1 时, 1:issue_class; 2:transfer_class; 3:mint_nft; 4:edit_nft; 5:transfer_nft; 6:burn_nft
    "tx_hash": "string",                     // 交易哈希
    "status": 0,                             // 交易状态,1 成功; 2 失败
    "message": "string",                     // 交易失败的错误描述信息
    "block_height": 0,                       // 交易上链的区块高度
    "timestamp": "string,                    // 交易上链时间(UTC 时间)
    "nft": {                                 // 对应不同操作类型的消息体(json)
         "nft_id": 0,
         "class_id": "string"
    },
    "mt": {                                  // 对应不同操作类型的消息体(json)
         "mt_id": "string",
         "class_id": "string"
    },
    "record": {                              // 对应不同操作类型的消息体(json)
         "record_id": "string",              // 区块链存证 ID
         "certificate_url": "string"         // 区块链存证证书的下载链接;证书下载链接并非长期有效,请您尽快将证书文件下载至本地并妥善保管。
    },
    "kind": "string"                         // 区分服务,native/evm
}

回调验签

  • v1 版本验签:

签名 = 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");
  • v2 版本验签:

签名 = signRequest (“回调地址(去掉域名)”,null,Map<string,object> body,推送的请求头中的时间戳 (Long型),“apisecret”);

tip: 在接收到body后,需要调整部分参数类型为int型,在转换为body进行签名。否则无法验签通过。

回调验签示例 (java)

public String huidiao(HttpServletRequest request, HttpServletResponse response,@RequestBody String data) throws Exception{
        String timestamp =  request.getHeader("X-Timestamp");
        String qianming = request.getHeader("X-Signature");
        // //v1 版本验签
        // 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中
        // //v2 版本验签
        // String signature=signRequest("设置的回调地址去掉域名", null, map, Integer.valueOf(timestamp), "api-secret");
        // if(!signature.equals(qianming)){
        //         return "failed";
        //     }
            return "SUCCESS";
    }

地址无法接收到回调

  • 请检查设置的地址是否能够被外网访问。
  • 请检查是否正确接收到回调信息。(建议接收 body、header 两个部分内容)
  • 如果使用代理等配置(包括但不限限于问题),请检查确保能够成功请求到这个地址。
  • 如果有设置白名单配置:69.234.228.106
上一页
网关鉴权签名示例
下一页
API 版本简介
Built with