58 BaaS API使用指南

1、调用链码的查询接口

https://apibaas.58.com/chaincode/query

请求方式:POST

输入参数 :

参数名 必填 类型 示例值 描述
appKey string 0e7c23s9e4453d90db7a42f61d2 区块链网络Key
appKey string xOJb3dn3dfdrQixDgffdds2YOnIH 组织Key
channelName string mychannel 通道名称
chaincodeName string chaincode 链码名称
chaincodeVersion string 1.0 链码版本
func string query 链码方法名称
args string a 链码参数,若有多个参数,args后加数字,从0开始。如有三个参数
a、b、100,
则需传递三个参数 args0=a&args1=b&args2=100
nonce string(32) C380BEC2BFD727A4B6845133519F3AD6  随机数
orgs string org1 链码调用的组织名称,默认调用orgKey所属组织,如调用多个组织,
则需用“|”分割组织名,如:orgs=org1|org2
sign string 6C7A87D8B55DAA1FF5DDF3F4243B7AE9 签名

输出参数 :

参数名称 类型 描述
code int 公共错误码, 200 表示成功,其他值表示失败,详见错误码
message string 模块错误信息描述,与接口相关
data json 在code=200时,返回查询结果数据


在code=200时,data中的数据:

参数名称 类型 描述
status int 公共错误码, 200 表示成功,其他值表示失败,详见错误码
message string 模块错误信息描述,与接口相关
data json 区块链返回的结果数据

2、调用链码的方法


https://apibaas.58.com/chaincode/invoke
请求方式:POST

输入参数 :

参数名 必填 类型 示例值 描述
appKey string 0e7c23s9e4453d90db7a42f61d2 区块链网络Key
orgKey string xOJb3dn3dfdrQixDgffdds2YOnIH 组织Key
channelName string mychannel 通道名称
chaincodeName string chaincode 链码名称
chaincodeVersion string 1.0 链码版本
func string transfer 链码方法名称
args string a 链码参数,若有多个参数,args后加数字,从0开始。如有三个参数
a、b、100,
则需传递三个参数 args0=a&args1=b&args2=100
nonce string(32) C380BEC2BFD727A4B6845133519F3AD6 随机数
orgs string org1 链码调用的组织名称,默认调用orgKey所属组织,如调用多个组织,
则需用“|”分割组织名,如:orgs=org1|org2
sign string 6C7A87D8B55DAA1FF5DDF3F4243B7AE9

签名,签名算法见第3部分

输出参数 :

58 BaaS API使用指南

3、错误码


code message 说明
200 SUCCESS 成功
500 ERROR 失败
501 PARAM_MISSING 缺少参数
502 PARAM_ERROR 参数错误
503 INVALID_SIGN 参数签名错误
504 RATE_LIMIT 调用太频繁,被限流(不超过2000TPS)
505 BLACK_LIST 已被加入黑名单


4、签名算法


签名生成的通用步骤如下:


第一步,将请求参数集合中非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。


特别注意以下重要规则:


◆ 参数名ASCII码从小到大排序(字典序);
◆ 如果参数的值为空不参与签名;
◆ 参数名区分大小写;
◆ sign参数不参与签名


第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。


◆ key路径:58区块链平台(baas.58.com)–> 查看组织密钥


举例:
假设传送的参数如下:


appKey=0e7c23s9e4453
orgKey=xOJb3dn3dfdrQi
channelName=mychannel
chaincodeName=chaincode
chaincodeVersion=1.0
func=transfer
args0=a
args1=b
args2=10
nonce=d8jcd77xss


第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:


StringA = appKey=0e7c23s9e4453&args0=a&args1=b&args2=10&chaincodeName=chaincode&chaincodeVersion=1.0&channe
lName=mychannel&func=transfer&nonce=d8jcd77xss&orgKey=xOJb3dn3dfdrQi


第二步:拼接API密钥:


stringSignTemp=stringA+”&key=123wwd”//注:key为组织秘钥


第三步:生成MD5签名


sign=MD5(stringSignTemp).toUpperCase() = “9A0A8659F005D6984697E2CA0A9CF3B7”


最终得到最终发送的数据:


appKey=0e7c23s9e4453
orgKey=xOJb3dn3dfdrQi
channelName=mychannel
chaincodeName=chaincode
chaincodeVersion=1.0
func=transfer
args0=a
args1=b
args2=10
nonce=d8jcd77xss
sign=9A0A8659F005D6984697E2CA0A9CF3B7

本文来源于互联网:58 BaaS API使用指南

原创文章,作者:酷毙编辑,如若转载,请注明出处:http://www.dailybtc.cn/58-baas-api%e4%bd%bf%e7%94%a8%e6%8c%87%e5%8d%97/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:[email protected]

工作时间:周一至周五,9:30-18:30,节假日休息

QR code