存证服务

存证服务就是将数据本身或数据的哈希值写入区块链成为电子证据。由于写链交易默认含有写入者的数字签名,这隐含着写链者对数据具有产权(版权)的意味,所以存证服务也是一种简单的版权保护实现和数据确权实现。

数据存证

URL

POST https://baas.qualink.com/bas/proof/data/upload

请求头部

Content-type: application/json
Authorization: 平台用户身份令牌

请求参数

名称 类型 必须 描述
channel String Fabric通道名称,默认使用trace3即可
biz_type_id String 业务类型,默认使用99即可
biz_id String 业务ID
proof_data Json 存证数据,必须为JSON格式,内容自定义
secret String 钱包密码,开启钱包加密托管时必须填写
use_encrypt String 加密类型(0:不加密,1:授权加密,2:虚拟通道)
authorize_users String[] 授权列表,加密类型为授权加密时必填
channel_id String 虚拟通道编码,加密类型为虚拟通道时必填

示例:

{
    "channel": "trace3",
    "biz_type_id": "99",
    "biz_id": "ZL20191107150300000001",
    "proof_data": {
        "XXX": "XXXX"
    },
    "secret": "",
    "use_encrypt": "1",
    "authorize_users": [
        "20180504143743308070",
        "20180504143743308071",
        "20180504143743308072"
    ],
    "channel_id": ""
}

返回数据

名称 类型 示例 描述
success Boolean true 响应标记
msg String 成功 提示信息
data Json - 返回数据
tx_id String - 交易哈希

示例:

{
    "success": true,
    "msg": "存证成功",
    "data": {
        "tx_id": "410ff6bead691c3037f7787f97c75ed7096483fecf395f191845a0e7080ebe9c"
    }
}

存证数据列表

URL

POST https://baas.qualink.com/bas/proof/data/list

请求头部

Content-type: application/json
Authorization: 平台用户身份令牌

请求参数

名称 类型 必须 描述
page_num String 分页查询页号
page_size String 分页查询每页数量
type_id String 查询条件,业务类型ID
biz_id String 查询条件,业务ID
start_time String 查询条件,存证时间范围起始时间
end_time String 查询条件,存证时间范围结束时间
use_encrypt String 加密类型(0:不加密,1:授权加密,2:虚拟通道)

示例:

{
    "page_num": "1",
    "page_size": "5",
    "type_id": "99",
    "biz_id": "ZL20191107150300000001",
    "start_time": "2019-11-01",
    "end_time": "2019-11-07",
    "use_encrypt": "1"
}

返回数据

名称 类型 示例 描述
success Boolean true 响应标记
msg String 成功 提示信息
data Json - 返回数据
total int - 总条数
pages int - 总页数
page_num int - 页码
page_size int - 每页条数
list List - 存证信息列表
transaction_id String - 交易哈希
biz_type_id String - 业务类型ID
type_name String - 业务类型名称
biz_id String - 业务ID
channel String - Fabric通道
user_id String - 存证用户
nick_name String - 用户昵称
transaction_time String - 交易时间
use_encrypt String - 加密类型(0:不加密,1:授权加密,2:虚拟通道)
organize_code String - 企业编码
organize_name String - 企业名称

示例:

{
    "success": true,
    "msg": "获取成功",
    "data": {
        "total": 779,
        "pages": 156,
        "page_num": 1,
        "page_size": 5,
        "list": [
            {
                "transaction_id":"a37cbab6467499e8f48a67eb5d3c1a8bf5a229c0cc8247883fbc6719a7bc3eae",
                "biz_type_id": "99",
                "type_name":"公共存证服务",
                "biz_id": "ZL20191107152700000001",
                "channel": "trace3",
                "user_id": "20180504143743308070",
                "nick_name": "xxx用户",
                "transaction_time": "2019-11-07 15:09:52",
                "use_encrypt": "0",
                "organize_code":"911507007566600000",
                "organize_name":"xxx企业"
            },
            {
                "transaction_id":"a37cbab6467499e8f48a67eb5d3c1a8bf5a229c0cc8247883fbc6719a7bc3eae",
                "biz_type_id": "99",
                "type_name":"公共存证服务",
                "biz_id": "ZL20191107152700000002",
                "channel": "trace3",
                "user_id": "20180504143743308070",
                "nick_name": "xxx用户",
                "transaction_time": "2019-11-07 15:09:53",
                "use_encrypt": "1",
                "organize_code":"911507007566600000",
                "organize_name":"xxx企业"
            }
        ]
    }
}

存证数据明细

URL

POST https://baas.qualink.com/bas/proof/data/get

请求头部

Content-type: application/json
Authorization: 平台用户身份令牌

请求参数

名称 类型 必须 描述
biz_type_id String 业务类型ID
biz_id String 业务ID

示例:

