文档中心
BaaS API使用说明书

第1章 API身份验证 

 

1.1 注册账号并申请使用权限  

 

第2章 API调用  

 

2.1 引入SDK的maven依赖  

 

2.2 初始化client  

 

2.3 通过client调用API  

 

第3章 API列表  

 

3.1 查询链id列表  

 

3.2 创建账户  

 

3.3 链上部署合约  

 

3.4 链上调用合约(同步读)  

 

3.5 链上调用合约(同步写)  

 

3.6 链上调用合约(异步写)  

 

3.7 链上查询交易结果 

 

 

第1章  API身份验证

 

1.1  注册账号并申请使用权限

 

众安科技云会为每个API调用进行身份验证,所以在调用众安科技云BaaS平台API之前,用户需要注册并申请权限,具体如下:

 

1、登录进入“众安科技云控制台”,如果没有账号请注册。

 

VPC测试环境:https://console-test.zhonganinfo.com/

 

VPC生产环境:https://console.zhongan.io/ 

 

 

2、在“众安科技云控制台”完成实名认证。

 

 

3、进入“众安科技云BaaS平台”购买链。

 

VPC测试环境:https://baas-test.zhonganinfo.com/

 

VPC生产环境:https://baas.zhongan.io/  

 

点击创建

 

 

选择需要购买的链

 

 

选择产品,并点击下一步完成支付

 

 

4、在“众安科技云控制台”创建应用密钥。

 

      点击工单进入用户中心 

 

 

点击应用密钥管理,并点击accessKey创建密钥

 

 

点击编辑绑定密钥和链

 

 

5、应用密钥创建成功,获取accessKey和accessSecret。其中accessKey用于标识用户身份,accessSecret用于客户端加密签名和服务器端验证签名,必须严格保密。

 

 

第2章  API调用

 

2.1  引入SDK的maven依赖

 

<dependency>

<groupId>com.zhongan.tech</groupId>

<artifactId>anlink-openapi-sdk</artifactId>

<version>1.3.6-RELEASE</version>

 

</dependency>

 

2.2  初始化client

 

//设置环境,可选值SDKConstants.ENV_DEV、SDKConstants.ENV_TEST、SDKConstants.ENV_UAT、SDKConstants.ENV_PRE、SDKConstants.ENV_PRD,分别对应VPC的5套环境

//设置AccessKey和AccessSecret用于API身份验证,获取方法请参考第1章

SDKConfig config = new SDKConfig(SDKConstants.ENV_DEV, accessKey, accessSecret);

//初始化client

IAnlinkClient client = new DefaultAnlinkClient(config);

 

2.3  通过client调用API

 

//创建API请求

AnlinkRequest request= new AnlinkRequest();

//设置Uri,以下为示例Uri,每个API的真实Uri请参考第3章

String uri = "/demo/uri";    

request.setUri(uri);

//设置Method Type,以下为示例Method Type,每个API的真实Method Type请参考第3章

request.setMethodType(MethodType.POST);

//设置Content Type,以下为示例Content Type,每个API的真实Content Type请参考第3章

request.setContentType("application/json");  

request.setAccept("application/json");  

//设置Request Body,以下为示例Request Body,每个API的真实Request Body请参考第3章

Map<String,Object> requestBody= new HashMap<String, Object>();

requestBody.put("requestkey1","requestvalue1");  

request.setPostData(requestBody);

//设置是否给Request Body签名

request.setIfSignPostBody(LogicEnum.YES);  

//调用API

String result =client.doAction(request);

 

 

第3章  API列表

 

3.1  查询链id列表

 

·Uri:/baas/chain/queryDeployedChainIdList

·Method Type:POST

·Content Type:application/json

·Request Body:N/A

·Response Body:

 

字段名称类型备注
successBoolean调用API是否成功,true为成功,false为失败
errorCodeString若调用失败,返回错误代码
errorMsgString若调用失败,返回错误信息
resultJsonArray

若调用成功,返回用户部署成功的链id列表,示例:

"result": [

       {

           "chainId": "82f6f075-f4ba-4b64-95af-14d9a74e60fc",

           "chainName": "众安公共测试链",

           "remark": "众安科技众安科技云团队推出的公共测试链,欢迎试用!"

       }

]

返回值描述:

chainId  链id,API【3.3-3.7】在指定的链${chainId}上操作。

chainName 链名称

remark 链描述

 

3.2  创建账户

 

·Uri:/baas/account/create

·Method Type:POST

·Content Type:application/json

·Request Body:N/A

·Response Body:

 

字段名称类型备注
successBoolean调用API是否成功,true为成功,false为失败
errorCodeString若调用失败,返回错误代码
errorMsgString若调用失败,返回错误信息
resultJsonObject

