混合支付平台 – SL21 API 接口说明

1. 注册

简要描述:

  • 注册新用户

请求URL: - http://localhost:3001/register

请求方式: - POST

参数:

参数名 必选 类型 说明
password string 密码

请求示例

{
    "password": "123"
}

返回示例

{
    "success": true,
    "statusCode": 200,
    "message": "注册成功",
    "data": {
        "address": "0x96951816290931278e0b7a2f5a0dcea6a9c86e77",
        "keyStore": "{\"version\":3,\"id\":\"4a6414df-ad68-4a8e-a1aa-c3036a09b77e\",\"address\":\"96951816290931278e0b7a2f5a0dcea6a9c86e77\",\"crypto\":{\"ciphertext\":\"06262cc1e3ceb7d0b3e9f0f64087be3eae33696b94075cad6b4183197a8c73e6\",\"cipherparams\":{\"iv\":\"ba261919f4ddcf1af6e1a0a9238cc240\"},\"cipher\":\"aes-128-ctr\",\"kdf\":\"scrypt\",\"kdfparams\":{\"dklen\":32,\"salt\":\"dc77114da655599012fb33e34a72dec5588167e9baf9405f1cd05e0282d4cd78\",\"n\":8192,\"r\":8,\"p\":1},\"mac\":\"3f19bae52ca0bd52f281d723178c470e0e297c521cfe4f87befebe67883b3a4e\"}}"
    }
}

返回参数说明

参数名 类型 说明
statusCode number 状态码
success boolean true / false
message string 异常说明
data object 查询信息
data参数名 类型 说明
address string 用户地址
keyStore string 用户keyStore

2. keyStore登录

简要描述:

  • 使用keyStore登录

请求URL: - http://localhost:3001/keyStoreLogin

请求方式: - POST

参数:

参数名 必选 类型 说明
keyStore string 用户keyStore
password string 密码

请求示例

{
    "keyStore": "{\"address\":\"8ef73a369711f309c8183d3633b141b78cb68835\",\"crypto\":{\"cipher\":\"aes-128-ctr\",\"ciphertext\":\"5fb42f62c65b79e95165501ca722e3343e3d88accde096856527b1dee7e70f6b\",\"cipherparams\":{\"iv\":\"3a5b059b940031e1edad49892b182165\"},\"kdf\":\"scrypt\",\"kdfparams\":{\"dklen\":32,\"n\":262144,\"p\":1,\"r\":8,\"salt\":\"568fcfb8fa8e2c0a7f731c067c79c3ad0a8be4f1a6c74774531d81c88d27406d\"},\"mac\":\"fa81f4d7773b2266a907abce563dc05d515afa211cd2cf3b0b3a7cc1de9ff039\"},\"id\":\"f44560c1-8063-4d9e-b371-6845ee168f79\",\"version\":3}",
    "password": "123456"
}

返回示例

{
    "success": true,
    "statusCode": 200,
    "message": "登录成功",
    "data": {
        "address": "0x8ef73a369711f309c8183d3633b141b78cb68835",
        "keyStore": "{\"address\":\"8ef73a369711f309c8183d3633b141b78cb68835\",\"crypto\":{\"cipher\":\"aes-128-ctr\",\"ciphertext\":\"5fb42f62c65b79e95165501ca722e3343e3d88accde096856527b1dee7e70f6b\",\"cipherparams\":{\"iv\":\"3a5b059b940031e1edad49892b182165\"},\"kdf\":\"scrypt\",\"kdfparams\":{\"dklen\":32,\"n\":262144,\"p\":1,\"r\":8,\"salt\":\"568fcfb8fa8e2c0a7f731c067c79c3ad0a8be4f1a6c74774531d81c88d27406d\"},\"mac\":\"fa81f4d7773b2266a907abce563dc05d515afa211cd2cf3b0b3a7cc1de9ff039\"},\"id\":\"f44560c1-8063-4d9e-b371-6845ee168f79\",\"version\":3}"
    }
}

返回参数说明

参数名 类型 说明
statusCode number 状态码
success boolean true / false
message string 异常说明
data object 查询信息
data参数名 类型 说明
address string 用户地址
keyStore string 用户keyStore

3. 用户登录

简要描述:

  • 用户登录

请求URL: - http://localhost:3001/login

请求方式: - POST

参数:

参数名 必选 类型 说明
address string 用户地址
password string 密码

请求示例

{
    "address": "0x8ef73a369711f309c8183d3633b141b78cb68835",
    "password": "123456"
}

返回示例