{
    "biz_type_id": "99",
    "biz_id": "ZL20191107150300000001"
}

返回数据

名称 类型 示例 描述
success Boolean true 响应标记
msg String 成功 提示信息
data Json - 返回数据
transaction_id String - 交易哈希
biz_type_id String - 业务类型ID
biz_type_name String - 业务类型名称
biz_id String - 业务ID
channel String - Fabric通道
user_id String - 存证用户
nick_name String - 用户昵称
organize_code String - 企业编码
organize_name String - 企业名称
history_list List - 历史列表
block_hash String - 区块哈希
block_num Long - 区块号
transaction_id String - 交易哈希
transaction_time String - 交易时间
signature String - 应用级签名
public_key String - 公钥
transaction_content String - 交易内容

示例:

{
    "success": true,
    "msg": "获取成功",
    "data": {
        "transaction_id": "a37cbab6467499e8f48a67eb5d3c1a8bf5a229c0cc8247883fbc6719a7bc3eae",
        "biz_type_id": "99",
        "biz_type_name": "公共存证服务",
        "biz_id": "ZL20191107152700000001",
        "channel": "trace3",
        "user_id": "20180504143743308070",
        "nick_name": "xxx用户",
        "organize_code": "911507007566600000",
        "organize_name": "xxx企业",
        "history_list": [
            {
                "block_hash": "0665C35179C814F21CEBD5D48FD540774F12D6BE779719412CD4B70453D66CC8",
                "block_num": 28934,
                "transaction_id": "a37cbab6467499e8f48a67eb5d3c1a8bf5a229c0cc8247883fbc6719a7bc3eae",
                "transaction_time": "2019-11-07 15:09:52",
                "user_id": "20180504143743308070",
                "nick_name": "xxx用户",
                "signature": "3045022100AEDF73852D4EB1228D7F8BE36FA006F803F2F2019728483EE39ADF939A8FE51F022008391707D074B509396D7A838B3D9A5857D738590EEF7683A0624F4071E91004",
                "public_key": "3059301306072A8648CE3D020106082A8648CE3D030107034200049ABD66494301557ECFD0EE096A49974EABD38367BE51A7D1D49E1FBCCBA7718402C8EE9ECCCE5F6C9880BD5EBA11A9B3E65F673BE9F194C81BA711D3C57796AD",
                "transaction_content": "[{\"isDelete\":false,\"value\":\"{\"CHANNEL_ID\":\"CHANNEL_2019103111020955117381\",\"ENCRYPT_DATA\":\"40E6BDA20B76336710BD4BFA8820D19A\"}\",\"key\":\"99_ZL20191107152700000001\"}]"
            }
        ]
    }
}

存证数据解密

URL

POST https://test.qualink.com/bas/proof/data/decrypt

请求头部

Content-type: application/json
Authorization: 平台用户身份令牌

请求参数

名称 类型 必须 描述
biz_type_id String 业务类型ID
biz_id String 业务ID
secret String 钱包密码,启用钱包加密托管时必填
encrypt_data String 加密数据,明细接口中transaction_content字段的value

示例:

{
    "biz_type_id": "99",
    "biz_id": "ZL20191107150300000001",
    "secret": "123456",
    "encrypt_data": "{\"ENCRYPT_DATA\":\"775F9C9CB943F4FDD74C6690EB1CB1E4771B8F150E069DE5B8A6ADE17D1FBF58\",\"AUTHORIZE_USERS\":[{\"USER_ID\":\"20180126093300000000\",\"BAAS_USER_ID\":\"FABRIC_20180126093300000000_0\",\"ENYCRYPT_SECRET\":\"049EA55B85ABC8E39F225140936BD720523E4F197AD0DBB52F3CA65398F8F2CBFE1237BBAD86B09B6059639AFEB4E656E5278E5E2C9D35C0635AEFDC2B0D87D2E69C8E4A32B3CE1DFDA470B86DA28734E3EBDB2839D426C2ABC581BB4B63DC19C36906AFCABDFB758756FEEBBB330F65275C4A2D041EF0964D4D0ADDB89217B48A\"},{\"USER_ID\":\"20180821145735929189\",\"BAAS_USER_ID\":\"FABRIC_20180821145735929189_201911070900204761_0\",\"ENYCRYPT_SECRET\":\"04AA0F4473DD041EDD7A8CB93B49379F63BAFD72D683901D17C51E69128DBA5CECDBE619083079460D1A3E4D6963EBFCE20F371BC40DDE38F5207B792DF5C5541F490F0C2FF6204C35BB42A1B1F012AFA502CDEF4E2B9ED68B38C1DA6A96D3FF9ECB95F23BA0A20380960387A241F977BC71BC047CE4E82411B4C34740F40D0764\"}]}"
}

返回数据