若调用成功,返回创建成功的账户信息,示例:

"result": {

       "address": "0xc5ce24adc98d7e5997e4cc5cf22c5b5a08350a49"

}

返回值描述:

address 账户地址,接口【3.3-3.6】使用账户地址部署或调用智能合约

 

3.3  链上部署合约

 

·Uri:/baas/contract/create

·Method Type:POST

·Content Type:application/json

·Request Body:

 

字段名称类型必填(Y/N)备注
chainIdStringY链id
addressStringY账户地址
codeStringY合约二进制码
abiDefinitionStringY合约ABI序列化字符串
paramsJsonArrayN合约构造参数

·Response Body:

 

字段名称类型备注
successBoolean调用API是否成功,true为成功,false为失败
errorCodeString若调用失败,返回错误代码
errorMsgString若调用失败,返回错误信息
resultJsonObject

若调用成功,返回部署成功的合约信息,示例:

"result": {

       "contract": "0x99edb7c4ae989c9bea6dca4d863636bffe3512e9",

       "tx": "37fdd017ce0ccaf80296a91c4019c7ae8638bb31"

}

返回值描述:

contract 合约地址

tx 部署合约的交易哈希值

 

3.4  链上调用合约(读)

 

·Uri:/baas/contract/read

·Method Type:POST

·Content Type:application/json

·Request Body:

 

字段名称类型必填(Y/N)备注
chainIdStringY链id
addressStringY账户地址
contractStringY合约地址
paramsJsonArrayN调用参数
methodStringY调用方法

·Response Body:

 

字段名称类型备注
successBoolean调用API是否成功,true为成功,false为失败
errorCodeString若调用失败,返回错误代码
errorMsgString若调用失败,返回错误信息
resultJsonObject若调用成功,返回同步读合约结果

 

3.5  链上调用合约(同步写)

 

·Uri:/baas/contract/call

·Method Type:POST

·Content Type:application/json

·Request Body:

 

字段名称类型必填(Y/N)备注
chainIdStringY链id
addressStringY账户地址
contractStringY合约地址
paramsJsonArrayN调用参数
methodStringY调用方法

·Response Body:

 

字段名称类型备注
successBoolean调用API是否成功,true为成功,false为失败
errorCodeString若调用失败,返回错误代码
errorMsgString若调用失败,返回错误信息
resultString

若调用成功,返回同步写合约的交易哈希值,示例:

"result": "f774278741fbc1230380f9c4a57558204cbffaaf"

 

3.6  链上调用合约(异步写)

 

·Uri:/baas/contract/callAsync  

·Method Type:POST

·Content Type:application/json

·Request Body:

 

字段名称类型必填(Y/N)备注
chainIdStringY链id
addressStringY账户地址
contractStringY合约地址
paramsJsonArrayN调用参数
methodStringY调用方法
callbackUrl String 回调地址

 

·Response Body:

 

 

字段名称类型备注
successBoolean调用API是否成功,true为成功,false为失败
errorCodeString若调用失败,返回错误代码
errorMsgString若调用失败,返回错误信息
resultString

若调用成功,返回异步写合约的交易哈希值,示例:

"result": "a7dc34072e0d59ccd6ac77645ca150cb56f17309"

 

3.7 链上查询交易详情

 

·Uri:/baas/contract/receipt

·Method Type:POST

·Conten Type:application/json

·Request Body:

字段名称类型必填(Y/N)备注
chainIdStringY链id
hashStringY哈希值
typeStringN

上链方式,包括:

“0“ 合约上链 默认

“1” 存证上链

·Response Body:

 

字段名称类型备注
successBoolean调用API是否成功,true为成功,false为失败
errorCodeString若调用失败,返回错误代码
errorMsgString若调用失败,返回错误信息
resultString若调用成功,返回交易详情

 

 

3.8 链上查询交易结果

 

·Uri:/baas/contract/query  

·Method Type:POST

·Conten Type:application/json

·Request Body:

 

字段名称类型必填(Y/N)备注
chainIdStringY链id
hashStringY

哈希值

 

·Response Body:

 

字段名称类型备注
successBoolean调用API是否成功,true为成功,false为失败
errorCodeString若调用失败,返回错误代码
errorMsgString若调用失败,返回错误信息
resultString

若调用成功,返回交易哈希结果,示例:

"result": {

       "code": 1,

       "desc": "正常处理中"

}

返回值描述:

code 交易结果代码,范围1~4

desc 交易结果描述,包括:

“正常处理中”,对应code为1

“交易成功”,对应code为2

“交易失败”,对应code为3

“交易不存在”,对应code为4