5.4.5.5 密钥托管模式下调用智能合约接口
链下业务系统在连接节点网关时,需要按照接口说明在请求中加入相应的请求参数,调用节点网关以后,节点网关会返回智能合约的执行结果。
1. 接口地址:https://节点网关地址/api/xuperchain/v1/node/reqChainCode
注:用户参与服务成功后可以在服务详情页面查看并下载应用链下业务系统开发所需要的应用服务配置参数、节点网关地址和应用接入密钥对,如下图:
2. 通讯方式: POST
3. 签名算法:详见5.4.5.1应用接入签名算法
4. 请求参数
序号 | 字段名 | 字段 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | 信息头 | header | Map | 是 | |
2 | 信息体 | body | Map | 是 | |
3 | 签名值 | mac | String | 是 | |
header | |||||
1 | 用户唯一标识 | userCode | String | 是 | |
2 | 应用唯一标识 | appCode | String | 是 | |
body | |||||
1 | 用户编号 | userId | String | 是 | |
2 | 用户地址 | userAddr | String | 是 | |
3 | 合约名称 | contractName | String | 是 | |
4 | 方法名称 | funcName | String | 是 | |
5 | 方法参数 | funcParam | String | 否 | 字符串,参数转为json字符串 |
示例
{
"header":{
"appCode":" CL1881038873220190902114314",
"userCode":" newuser "
},
"body":{
"userId":" abc",
" userAddr": "2CcmGvEFpC16MAn3MzheMy5eR4FqzaPcHV",
"contractName":"bsnbase",
"funcName":"insert_data",
"funcParam":"{\"baseKey\":\"dev_001\",\"baseValue\":\"aaron\"}"
},
"mac":"MEYCIQCRQyABwBai79zbjl2CJsAnhrisO6kl4hzg/W42+oZgLAIhAOXpXJBcSOl3d4hcgcs6AvA0F6qnRtU2WwIqNyC1LqCh"
}
5. 响应参数
序号 | 字段名 | 字段 | 类型 | 必填 | 备注 |
---|---|---|---|---|---|
1 | 信息头 | header | Map | 是 | |
2 | 信息体 | body | Map | 是 | |
3 | 签名值 | mac | String | 是 | |
header: | |||||
1 | 响应标识 | code | int | 是 | 0:校验成功 -1:校验失败 |
2 | 响应信息 | msg | String | 否 | code=0时可为null |
body: | |||||
1 | 交易标识 | txId | String | 否 | Invoke合约,不为空 |
2 | 查询信息 | queryInfo | String | 否 | Query合约,不为空 |
示例
{
"header": {
"code": 0,
"msg": "处理成功"
},
"mac": "MEQCIFbBW4AEzdf1g35vCwFphQM3VyO22FiXAgpLdkJ5+IhyAiA38xOJSaiCj4DTcmBWXhn6niaGFTd/bmq7cXGO+xVupg==",
"body": {
"txId": "0xd568dab2920a2c8a24883980da049269d0489dbba8fe04a20daa3762c5035dc0"
}
}