{
    "success": true,
    "statusCode": 200,
    "message": "登录成功",
    "data": {
        "address": "0x8ef73a369711f309c8183d3633b141b78cb68835",
        "keyStore": "{\"address\":\"8ef73a369711f309c8183d3633b141b78cb68835\",\"crypto\":{\"cipher\":\"aes-128-ctr\",\"ciphertext\":\"5fb42f62c65b79e95165501ca722e3343e3d88accde096856527b1dee7e70f6b\",\"cipherparams\":{\"iv\":\"3a5b059b940031e1edad49892b182165\"},\"kdf\":\"scrypt\",\"kdfparams\":{\"dklen\":32,\"n\":262144,\"p\":1,\"r\":8,\"salt\":\"568fcfb8fa8e2c0a7f731c067c79c3ad0a8be4f1a6c74774531d81c88d27406d\"},\"mac\":\"fa81f4d7773b2266a907abce563dc05d515afa211cd2cf3b0b3a7cc1de9ff039\"},\"id\":\"f44560c1-8063-4d9e-b371-6845ee168f79\",\"version\":3}"
    }
}

返回参数说明

参数名 类型 说明
statusCode number 状态码
success boolean true / false
message string 异常说明
data object 数据信息
data参数名 类型 说明
address string 用户地址
keyStore string 用户keyStore

6. 流转

简要描述:

  • 流转

请求URL: - http://localhost:3001/changeOwner

请求方式: - POST

参数:

参数名 必选 类型 说明
type number 类型(详见配置说明)
key number 资产唯一编号
fromUserAddr string 流转用户地址
password number 流转用户密码
toUserAddr number 接收用户地址

请求示例

{
    "type": "1",
    "key": 2,
    "fromUserAddr": "0x8ef73a369711f309c8183d3633b141b78cb68835",
    "toUserAddr": "0x292103a4b1d06d42bab4fee2cf3721485ac12b0b",
    "password": "123456"
}

返回示例

  {
    "success": true,
    "statusCode": 200,
    "message": "success",
    "data":{
        "time": 1591338217080
    }
}

返回参数说明

参数名 类型 说明
statusCode number 状态码
success boolean true / false
message string 异常说明
data object 数据信息
data参数名 类型 说明
time number 交易时间戳

7. 批量流转

简要描述:

  • 批量流转

请求URL: - http://localhost:3001/batchChangeOwner

请求方式: - POST

参数:

参数名 必选 类型 说明
type number 类型(详见配置说明)
keys Array 资产唯一编号 例:[1,2,3,4,5]
fromUserAddr string 流转用户地址
password number 流转用户密码
toUserAddr number 接收用户地址

请求示例

{
    "type": "10",
    "keys": [1, 2, 3],
    "fromUserAddr": "0x8ef73a369711f309c8183d3633b141b78cb68835",
    "toUserAddr": "0x292103a4b1d06d42bab4fee2cf3721485ac12b0b",
    "password": "123456"
}

返回示例

  {
    "success": true,
    "statusCode": 200,
    "message": "完成,失败的key查看data列表",
    "data": {
        "time": 1591338217080,
        "failList": []
    }
}

返回参数说明

参数名 类型 说明
statusCode number 状态码
success boolean true / false
message string 异常说明
data Object 数据时间戳
data参数名 类型 说明
time number 交易时间戳
failList Array 流转失败的资产列表

8. 流转(本地加签)

简要描述:

  • 流转,可在本地把加签好的数据直接传入后台,无需传入密码,安全性高。

请求URL: - http://localhost:3001/changeOwnerSign

请求方式: - POST

参数:

参数名 必选 类型 说明
type number 类型(详见配置说明)
key number 资产唯一编号
fromUserAddr string 流转用户地址
signInfo string 加签后的数据(通过本地特有加签方法加签)
toUserAddr number 接收用户地址

请求示例

{
    "type": "1",
    "key": 2,
    "fromUserAddr": "0x8ef73a369711f309c8183d3633b141b78cb68835",
    "toUserAddr": "0x292103a4b1d06d42bab4fee2cf3721485ac12b0b",
    "signInfo": "0x09dd6fabc8071f88f9d6b64e03a1bb51f64ffe5ebb165203e6fde3e8b2c0d53f630b8120fe81d8bcffcdf1a67fc3daa87ea264f91ec9fe44b67a5521b0b2e5cc1b"
}

返回示例

  {
    "success": true,
    "statusCode": 200,
    "message": "success",
    "data":{
        "time": 1591338217080
    }
}

返回参数说明

参数名 类型 说明
statusCode number 状态码
success boolean true / false
message string 异常说明
data object 数据信息
data参数名 类型 说明
time number 交易时间戳