名称 类型 示例 描述
success Boolean true 响应标记
msg String 成功 提示信息
data Json - 返回数据
payload String - 原始数据

示例:

{
    "success": true,
    "msg": "解密成功",
    "data": {
        "payload": "{\"xxxkey\":\"xxxvalue\"}"
    }
}

文件存证

URL

POST https://baas.qualink.com/bas/proof/file/upload

请求头部

Content-Type: application/x-www-form-urlencoded
Authorization: 平台用户身份令牌

请求参数

名称 类型 必须 描述
file File 存证文件
biz_type_id String 业务类型,默认使用99即可
biz_id String 业务ID
channel Json 存证数据,必须为JSON格式,内容自定义
secret String 钱包密码,开启钱包加密托管时必须填写
use_encrypt String 加密类型(0:不加密,1:授权加密,2:虚拟通道)
authorize_users String[] 授权列表,加密类型为授权加密时必填
channel_id String 虚拟通道编码,加密类型为虚拟通道时必填

示例:

返回数据

名称 类型 示例 描述
success Boolean true 响应标记
msg String 成功 提示信息
data Json - 返回数据
tx_id String - 交易哈希

示例:

{
    "success": true,
    "msg": "存证成功",
    "data": {
        "tx_id": "410ff6bead691c3037f7787f97c75ed7096483fecf395f191845a0e7080ebe9c"
    }
}

存证文件列表

URL

POST https://baas.qualink.com/bas/proof/file/list

请求头部

Content-type: application/json
Authorization: 平台用户身份令牌

请求参数

名称 类型 必须 描述
page_num String 分页查询页号
page_size String 分页查询每页数量
type_id String 查询条件,业务类型ID
biz_id String 查询条件,业务ID
start_time String 查询条件,存证时间范围起始时间
end_time String 查询条件,存证时间范围结束时间
use_encrypt String 加密类型(0:不加密,1:授权加密,2:虚拟通道)

示例:

{
    "page_num": "1",
    "page_size": "5",
    "type_id": "99",
    "biz_id": "ZL20191107150300000001",
    "start_time": "2019-11-01",
    "end_time": "2019-11-07",
    "use_encrypt": "1"
}

返回数据

名称 类型 示例 描述
success Boolean true 响应标记
msg String 成功 提示信息
data Json - 返回数据
total int - 总条数
pages int - 总页数
page_num int - 页码
page_size int - 每页条数
list List - 存证信息列表
transaction_id String - 交易哈希
biz_type_id String - 业务类型ID
type_name String - 业务类型名称
biz_id String - 业务ID
channel String - Fabric通道
user_id String - 存证用户
nick_name String - 用户昵称
transaction_time String - 交易时间
use_encrypt String - 加密类型(0:不加密,1:授权加密,2:虚拟通道)
organize_code String - 企业编码
organize_name String - 企业名称
type String - 文件类型
url String - 文件下载地址
file_hash String - 文件哈希
name String - 文件名称

示例:

{
    "success": true,
    "msg": "获取成功",
    "data": {
        "total": 779,
        "pages": 156,
        "page_num": 1,
        "page_size": 5,
        "list": [
            {
                "transaction_id": "a37cbab6467499e8f48a67eb5d3c1a8bf5a229c0cc8247883fbc6719a7bc3eae",
                "biz_type_id": "99",
                "type_name": "公共存证服务",
                "biz_id": "ZL20191107152700000001",
                "channel": "trace3",
                "user_id": "20180504143743308070",
                "nick_name": "xxx用户",
                "transaction_time": "2019-11-07 15:09:52",
                "use_encrypt": "0",
                "organize_code": "911507007566600000",
                "organize_name": "xxx企业",
                "type": "图片",
                "url": "http://chain.ufile-inspur.ucloud.com.cn/qualink/baas/encrypt/201911071600105763719757201911071600105748543372.png",
                "file_hash": "402098d92849ada7f08d8a636b3d6d8d51faa6b2a007d5cbdecd3bc1a1856730",
                "name": "201911071600105763719757201911071600105748543372.png"
            },
            {
                "transaction_id": "a37cbab6467499e8f48a67eb5d3c1a8bf5a229c0cc8247883fbc6719a7bc3eae",
                "biz_type_id": "99",
                "type_name": "公共存证服务",
                "biz_id": "ZL20191107152700000001",
                "channel": "trace3",
                "user_id": "20180504143743308070",
                "nick_name": "xxx用户",
                "transaction_time": "2019-11-07 15:09:52",
                "use_encrypt": "0",
                "organize_code": "911507007566600000",
                "organize_name": "xxx企业",
                "type": "图片",
                "url": "http://chain.ufile-inspur.ucloud.com.cn/qualink/baas/encrypt/201911071600105763719757201911071600105748543372.png",
                "file_hash": "402098d92849ada7f08d8a636b3d6d8d51faa6b2a007d5cbdecd3bc1a1856730",
                "name": "201911071600105763719757201911071600105748543372.png"
            }
        ]
    }
}

