4.6.1 交易重试概述
交易重试接口的功能扩展于发送交易上链的接口。在发送交易上链的基础上扩展了交易失败的重试功能。
4.6.2 交易重试接口列表
4.6.2.1 基础交易自动重试接口
接口说明:将交易发送上链,如果失败了则进行失败重试。
请求方式:POST
请求地址:http://BROP_HOST:PORT/autotxretry/sendTxAndRetry.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 合约地址 |
bizId | String | 业务ID |
hsmUserId | String | 加密机用户索引 |
method | String | 智能合约方法 |
regionId | String | 专区编号(专区链需要传) |
params | String[](Object...) | 智能合约方法参数 |
返回结果:
名称 | 类型 | 描述 |
---|---|---|
detail | String | 自动生成的唯一交易业务编号 |
请求示例:
{
"contractAddress":"9c1e078931ba294f891dd7e9f3a6f70dec2d3051",
"bizId":"cwp01",
"method":"createRecord",
"params":[
"242bdd2f6d03edad97e308b905534fad5d56db27",
"record09281642",
"",
"242bdd2f6d03edad97e308b905534fad5d56db27",
"str",
"fb641d243381a0851ee655bfc6ee3ce7ad06592c"
],
"hsmUserId":"account01",
"regionId":"0x00000000002fbace000000005d1c745500000000"
}
返回示例:
{
"code": "SUCCESS",
"detail": "1509779266266751170"
}
4.6.2.2 查询自动重试交易信息接口
接口说明:查询失败重试的交易上链情况。
请求方式:GET
请求地址:http://BROP_HOST:PORT/autotxretry/queryResult.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
flowNumber | String | 业务流水号 |
返回结果:
名称 | 类型 | 描述 |
---|---|---|
blockLimit | number | 截至块号 |
params | List | 请求参数 |
bizId | string | 业务id |
contractAddress | string | 调用的合约地址 |
method | string | 调用的合约接口 |
hsmUserId | string | 加密机用户id |
createTime | string | 记录创建时间 |
updateTime | string | 记录更新时间 |
txHash | string | 交易hash |
retryTime | number | 重试次数 |
txStatus | string | 上链结果,详见[4.6.3 上链结果] |
desc | string | 失败描述 |
regionId | String | 专区编号(其他链字段为null,专区链为专区编号) |
请求示例:
?flowNumber=1509779266266751170
返回示例:
{
"code": "SUCCESS",
"detail": {
"blockLimit":10021,
"params":["ajkmxl",100],
"bizId":"createAccount01",
"contractAddress":"e3772c2001aca5cf6a098523442d8692b98b2e8f",
"method":"createAccount",
"hsmUserId":"admin",
"createTime":"2018-09-19 14:20:00",
"updateTime":"2018-09-19 19:20:00",
"txHash":"fae20e7c0b906f050063b3e9840f62f3b46f80369306e6e24d4e217ab4e0e181",
"retryTime":0,
"txStatus":"SUCCESS",
"desc":""
"regionId":"0x00000000002fbace000000005d1c745500000000"
}
}
4.6.2.3 重启“无效”交易接口
接口说明:将“无效”状态的交易重新改为“等待重试”状态,并将重试次数归零。
请求方式:GET
请求地址:http://BROP_HOST:PORT/autotxretry/resetInvalidRetry.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
flowNumber | String | 业务流水号(可选,不传该参数为重置所有该类状态的交易) |
返回结果:
名称 | 类型 | 描述 |
---|---|---|
code | String | 处理结果 |
请求示例:
?flowNumber=1509779266266751170
返回示例:
{
"code": "SUCCESS",
"detail": null
}
4.6.2.4 重启“交易处理中”状态交易接口
接口说明:将“交易处理中”状态的交易重新改为“等待重试”状态。
请求方式:GET
请求地址:http://BROP_HOST:PORT/autotxretry/resetDotxRetry.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
flowNumber | String | 业务流水号(可选,不传该参数为重置所有该类状态的交易) |
返回结果:
名称 | 类型 | 描述 |
---|---|---|
code | String | 处理结果 |
请求示例:
?flowNumber=1509779266266751170
返回示例:
{
"code": "SUCCESS",
"detail": null
}
4.6.3 上链结果
名称 | 类型 | 描述 |
---|---|---|
初始化 | INIT | 用于标识中间件接受到用户交易并写入数据库时的状态 |
交易处理中 | DOTX | 用于标识中间件正在处理交易时的锁定交易的状态 |
上链中 | ONCHAIN | 用于标识某笔交易已经发送上链,但还未确定交易是否发送成功的状态 |
成功 | SUCCESS | 用于标识某笔交易已经成功发送上链的状态 |
等待重试 | RETRY | 用于标识某笔交易等待中间件调度处理的状态 |
无效 | INVALID | 用于标识某笔交易暂停被处理的状态 |