9. 批量流转(本地加签)

简要描述:

  • 批量流转,可在本地把加签好的数据直接传入后台,无需传入密码,安全性高。

请求URL: - http://localhost:3001/batchChangeOwnerSign

请求方式: - POST

参数:

参数名 必选 类型 说明
type number 类型(详见配置说明)
keys Array 资产唯一编号 例:[1,2,3,4,5]
fromUserAddr string 流转用户地址
signInfo string 加签后的数据(通过本地特有加签方法加签)
toUserAddr number 接收用户地址

请求示例

{
    "type": "10",
    "keys": [1, 2, 3],
    "fromUserAddr": "0x8ef73a369711f309c8183d3633b141b78cb68835",
    "toUserAddr": "0x292103a4b1d06d42bab4fee2cf3721485ac12b0b",
    "signInfo": "0x09dd6fabc8071f88f9d6b64e03a1bb51f64ffe5ebb165203e6fde3e8b2c0d53f630b8120fe81d8bcffcdf1a67fc3daa87ea264f91ec9fe44b67a5521b0b2e5cc1b"
}

返回示例

  {
    "success": true,
    "statusCode": 200,
    "message": "完成,失败的key查看data列表",
    "data": {
        "time": 1591338217080,
        "failList": []
    }
}

返回参数说明

参数名 类型 说明
statusCode number 状态码
success boolean true / false
message string 异常说明
data Object 数据时间戳
data参数名 类型 说明
time number 交易时间戳
failList Array 流转失败的资产列表

10. 校验

简要描述:

  • 校验是否上链

请求URL: - http://localhost:3001/traceCheck

请求方式: - POST

参数:

参数名 必选 类型 说明
type number 类型(详见配置说明)
key number 资产唯一编号
proof string proof证明路径

请求示例

{
    "type": "100",
    "key": 1,
    "proof": "[{\"left\":\"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b\"},{\"right\":\"4dc7876b8edc94a5791ad1cc18498f65560e12b9df308b689e28d3f23f026769\"},{\"right\":\"ac37ca9ea554e6f4239d00359c342705f254df9611bb95eb25641166b11a8308\"},{\"right\":\"0df9f436c177e9aa90d47697c5bb2038553f48a4f846757ad0a6d762ef9a34a0\"},{\"right\":\"545922ac6f713881e04165ea0a8190d0a79965a1d8cef26851964241bc33267b\"},{\"right\":\"333459ecc0b673a964cf445d1e6f8099bba14940d414e16626e89902cb2a16bf\"},{\"right\":\"49f64c54fb86e54b4281b32fa539e0166f23b9c1d52928e12a46914f7e20a308\"},{\"right\":\"be9c408db55ab55c819ec9e271274e387ddcfaa292361eef18273788f5c36fee\"},{\"right\":\"4ab69295400dc01b4441ccee5cc65234f90ee91bb441a5b54c339b1fa2e169b2\"},{\"right\":\"592ddd50c7da7dcfe0394a6ef2a2c431a97929b870776693fe07bfa4534c27ef\"},{\"right\":\"3c796a92bb8083757f8369b23092e9a6215c562ed29ed217cce1f185625bc8d2\"}]"
}

返回示例

  {
    "success": true,
    "statusCode": 200,
    "message": "校验结果:成功"
}

返回参数说明

参数名 类型 说明
statusCode number 状态码
success boolean true / false
message string 异常说明

11. 根据用户获取资产

简要描述:

  • 根据用户获取资产

请求URL: - http://localhost:3001/getUserToken

请求方式: - POST

参数:

参数名 必选 类型 说明
userAddr string 用户地址
type number 类型(详见配置说明)
page number 页数
rows number 条数

请求示例

{
    "userAddr": "0x292103a4b1d06d42bab4fee2cf3721485ac12b0b",
    "type": "1",
    "page": 1,
    "rows": 10
}

返回示例