存证文件明细

URL

POST https://baas.qualink.com/bas/proof/file/get

请求头部

Content-type: application/json
Authorization: 平台用户身份令牌

请求参数

名称 类型 必须 描述
file_url String 文件URL

示例:

{
    "file_url": "http://chain.ufile-inspur.ucloud.com.cn/qualink/baas/encrypt/201911071600105763719757201911071600105748543372.png"
}

返回数据

名称 类型 示例 描述
success Boolean true 响应标记
msg String 成功 提示信息
data Json - 返回数据
transaction_id String - 交易哈希
biz_type_id String - 业务类型ID
biz_type_name String - 业务类型名称
biz_id String - 业务ID
channel String - Fabric通道
user_id String - 存证用户
nick_name String - 用户昵称
use_encrypt String - 加密类型(0:不加密,1:授权加密,2:虚拟通道)
file_hash String - 文件哈希
file_name String - 文件名称
file_type String - 文件类型
file_url String - 文件URL
organize_code String - 企业编码
organize_name String - 企业名称
block_hash String - 区块哈希
block_num Long - 区块号
transaction_time String - 交易时间
signature String - 应用级签名
public_key String - 公钥
transaction_content String - 交易内容

示例:

{
    "success": true,
    "msg": "获取成功",
    "data": {
        "transaction_id": "a37cbab6467499e8f48a67eb5d3c1a8bf5a229c0cc8247883fbc6719a7bc3eae",
        "biz_type_id": "99",
        "biz_type_name": "公共存证服务",
        "biz_id": "ZL20191107152700000001",
        "channel": "trace3",
        "user_id": "20180504143743308070",
        "nick_name": "xxx用户",
        "use_encrypt": "2",
        "file_hash": "402098d92849ada7f08d8a636b3d6d8d51faa6b2a007d5cbdecd3bc1a1856730",
        "file_name": "201911071600105763719757201911071600105748543372.png",
        "file_type": "图片",
        "file_url": "http://chain.ufile-inspur.ucloud.com.cn/qualink/baas/encrypt/201911071600105763719757201911071600105748543372.png",
        "organize_code": "911507007566600000",
        "organize_name": "xxx企业",
        "block_hash": "0665C35179C814F21CEBD5D48FD540774F12D6BE779719412CD4B70453D66CC8",
        "block_num": 28934,
        "transaction_time": "2019-11-07 15:09:52",
        "signature": "3045022100AEDF73852D4EB1228D7F8BE36FA006F803F2F2019728483EE39ADF939A8FE51F022008391707D074B509396D7A838B3D9A5857D738590EEF7683A0624F4071E91004",
        "public_key": "3059301306072A8648CE3D020106082A8648CE3D030107034200049ABD66494301557ECFD0EE096A49974EABD38367BE51A7D1D49E1FBCCBA7718402C8EE9ECCCE5F6C9880BD5EBA11A9B3E65F673BE9F194C81BA711D3C57796AD",
        "transaction_content": "[{\"isDelete\":false,\"value\":\"{\"FILE_HASH\":\"402098d92849ada7f08d8a636b3d6d8d51faa6b2a007d5cbdecd3bc1a1856730\",\"CHANNEL_ID\":\"CHANNEL_2019110709181488348056\",\"USER_ID\":\"20180821145735929189\",\"ORGANIZE_CODE\":\"\"}\",\"key\":\"402098d92849ada7f08d8a636b3d6d8d51faa6b2a007d5cbdecd3bc1a1856730\"}]"
    }
}

存证文件解密

URL

POST https://baas.qualink.com/bas/proof/file/decrypt

请求头部

Content-type: application/json
Authorization: 平台用户身份令牌

请求参数

名称 类型 必须 描述
biz_type_id String 业务类型ID
biz_id String 业务ID
secret String 钱包密码,启用钱包加密托管时必填
file_url String 文件URL
encrypt_data String 加密数据,明细接口中transaction_content字段的value

示例:

{
    "biz_type_id": "99",
    "biz_id": "ZL20191107150300000001",
    "secret": "123456",
    "file_url": "http://chain.ufile-inspur.ucloud.com.cn/qualink/baas/encrypt/201911071600105763719757201911071600105748543372.png",
    "encrypt_data": "{\"FILE_HASH\":\"402098d92849ada7f08d8a636b3d6d8d51faa6b2a007d5cbdecd3bc1a1856730\",\"CHANNEL_ID\":\"CHANNEL_2019110709181488348056\",\"USER_ID\":\"20180821145735929189\",\"ORGANIZE_CODE\":\"\"}"
}

返回数据

返回文件流