{
    "success": true,
    "statusCode": 200,
    "message": "查询成功",
    "data": {
        "recordsTotal": 1,
        "pageTotal": 1,
        "page": 1,
        "records": [{
            "_id": "5ec787508e8e4e37a03f92d2",
            "__v": 0,
            "type": "1",
            "key": 1,
            "value": "1590138663854&1&0x292103a4b1d06d42bab4fee2cf3721485ac12b0b&0x8f0f4482081b8d266ccc050ecd0110efd4d988eea2d126c5e422cfdc517cac422dfa02f785ef0437918de27decaf36949a92109d13c7f4d6cc3233ba38ee52651b",
            "keyHash": "6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b",
            "valueHash": "a797b12d6b2d7d5e89aaa4cdc7a3e0627a4b59910af8a415f7bc717c49c514ad",
            "valueProof": "[{\"left\":\"6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b\"},{\"right\":\"c325b46b19835bab28a4866698d307f211e25f68390c90ead4e85f63326e512f\"},{\"right\":\"bb67192158f620d1c2595a703855845a980c116825aec38f60a602e0642a89a9\"},{\"right\":\"d77a193767bf5aff053b6e84d71611ca6a5f2c6bb6fb19ae585c72f5bb3c2953\"},{\"right\":\"4d5afc27c79cba9095e6f28d976c1a892f6ad002068e3041fcf2d443fe3251d5\"},{\"right\":\"7ac0a114b6fc2e30294004e51bcf3df84bcbcc00b4aacd19b51629d4015bfcde\"},{\"right\":\"2838ee98b56d3b136918adec26d731403ac3814e2d3f4de57abc8f00018eb6f5\"},{\"right\":\"57e6e9992454fe0b61520bec968f71ee16da7236d8642b96c775af6ab7518d19\"},{\"right\":\"189577ecba4c767e7836e396de73a9743e067b50fcb8be3568e76437ecb048f7\"},{\"right\":\"186a5c6ed1a4a739c80764679a4aaefb7c11f0576e792d397c41a6e55064bc2e\"},{\"right\":\"194039a8700467582007bfb383d58dce8c732e6f9f9bab74de968200f6fb0c21\"}]",
            "updateTime": 1590138672706,
            "txHash": "0x1d69e08ef66368ca03e390de66ef383627dcde35316b295139861a22bd9ca569",
            "rootHash": "0x4342a044f209d872f7a2a19b2f597afc5f1e94ab70bd46f7ead282e16308cafb",
            "owner": "0x292103a4b1d06d42bab4fee2cf3721485ac12b0b",
            "contractAddress": "0x29e5c10152dc6a5609aaafc974d16de6f0d0ff96",
            "tempValue": "",
            "status": "0"
        }]
    }
}

返回参数说明

参数名 类型 说明
statusCode number 状态码
success boolean true / false
message string 异常说明
data object 查询信息
data参数名 类型 说明
recordsTotal number 总条数
pageTotal number 总页数
page number 当前页数
records array 数据列表
records参数名 类型 说明
_id string id编码
type string 类型(详见配置说明)
key number 资产唯一编号
value string 资产流转记录
keyHash string 资产唯一编号哈希值
valueHash string 资产流转记录哈希值
updateTime number 更新时间戳
txHash string 交易哈希值
valueProof rootHash merkelTree根哈希值
owner string 当前拥有者
contractAddress string 所在合约地址
tempValue string 未确认的流转记录
status string 是否确认,“0”:未确认,“1”:已确认

12. 根据资产唯一编号获取资产流转记录

简要描述:

  • 根据资产唯一编号获取资产流转记录

请求URL: - http://localhost:3001/getTokenTransfe

请求方式: - POST

参数:

参数名 必选 类型 说明
type number 类型(详见配置说明)
key number 资产唯一编号

请求示例

{
    "type": "10",
    "key": 1
}

返回示例

  {
    "success": true,
    "statusCode": 200,
    "message": "查询成功",
    "data": {
        "confirmedList": [{
            "time": "1590139186911",
            "user": "0x292103a4b1d06d42bab4fee2cf3721485ac12b0b"
        }]
    }
}

返回参数说明

参数名 类型 说明
statusCode number 状态码
success boolean true / false
message string 异常说明
data object 查询信息
data参数名 类型 说明
confirmedList array 已确认的流转记录
confirmingList array 未确认的流转记录

状态码

  • 服务异常状态码

501:find db异常

502:update db异常

  • 业务异常状态码

610:初始化MerkleTools失败

611:获取合约失败

612:makeTree数据初始化失败

614:初始化标签时,rpc调用addKVLeaf失败

617:入厂时候rpc调用modifyTraceValue异常

618:入厂时候rpc调用getTraceValue异常

619:该用户无权限操作此数据

621:入厂时候key不合法

622:签名验证失败

623:用户未登录

624:上链未确认

625:校验失败

626:调用合约出错

627:调用rpc出错

628:查询资产为空

629:资产唯一编号不合法

630:注册失败

631:密码错误

632:登录失败

633:keyStore登录解析keystore失败

634:登录失败,请用keyStore方式登录

635:设置缓存时候,验签失败

636:退出失败