用户中心

获取access_token

access_token是开发者平台的全局唯一票据号,开发者调用接口时都需要使用access_token。开发者需要将其妥善保存,access_token目前有效期是2个小时。

接口请求说明

http请求方式:post

https://api.bubidev.cn/oauth2/token?client_id=appId&client_secret=appKey&grant_type=client_credentials

注:请求是需要在header里Content-Type 需要设置application/x-www-form-urlencoded

参数说明

参数说明
client_id第三方用户唯一凭证,即appId
client_secret第三方用户唯一凭证秘钥,即appkey
grant_type固定填写client_credentials

服务器响应

{
	"access_token":"0d375f84e588559602ff2fac016fe505",
	"expires_in":7200
}

参数说明
access_token获取到的票据号
expires_in票据的有效期,单位:秒

注册区块链账户

开发者可以通过该接口注册区块链账户,注册后该账户处于未激活状态,只有当该账户发行资产或收到其他账户转移给他的资产后,才会被激活。

接口请求说明

http请求方式:post

https://api.bubidev.cn/account/v1/register?access_token=ACCESS_TOKEN

post数据格式:json

post数据示例:

{
	"user_name":"nan_jiang36",
	"password":"qaz123",
	"trade_no":"1000009820141203515766",
	"metadata":"xxxxxxxx"
}

参数说明

参数说明
access_token调用接口票据号
user_name账户名
规则:长度不能长于25个字符
password账户密码
规则:长度不能长于30个字符
trade_no接口调用请求号,在开发者系统里生成
规则:仅包含字母数字,长度不能长于55个字符
metadata自定义字段

服务器响应

成功:
{
	"err_code":"0",
	"msg":"成功",
	"data":
	{
		"bubi_address":"bubiV8i7c3fM7MPFfjZsP4h1zGLUEix4gXUnX8Ft"
	}
}
失败:
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}

重置区块链账户

调用该接口开发者可以重置自己账户下创建的区块链账户密码,新密码将直接更换旧密码

接口请求说明

http请求方式:post

https://api.bubidev.cn/account/v1/alterPwd?access_token=ACCESS_TOKEN

post数据格式:json

post数据示例:

{
	"user_name":"nan_jiang36",
	"new_password":"qaz123",
	"trade_no":"1000009820141203515766"
}

参数说明

参数说明
access_token调用接口票据号
user_name账户名
规则:长度不能长于25个字符
new_password账户新密码
规则:长度不能长于30个字符
trade_no接口调用请求号,在开发者系统里生成
规则:仅包含字母数字,长度不能长于55个字符

服务器响应

成功:
{
	"err_code":"0",
	"msg":"成功",
	"data":"bubiV8i7c3fM7MPFfjZsP4h1zGLUEix4gXUnX8Ft"
}
失败:
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}

同步方式_发行资产

开发者可以通过该接口自行发行资产。

当开发者发行的资产具有有效期时,需要设置资产明细列表。具体见示例

接口请求说明

http请求方式:post

https://api.bubidev.cn/asset/v1/issue?access_token=ACCESS_TOKEN

post数据格式:json

post数据示例:

示例1:发行普通资产
	{
		"trade_no":"1000009820141203513322",
		"asset_issuer":"bubiV8iAvbAN319uVJPm2qrxdJNgXSdFSiyQoQ4Y",
		"password":"asd123",
		"asset_name":"绿耳朵资产",
		"asset_unit":"朵",
		"asset_amount":"21300",
		"metadata": "{\"asset_type\":\"10600\",\"asset_unit_code\":\"15\",\"asset_description\":\"xxxxxxxxxxx\"}"
	}
	
   示例2:发行指定有效期起始时间后,资产才拥有有效期。支持混合组合,为了能通过区块链审核,请注意明细里资产数量之和必须与待发行资产数量相等。
	{
		"password":"asd123",
		"trade_no":"1000009820141203513322",
		"asset_issuer":"bubiV8iAvbAN319uVJPm2qrxdJNgXSdFSiyQoQ4Y",
		"asset_name":"绿耳朵资产",
		"asset_unit":"朵",
		"asset_amount":"21300",
		"details":[
			{
				"amount" : 20000,
				"start" : 1451535556,
				"length" : 31536000,
				"ext" :"xxxx"
			},
			{
				"amount" : 300,
				"start" : 1451535975,
				"length" : 31536000,
				"ext" :"xxxx"
			},
			{
				"amount" : 1000,
				"start" : 1451535975,
				"length" : 0
			}
		],
		"metadata":"{\"asset_type\":\"10600\",\"asset_unit_code\":\"15\",\"asset_description\":\"xxxxxxxxxxx\"}"
	}

参数说明

参数说明
access_token调用接口票据号
password待发行资产的账户密码
trade_no接口调用凭据号,必须在开发者系统里保证唯一
规则:仅包含字母数字,长度不能长于55个字符
asset_amount发行资产数量
注: 数量按单位制最小进制表示,如1250分(等价于12.5元),区块链仅识别正整数
asset_issuer资产发行方的区块链地址
asset_name资产名称(带中文,请用utf-8进行编码)
规则:长度不能长于20个字符
asset_unit资产单位(带中文,请用utf-8进行编码)
规则:长度不能长于6个字符
details资产明细列表(可选)
若填写资产明细里的资产数量总和必须等于发行资产数量,即公式 details.amount[0] +details.amount[2] +... = asset_amount
details.amount资产数量
details.start资产有效期起始时间
注linux时间戳
details.length资产有效期(-1 未初始化,0 有效期为永久 ,大于0 有效期单位为秒 )
details.ext扩展字段[可选]
metadata扩展字段[可选]
    asset_type资产类型:分类详情见 资产类型规范
如:10600 代表数字黄金
    asset_unit_code资产单位编码:分类详情见 资产单位规范
如:15 代表毫克
    asset_description资产描述

服务器响应

成功:
{
	"data": {
		"asset_amount": 21300,
		"asset_code": "7R3DPR6j5YyxrcXa7QsUJckNDeMyR26MtZVnbN6d4kCkfNejKczfT4j8adeJThRLcbBxPbGVuY5RNKqWSBcUFATW7smWuZzRfDUn",
		"asset_issuer": "bubiV8iAvbAN319uVJPm2qrxdJNgXSdFSiyQoQ4Y",
		"asset_name": "绿耳朵资产",
		"asset_unit": "朵",
		"bc_hash": "c44c595ce0a77d6a1f22a942ac397cc1cdc1edd654be56286a66af8364713b7d"
	},
	"err_code": "0",
	"msg": "操作成功"
}
失败:
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}

异步方式_发行资产

开发者可以通过该接口自行发行资产

布萌服务器接收到请求数据后会立即响应给开发者结果为”资产正在发行”(正在进行区块链数据交互)。交互结果不管成功还是失败,布萌服务器会主动通知开发者,具体见“布萌通知接口”。

接口请求说明

http请求方式:post

https://api.bubidev.cn/asset/v1/issueAsync?access_token=ACCESS_TOKEN

post数据格式:json

post数据示例:

示例1:发行普通资产
{
	"trade_no": "1000009820141203513322",
	"asset_issuer": "bubiV8iAvbAN319uVJPm2qrxdJNgXSdFSiyQoQ4Y",
	"password": "asd123",
	"asset_name": "xx黄金",
	"asset_unit": "毫克",
	"asset_amount": "21300",
	"metadata": "{\"asset_type\":\"10600\",\"asset_unit_code\":\"15\",\"asset_description\":\"xxxxxxxxxxx\"}"
}

 示例2:发行指定有效期起始时间后,资产才拥有有效期。支持混合组合,为了能通过区块链审核,请注意明细里资产数量之和必须与待发行资产数量相等。
{
	"password":"asd123",
	"trade_no":"1000009820141203513322",
	"asset_issuer":"bubiV8iAvbAN319uVJPm2qrxdJNgXSdFSiyQoQ4Y",
	"asset_name": "xx黄金",
	"asset_unit": "毫克",
	"asset_amount":"21300",
	"details":[
		{
			"amount" : 20000,
			"start" : 1451535556,
			"length" : 31536000,
			"ext" :"xxxx"
		},
		{
			"amount" : 300,
			"start" : 1451535975,
			"length" : 31536000,
			"ext" :"xxxx"
		},
		{
			"amount" : 1000,
			"start" : 1451535975,
			"length" : 0
		}
	],
	"metadata": "{\"asset_type\":\"10600\",\"asset_unit_code\":\"15\",\"asset_description\":\"xxxxxxxxxxx\"}"
}

参数说明

参数说明
access_token调用接口票据号
password待发行资产的账户密码
trade_no接口调用请求号,在开发者系统里生成
规则:仅包含字母数字,长度不能长于55个字符
asset_amount发行资产数量
注: 数量按单位制最小进制表示,如1250分(等价于12.5元),区块链仅识别正整数
asset_issuer资产发行方的区块链地址
asset_name资产名称(带中文,请用utf-8进行编码)
规则:长度不能长于20个字符
asset_unit资产单位(带中文,请用utf-8进行编码)
规则:长度不能长于6个字符
details资产明细列表(可选)
若填写资产明细里的资产数量总和必须等于发行资产数量,即公式 details.amount[0] +details.amount[2] +... = asset_amount
details.amount资产数量
details.start资产有效期起始时间
注linux时间戳
details.length资产有效期(-1 未初始化,0 有效期为永久 ,大于0 有效期单位为秒 )
details.ext资产描述(可选)
metadata扩展字符串
规则:不能超过1M
    asset_type资产类型:分类详情见 资产类型规范
如:10600 代表数字黄金
    asset_unit_code资产单位编码:分类详情见 资产单位规范
如:15 代表毫克
    asset_description资产描述

服务器响应

成功:
{
	"data": {
		"trade_no": "1000009820141203513322"
	},
	"err_code": "0",
	"msg": "资产正在发行"
}
失败:
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}

获取资产详情

开发者可以通过本接口来获取资产详情。

接口请求说明

http请求方式:get

https://api.bubidev.cn/asset/v1/showDetail?asset_code=2UX4xvQ4aWvqd5KzUnUFz3ptvYEwFXPQLXGpYBtRp7ruT2Z5GqCFgbXWLxfif6vvu2yLZeMyukWf9f1FfCz6SSBR4Sz9AxMdxbXu7oXNMaCdXYLERopKCXbZ7WUNB1fvzR1aWXe2t1vZHSVv&access_token=ACCESS_TOKEN

参数说明

参数说明
access_token调用接口凭证
asset_code资产ID

服务器响应

成功:
{
	"data": {
		"appId": "65f1e2d9caffc8bc25fb0b2260999e50",
		"assetAmount": 1000000,
		"assetCode": "2UX4xvQ4aWvqd5KzUnUFz3ptvYEwFXPQLXGpYBtRp7ruT2Z5GqCFgbXWLxfif6vvu2yLZeMyukWf9f1FfCz6SSBR4Sz9AxMdxbXu7oXNMaCdXYLERopKCXbZ7WUNB1fvzR1aWXe2t1vZHSVv",
		"assetDescription": "一个神奇的美玉",
		"assetIssuer": "bubiV8hUDBWPbDKLmj8d88Pvc9ckGBNCGzctMniw",
		"assetName": "碧玉",
		"assetType": "10100",
		"assetUnit": "个",
		"assetUnitCode": "1",
		"createTime": 1490002929000,
		"hash": "d4f40edd7ed3eee4fe573d9ba2aa585909acc6c9deaff783d873ded02c0c2749",
		"metadata": "{\"asset_type\":\"10100\",\"asset_unit_code\":\"1\",\"asset_description\":\"一个神奇的美玉\"}",
		"updateTime": 1490002929000
	},
	"err_code": "0",
	"msg": "操作成功"
}
失败:
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}

服务器响应主要参数说明

参数说明
data
  |  appId资产所属appId
  |  assetAmount资产发行量
  |  assetDescription资产描述
注:没有按资产标准化后的数据没有该字段
  |  assetIssuer资产发行方区块链地址
  |  assetName资产名称
  |  assetType资产类型,详情见 资产类型规范
注:没有按资产标准化后的数据没有该字段
  |  assetUnit资产单位
注:没有按资产标准化后的数据没有该字段
  |  assetUnitCode资产单位编码,详情见 资产单位规范
注:没有按资产标准化后的数据没有该字段
  |  createTime资产创建时间
  |  hash资产写入区块链时的hash
  |  metadata资产发行时的扩展字段
  |  updateTime资产更新时间

同步方式_增发资产

开发者可以通过该接口自行对现有资产进行数量增发。

当开发者增发资产并带有效期的资产时,需要设置资产明细列表。具体见示例

接口请求说明

http请求方式:post

https://api.bubidev.cn/asset/v1/add2Issue?access_token=ACCESS_TOKEN

post数据格式:json

post数据示例:

示例1:增发普通资产
{
	"password":"asd123",
	"trade_no":"1000009820141203513322",
	"asset_code": "7R3DPR6j5YyxrcXa7QsUJckNDeMyR26MtZVnbN6d4kCkfNejKczfT4j8adeJThRLcbBxPbGVuY5RNKqWSBcUFATW7smWuZzRfDUn",
	"asset_amount":"21300",
	"metadata":"xxxxx"
}

示例2:发行指定有效期起始时间后,资产才拥有有效期。支持混合组合,为了能通过区块链审核,请注意明细里资产数量之和必须与待发行资产数量相等。
{
	"password":"asd123",
	"trade_no":"1000009820141203513322",
	"asset_code": "7R3DPR6j5YyxrcXa7QsUJckNDeMyR26MtZVnbN6d4kCkfNejKczfT4j8adeJThRLcbBxPbGVuY5RNKqWSBcUFATW7smWuZzRfDUn",
	"asset_amount":"21300",
	"details":[
		{
			"amount" : 20000,
			"start" : 1451535556,
			"length" : 31536000,
			"ext" :"xxxx"
		},
		{
			"amount" : 300,
			"start" : 1451535975,
			"length" : 31536000,
			"ext" :"xxxx"
		},
		{
			"amount" : 1000,
			"start" : 1451535975,
			"length" : 0
		}
	],
	"metadata":"xxxxx"
}

参数说明

参数说明
access_token调用接口票据号
password待发行资产的账户密码
trade_no接口调用请求号,在开发者系统里生成
规则:仅包含字母数字,长度不能长于55个字符
asset_amount发行资产数量
注: 数量按单位制最小进制表示,如1250分(等价于12.5元),区块链仅识别正整数
asset_code资产ID
details资产明细列表(可选)
若填写资产明细里的资产数量总和必须等于发行资产数量,即公式 details.amount[0] +details.amount[2] +... = asset_amount
details.amount资产数量
details.start资产有效期起始时间
注linux时间戳
details.length资产有效期(-1 未初始化,0 有效期为永久 ,大于0 有效期单位为秒 )
details.ext资产描述(可选)
metadata扩展字段(可选)

服务器响应

成功:
{
	"data": {
		"asset_amount": 21300,
		"asset_code": "7R3DPR6j5YyxrcXa7QsUJckNDeMyR26MtZVnbN6d4kCkfNejKczfT4j8adeJThRLcbBxPbGVuY5RNKqWSBcUFATW7smWuZzRfDUn",
		"asset_issuer": "bubiV8iAvbAN319uVJPm2qrxdJNgXSdFSiyQoQ4Y",
		"asset_name": "绿耳朵资产",
		"asset_unit": "朵",
"bc_hash": "c44c595ce0a77d6a1f22a942ac397cc1cdc1edd654be56286a66af8364713b7d"
	},
	"err_code": "0",
	"msg": "操作成功"
}
失败:
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}

异步方式_增发资产

开发者可以通过该接口自行发行资产

布萌服务器接收到请求数据后会立即响应给开发者结果为”资产正在发行”(正在进行区块链数据交互)。交互结果不管成功还是失败,布萌服务器会主动通知开发者,具体见“布萌通知接口”。

接口请求说明

http请求方式:post

https://api.bubidev.cn/asset/v1/add2IssueAsync?access_token=ACCESS_TOKEN

post数据格式:json

post数据示例:

示例1:发行普通资产
{
	"password":"asd123",
	"trade_no":"1000009820141203513322",
	"asset_code": "7R3DPR6j5YyxrcXa7QsUJckNDeMyR26MtZVnbN6d4kCkfNejKczfT4j8adeJThRLcbBxPbGVuY5RNKqWSBcUFATW7smWuZzRfDUn",
	"asset_amount":"21300",
	"metadata":"xxxxx"
}

示例2:发行指定有效期起始时间后,资产才拥有有效期。支持混合组合,为了能通过区块链审核,请注意明细里资产数量之和必须与待发行资产数量相等。
{
	"password":"asd123",
	"trade_no":"1000009820141203513322",
	"asset_code": "7R3DPR6j5YyxrcXa7QsUJckNDeMyR26MtZVnbN6d4kCkfNejKczfT4j8adeJThRLcbBxPbGVuY5RNKqWSBcUFATW7smWuZzRfDUn",
	"asset_amount":"21300",
	"details":[
		{
			"amount" : 20000,
			"start" : 1451535556,
			"length" : 31536000
		},
		{
			"amount" : 300,
			"start" : 1451535975,
			"length" : 31536000
		},
		{
			"amount" : 1000,
			"start" : 1451535975,
			"length" : 0
		}
	],
	"metadata":"xxxxx"
}

参数说明

参数说明
access_token调用接口票据号
password待发行资产的账户密码
trade_no接口调用请求号,在开发者系统里生成
规则:仅包含字母数字,长度不能长于55个字符
asset_amount发行资产数量
注: 数量按单位制最小进制表示,如1250分(等价于12.5元),区块链仅识别正整数
asset_code资产ID
details资产明细列表(可选)
若填写资产明细里的资产数量总和必须等于发行资产数量,即公式 details.amount[0] +details.amount[2] +... = asset_amount
details.amount资产数量
details.start资产有效期起始时间
注linux时间戳
details.length资产有效期(-1 未初始化,0 有效期为永久 ,大于0 有效期单位为秒 )
details.ext资产描述(可选)
metadata扩展字段(可选)

服务器响应

成功:
{
	"data": {
		"trade_no": "1000009820141203513322"
	},
	"err_code": "0",
	"msg": "资产正在追加发行"
}
失败:
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}

同步方式_转移资产

开发者可以通过本接口来完成资产的转移。

资产拥有者将自己拥有的资产转移给他人

接口请求说明

http请求方式:post

https://api.bubidev.cn/asset/v1/send?access_token=ACCESS_TOKEN

post数据格式:json

post数据示例:

{
	"trade_no" : "2015121822911",
	"current_string" : "MqUq6TASQju57VcH",
	"password" : "abcd100",
	"asset_code" : "7R3DPR6j5YyxrcXa7QsUJckNDeMyR26MtZVnbN6d4kCkfNejKczfT4j8adeJThRLcbBxPbGVuY5RNKqWSBcUFATW7smWuZzRfDUn",
	"asset_amount" : "240",
	"from_bubi_address" : "bubiV8iAvbAN319uVJPm2qrxdJNgXSdFSiyQoQ4Y",
	"to_bubi_address" : "bubiV8iG97JVp7V7XhdAQN4Be8jMxF3giphVeU27",
	"metadata" : "{\"sub_tx_type\":\"10100\"}",
	"sign" : "kfB53Q4aSJmDLyKguiP6mG5bee2XmtbTNQ2"
}

参数说明

参数说明
current_string随机字符串,不长于32位
signTX签名,见签名算法,涉及到验签参数有current_string、trade_no、asset_code、asset_amount、from_bubi_address和to_bubi_address
password资产转出方的账户密码
trade_no接口调用请求号,在开发者系统里生成
规则:仅包含字母数字,长度不能长于55个字符
asset_code资产ID
转出方给转入方转让的资产标识(全网唯一)
asset_amount资产转移数量
规则:正整数
from_bubi_address资产转出方区块链地址
to_bubi_address资产转入方区块链地址
details资产明细列表(可选),若填写资产明细里的资产数量总和必须等于资产转移数量,即公式 details.amount[0] +details.amount[2] = asset_amount
    amount资产数量
    start资产有效期起始时间
用linux时间戳,精确到秒
    length资产有效期
示例:-1 未初始化,0 有效期为永久 ,大于0 有效期单位为秒
metadata
    sub_tx_typeTX类型:购物 10100 理财 10200 转账 10300 兑换 10400 还款 10500 缴费 10600 提现 10700 退款 10800

服务器响应

成功:
{
	"err_code":"0",
	"msg":"资产转移成功",
	"data":{
		"trade_no":"2015121822911",
		"tran_date": "1458888418607",
		"bc_hash": "c44c595ce0a77d6a1f22a942ac397cc1cdc1edd654be56286a66af8364713b7d"
	}
}
失败:
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}

异步方式_转移资产

开发者可以通过本接口来完成资产的异步转移。

布萌服务器接收到请求数据后会立即响应给开发者资产正在转移(正在进行区块链数据交互)。交互结果不管成功还是失败,布萌服务器会主动通知开发者,具体见“布萌通知接口”。

接口请求说明

http请求方式:post

https://api.bubidev.cn/asset/v1/sendAsync?access_token=ACCESS_TOKEN

post数据格式:json

post数据示例:

{
	"current_string": "MqUq6TASQju57VcH",
	"password": "abcd100",
	"sign": "kfB53Q4aSJmDLyKguiP6mG5bee2XmtbTNQ2",
	"trade_no": "2015121822911",
	"asset_code": "7R3DPR6j5YyxrcXa7QsUJckNDeMyR26MtZVnbN6d4kCkfNejKczfT4j8adeJThRLcbBxPbGVuY5RNKqWSBcUFATW7smWuZzRfDUn",
	"asset_amount": "10000",
	"from_bubi_address": "bubiV8iAvbAN319uVJPm2qrxdJNgXSdFSiyQoQ4Y",
	"to_bubi_address": "bubiV8iG97JVp7V7XhdAQN4Be8jMxF3giphVeU27",
	"details":[
		{
			"amount" : 200,
			"start" : 1451535556,
			"length" : 31536000,
			"ext" :"xxxx"
		},
		{
			"amount" : 30,
			"start" : 1451535975,
			"length" : 31536000
		},
		{
			"amount" : 10,
			"start" : 1451535975,
			"length" : 0
		}
	],
	"metadata" : "{\"sub_tx_type\":\"10100\"}"
}

参数说明

参数说明
current_string随机字符串,不长于32位
signTX签名,见签名算法,涉及到验签参数有current_string、trade_no、asset_code、asset_amount、from_bubi_address和to_bubi_address
password资产转出方的账户密码
trade_no接口调用请求号,在开发者系统里生成
规则:仅包含字母数字,长度不能长于55个字符
asset_code资产ID
转出方给转入方转让的资产标识(全网唯一)
asset_amount资产转移数量
参数不带小数点
from_bubi_address资产转出方区块链地址
to_bubi_address资产转入方区块链地址
details资产明细列表(可选),若填写资产明细里的资产数量总和必须等于资产转移数量,即公式 details.amount[0] +details.amount[2] = asset_amount
details.amount资产数量
details.start资产有效期起始时间
用linux时间戳,精确到秒
details.length资产有效期
示例:-1 未初始化,0 有效期为永久 ,大于0 有效期单位为秒
metadata
    sub_tx_typeTX类型:购物 10100 理财 10200 转账 10300 兑换 10400 还款 10500 缴费 10600 提现 10700 退款 10800

服务器响应

成功:
{
	"data": {
		"trade_no": "2015121822911"
	},
	"err_code": "0",
	"msg": "资产正在转移"
}

失败:
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}

获取账户信息

开发者可以通过本接口来获取开发者的用户的账户信息。

接口请求说明

http请求方式:get

https://api.bubidev.cn/account/v1/info?bubi_address=bubiV8hyiVJUfp778o5h9MzAKPoLiGpgQ3FoMUDj&access_token=ACCESS_TOKEN

参数说明

参数说明
access_token调用接口凭证
bubi_address用户唯一bubi_address

服务器响应

成功:
{
	"data": {
		"assets": [{
			"amount": 23,
			"code": "7R3DPR6j5Xe3WviYGZhbTAugvqW5f6UyBULkTG8af",
			"details": [{
				"amount": 23,
				"ext": "",
				"length": -1,
				"start": 1452941880
			}]
		},
		{
			"amount": 10,
			"code": "7R3DPR6j5Xe3WviYGZhbTAugvqW5f6UyBULkTG8afZTVogb",
			"details": [{
				"amount": 10,
				"ext": "",
				"length": -1,
				"start": 1452941880
			}]
		}],
		"bubi_address": "bubiV8hyiVJUfp778o5h9MzAKPoLiGpgQ3FoMUDj",
		"last_close_time":1453531750
	},
	"err_code": "0",
	"msg": "操作成功"
}
失败:
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}

服务器响应主要参数说明

参数说明
data
  | assets账户所拥有的资产列表
     | code资产ID
     | amount资产余额(该账户当前拥有的资产余额)
     | details资产明细列表(可选)
若填写资产明细里的资产数量总和必须等于发行资产数量,即公式 details.amount[0] +details.amount[2] +... = asset_amount

注:资产有有效期属性时,请关注,非有效期属性的请忽略
          | amount资产数量
          | start资产有效期起始时间
注linux时间戳
          | length资产有效期
(-1 未初始化,0 有效期为永久 ,大于0 有效期单位为秒 )
          | ext资产描述(可选)

获取TX信息

开发者可以通过本接口来获取开发者的用户的TX信息。

接口请求说明

http请求方式:get

https://api.bubidev.cn/account/v1/transaction?bubi_address=bubiV8hwmNvQ7M4VsQ7FMNM1WGiQv7RTA4GDzQbt&access_token=ACCESS_TOKEN

参数说明

参数说明
access_token调用接口凭证
bubi_address用户唯一bubi_address
start从第几页开始
limit每页多少条,最大支持1000

服务器响应

成功:
{
	"data": {
		"transactions": [{
			"operations": [{
				"asset_amount": 100,
				"asset_code": "7R3DPR6j5XdGghEbK8d8vScvw4MHjfKb4rGHVUFwf3h3SVD2iYVyfmzYLEDhYboogkoCytqHAJkhNowEzL4RcE55mGnavseecq4C",
				"asset_issuer": "bubiV8hwmNvQ7M4VsQ7FMNM1WGiQv7RTA4GDzQbt",
				"asset_type": 1,
				"type": 2
			}],
			"source_address": "bubiV8hwmNvQ7M4VsQ7FMNM1WGiQv7RTA4GDzQbt"
		},
		{
			"operations": [{
				"asset_amount": 21300,
				"asset_code": "7R3DPR6j5XdGghEbK8d8vScvw4MHjfKb4rGHVUFwf3h3SVD2iYVyfmzYHGPbCapD8CHWG34mi9DGbBM5eb6MGd63EhYoAdp1bS25",
				"asset_issuer": "bubiV8hwmNvQ7M4VsQ7FMNM1WGiQv7RTA4GDzQbt",
				"asset_type": 1,
				"type": 2
			}],
			"source_address": "bubiV8hwmNvQ7M4VsQ7FMNM1WGiQv7RTA4GDzQbt"
		}]
	},
	"err_code": "0",
	"msg": "操作成功"
}

服务器响应主要参数说明

参数说明
data
  | transactionsTX列表
    | operations操作列表
      | asset_code资产ID
      | asset_amount资产流通的数量
      | asset_issuer资产发行方(资方)区块链地址
      | asset_type资产类型:1 数字资产
      | type操作类型:0 创建用户 1 资产转移(资产流通) 2 发行资产
      | dest_address目标区块链账户地址
如:操作类型是创建账户时,该字段表示待创建的账户地址。
操作类型是资产转移(资产流通)时,该字段表示资产接收方区块链账户地址
    | source_address发起操作人地址
注:该字段根据具体业务创建出现

通过TX请求号(trade_no)查询TX信息

开发者可以通过本接口来获取开发者调用资产转移时的TX结果信息

注意:该接口只返回成功的TX信息

接口请求说明

http请求方式:get

https://api.bubidev.cn/tx/v1/tradeNo/{trade_no}?access_token=ACCESS_TOKEN

参数说明

参数说明
access_token调用接口凭证
trade_noTX hash

服务器响应

成功:
{
	"data": {
	"trade_no":"1000010",
		"transactions": [{
			"tran_date": "1487127013651499",
			"hash": "0791b0b660aa0d8630a48338a3f7c63859ab04b4b6c22c85a1521b56ea0fc1b3",
			"metadata": "",
			"form_bubi_address": "bubiV8i8gKL1Pd4YYuaKFNF2kCP1jJPAGmkfwSLV",
			"asset_code": "7R3DPR6j5XdGghEbK8d8vScvw4MHjfKb4rGHVUFwf3h3SVD2iYVyfmzYHGPbCapD8CHWG34mi9DGbBM5eb6MGd63EhYoAdp1bS25",
			"asset_name":"花牛贝",
			"asset_amount":"100",
			"to_bubi_address": "bubiV8iDFKXaNDVwVNH1LaUT74GtntdbPm9h1S44"
		]},
	"err_code": "0",
	"msg": "操作成功"
}

服务器响应主要参数说明

参数说明
data
  | trade_noTX请求号
  | transactionsTX数据集合
    | tran_dateTX时间
返回Linux时间戳,精确到毫秒
    | hashTX摘要
    | form_bubi_addressTX发起方区块链地址
    | asset_code资产编码
    | asset_name资产名称
    | asset_amountTX的资产数量
    | to_bubi_addressTX接收方区块链地址

通过TX hash获取TX信息

开发者可以通过本接口来获取开发者的用户的TX信息。

接口请求说明

http请求方式:get

https://api.bubidev.cn/tx/v1/{hash}?access_token=ACCESS_TOKEN

参数说明

参数说明
access_token调用接口凭证
hashTX hash

服务器响应

成功:
{
	"data": {
		"transactions": [{
			"apply_time": "1487127013651499",
			"hash": "0791b0b660aa0d8630a48338a3f7c63859ab04b4b6c22c85a1521b56ea0fc1b3",
			"metadata": "",
			"operations": [{
				"asset_amount": "1000000",
				"asset_code": "2UX4xvQ4aXP7vCXACafxEF928LKNb8EihUr7syECp4yCruQnt2PukCB3CtrvLMwTRAemiPnW9XnAHogzE8M6SxK1gb5rftfb5vGduGYBULSxDF3ecJFYjRYTxFdsLfS7jmaAJTectLt9WgGg",
				"metadata": "0",
				"source_address": "bubiV8i8gKL1Pd4YYuaKFNF2kCP1jJPAGmkfwSLV",
				"type": 2
			}],
			"signatures": [{
				"address": "bubiV8i8gKL1Pd4YYuaKFNF2kCP1jJPAGmkfwSLV",
				"public_key": "CTFESHZJyQfAFKahEwgQXuBJq7pbdPzbzZdQsFG6H2UM",
				"sign_data": "5fae6cc3d6191e175e76243c3532593cdb6b20ec637c283ba5ec8fb20264c6ca7ae5b46fa02c9b6f345601fe3b46095da9888b26344cd4991ff33bad4170870e"
			},
			{
				"address": "bubiV8iEGXpLEtfcBUpwDNeUu6ZjGA5yX8KtivT3",
				"public_key": "EBfariVD7AbLNFqAwkEbq8tD5y3Mdn7PXRMDGkDHQJg7",
				"sign_data": "f9a64fa149a26731661adf81ab891114a7057fc0785f3dc01e3b220891cc3358a286bcc00c2cc2a8b1b75550f0b4e4b83236e09279d610c8a70d33b00fb9f50a"
			}],
			"source_address": "bubiV8iEGXpLEtfcBUpwDNeUu6ZjGA5yX8KtivT3"
		}]
	},
	"err_code": "0",
	"msg": "操作成功"
}

服务器响应主要参数说明

参数说明
data.transactions.operations操作列表,内容见   操作示例
data.transactions.operations.type操作类型:0 创建用户 1 资产转移 2 发行资产
data.transactions.source_address资产流动源地址

布萌通知接口

当开发者调用布萌提供的资产发行、资产转移异步接口后,不管最终成功或失败,布萌都会向开发者发出通知,告知执行结果。

开发者收到通知后,请以通知类型(notice_type)区分各自业务逻辑的处理。

无论接收到的结果如何,只要开发者收到该请求,请返回ok字符串(不含其它字符,如双引号),否则布萌将进行重复通知,直到开发者收到或者重复5次。

接口请求说明

http请求方式:get

数据示例:

异步资产发行:

asset_amount=10000&asset_code=7R3DPR6j5YyxrcXa7QsUJckNDeMyR26MtZVnbN6d4kCkfNejKczfT4j8adeJThRLcbBxPbGVuY5RNKqWSBcUFATW7smWuZzRfDUn&asset_issuer=bubiV8iAvbAN319uVJPm2qrxdJNgXSdFSiyQoQ4Y&current_string=MqUq6TASQju57VcH&err_code=0&msg=成功&notify_type=0&bc_hash=c44c595ce0a77d6a1f22a942ac397cc1cdc1edd654be56286a66af8364713b7d&issue_date=1458888418607&sign=b7086ab0a42a33de6093c545cfbb4aa0&trade_no=201601141221

异步资产转移:

current_string=MqUq6TASQju57VcH&err_code=0&msg=成功&notify_type=1&bc_hash=c44c595ce0a77d6a1f22a942ac397cc1cdc1edd654be56286a66af8364713b7d&tran_date=1458888418607&sign=0adc527707990c71e5faf09b60f38dcf&trade_no=201601141223

异步资产追加发行:

current_string=MqUq6TASQju57VcH&err_code=0&msg=成功&notify_type=3&bc_hash=c44c595ce0a77d6a1f22a942ac397cc1cdc1edd654be56286a66af8364713b7d&issue_date=1458888418607&sign=3552349bc445db3a9ed55bc1ae5c3eaf&trade_no=201601141225

部分参数说明

参数说明
notify_type通知类型,0 资产发行 1 资产转移 3 资产追加发行 4 资产兑换 5 资产承兑
err_code0 成功 非零具体见错误码
sign签名,见签名算法
注:全部字段进行签名
msg通知消息
bc_hash区块链hash

响应参数

开发者服务器端收到通知并处理完成后,请返回纯文本的 ok 字符串,两边不带空格,忽略大小写,布萌在验证到响应为 ok 后会标记通知成功。

如果响应为非 ok 字符串,布萌会最多重试 5 次通知。 通知时间间隔为:15秒,30秒,1分钟,2分钟

查询账户注册状态

布萌提供账户注册状态查询功能,以便开发者在不确定账户注册执行状态的情况下,通过主动查询来确认账户注册的状态。

接口请求说明

http请求方式:get

https://api.bubidev.cn/status/account/v1/register?trade_no=1000009820141203515766&access_token=ACCESS_TOKEN

参数说明

参数说明
access_token调用接口凭证
trade_no请求号:开发者需要保证其唯一

服务器响应

json格式如下:
{
	"err_code":"0",
	"msg":"成功",
	"data":{
		"bubi_address":"bubiV8hwYmkBgcQjeEqus685iZeACmHm6R9GBBVo"
	}
}
或:
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}
或:
{
	"err_code":"20009",
	"msg":"处理中"
}

查询资产发行状态

布萌提供资产发行状态查询功能,以便开发者在不确定资产发行执行状态的情况下,通过主动查询来确认资产发行的状态。

接口请求说明

http请求方式:get

https://api.bubidev.cn/status/asset/v1/issue?trade_no=1000009820141203515766&access_token=ACCESS_TOKEN

参数说明

参数说明
access_token调用接口凭证
trade_no请求号:开发者需要保证其唯一

服务器响应

json格式如下:
{
	"err_code":"0",
	"msg":"资产发行成功",
	"data":{
		"asset_name":"布萌股权第一期",
		"asset_issuer":"bubiV8iAvbAN319uVJPm2qrxdJNgXSdFSiyQoQ4Y",
"asset_code":"7R3DPR6j5YyxrcXa7QsUJckNDeMyR26MtZVnbN6d4kCkfNejKczfT4j8adeJThRLcbBxPbGVuY5RNKqWSBcUFATW7smWuZzRfDUn",
		"asset_unit":"股",
		"asset_amount":10000,,
		"issue_date": "1458888418607",
		"bc_hash":"c44c595ce0a77d6a1f22a942ac397cc1cdc1edd654be56286a66af8364713b7d"
	}
}
或
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}
或
{
	"err_code":"20009",
	"msg":"处理中"
}

查询资产转移状态

布萌提供资产转移状态查询功能,以便开发者在不确定资产转移执行状态的情况下,通过主动查询来确认资产转移的状态。

接口请求说明

http请求方式:get

https://api.bubidev.cn/status/asset/v1/send?trade_no=1000009820141203515766&access_token=ACCESS_TOKEN

参数说明

参数说明
access_token调用接口凭证
trade_no请求号:开发者需要保证其唯一

服务器响应

json格式如下:
{
	"err_code":"0",
	"msg":"资产转移成功",
	"data":{
		"trade_no":"1000009820141203515766",
		"tran_date": "1458888418607",
		"bc_hash":"c44c595ce0a77d6a1f22a942ac397cc1cdc1edd654be56286a66af8364713b7d"
	}
}
或
{
	"err_code":"20000",
	"msg":"AccessToken 已过期"
}
或
{
	"err_code":"20009",
	"msg":"处理中"
}

资产类型规范

资产类型名资产类型码
商业积分10100
保险卡单10200
网络互助10300
慈善公益10400
P2P理财10500
数字黄金10600
游戏道具10700
其他10800
卡券10900

资产单位规范

资产单位名资产单位码
1
2
3
4
积分5
6
7
8
9
10
11
12
千克13
14
毫克15
其他16

错误码

错误码说明
10000操作失败,请稍后重试
10001参数校验失败
20000AccessToken 已过期
20001开发者回调uri地址为空
20002开发者ID授权存在异常
20003开发者ID 不存在
20004请求参数非法
20005参数格式非法
20006解析参数出现异常
20007签名不能为空
20008应用不存在或已下架
20009处理中
20010AppId不存在或已删除
20011应用未授权
20012应用权限被锁定
20013AppKey不存在或已删除
20014appID和appKey不匹配
20015授权码不存在或已过期
20016请求参数非法,资产发行请求号不能为空
20017操作异常,原因可能是重复提交
20018授权码长度必须是%d
20019区块链ID长度必须是%d
20020回调地址长度不能大于%d
20021请求号长度不能大于%d
20023区块链地址不能为空
20024无效的区块链地址
20025无效的用户名
20026非法操作
20027区块链账户与密码不匹配
20028批量创建账户数量过多
20029票据发行者或票据托管者为空
20030操作失败
20031账户不存在或账户未激活
20032承兑方服务维护中
2006签名失败,可能原因是非法操作合同
21100请输入用户名
21101请输入区块链账户密码
21102用户名不存在
21103用户名与密码不匹配
21104用户名长度不能大于%d
21105密码长度不能大于%d
21106账号请求号已存在
21107账号请求号为空
21108支付密码长度必须是%d
21109账号请求号不存在
21110写入区块链失败
21111修改密码失败
21112联合签名者至少填写一个
21200资产发行请求号不能为空
21201发行方区块链ID不能为空
21202资产名称不能为空
21203资产单位不能为空
21204资产发行数量不能为空
21205资产发行数量必须是整数
21206资产发行方区块链ID不存在
21207资产发行请求号已被使用
21208资产请求号长度不能大于%d
21209资产发行方区块链ID长度必须是%d
21210资产名称长度不能大于%d
21211资产单位长度不能大于%d
21212资产数量长度不能大于%d
21213资产数量不能大于%d
21214资产代码长度必须是%d
21215资产代码格式错误
21216资产请求号不存在
21217资产转移失败
21222资产编号不存在
21300随机字符串不能为空
21301随机字符串长度不能大于%d
21302资产描述或TX摘要不能不长于%d
21303资产请求号不能为空
21304资产名称不能为空
21305资产单位不能为空
21306资产代码不能为空
21307资产转移数量不能为空
21308资产转出方区块链ID不能为空
21309资产转入方区块链ID不能为空
21310资产转移签名验证失败
21311资产转出方不存在
21312资产转出方账户出现异常
21313资产转入方不存在
21314资产转入方账户出现异常
21315待转移资产不存在
21316待资产转移数量必须是整数
21317资产转出方区块链ID长度必须是%d
21318资产转入方区块链ID长度必须是%d
21319签名长度必须是%d
21320资产转移请求号已存在
21321资产转移请求号不存在
21322转出方未写入区块链
21323资产转移失败
21400请输入用户名
21401请设置账户密码
21402请设置支付密码
21403用户名已存在
21404开发者ID存在异常
21405用户名长度最少1个字符,最多25个字符
21406账户密码长度最少8个字符,最多45个字符
21407账户密码只能由数字+字母组成(存在其他字符)
21408账户密码需由数字+字母组成(全数字或全字母)
21409支付密码长度只能是6位
21500请输入账户支付密码
21501支付密码错误
21502发行资产数量不能大于%d
21600获取账户信息区块链ID不能为空
21601账户信息不存在
21700资产发行请求号不能为空
21701资产发行方账户密码不能为空
21702资产发行方不能为空
21703资产名称不能为空
21704资产单位不能为空
21705资产待发行数量必须是正整数
21707资产发行者区块链ID不存在
21708发行者账户密码验证失败,账户及密码不匹配
21709此接口只针对安全级别低的账户开放
21710此接口只针对安全级别高的账户开放
21800资产转移签名所需随机字符串不能为空
21801资产转移签名所需随机字符串长度不能大于%d
21802资产转出方账户密码不能为空
21803资产描述或摘要长度不能大于%d
21804资产转移请求号不能为空
21805待转移资产名称不能为空
21806待转移资产单位不能为空
21807待转移资产代码不能为空
21808待转移资产数量不能为空
21809待转移资产数量必须是正整数
21810待资产转出方区块链ID不能为空
21811待资产转入方区块链ID不能为空
21812待转移资产sign不能为空
21813开发者ID出现异常
21814签名错误
21815资产转出方账户出现异常
21816转出方必须通过手动输入支付密码进行确认资产转移
21817资产转出方账户与密码不匹配
21818资产转入方账户不存在
21819资产转入方账户出现异常
21820待转移资产不存在
21821资产数量不足

签名算法

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

资产转移示例:

资产转移传送的参数如下:

current_stringMqUq6TASQju57VcH
trade_no2015121822911
asset_codea811d986d4a60535bbee2af87d3b9772
asset_amount10000
from_bubi_addressbubiV8hyQKo56DSqJmXVQXHXmtbTNQWRnAy4ZwSZ
to_bubi_addressbubiV8hxkfB53Q4aSJmDLyKguiP6mG5NrPQhTxF7
  • 第一步,对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:

    stringA=”asset_amount=10000&asset_code=a811d986d4a60535bbee2af87d3b9772&current_string=MqUq6TASQju57VcH&from_bubi_address=bubiV8hyQKo56DSqJmXVQXHXmtbTNQWRnAy4ZwSZ&to_bubi_address=bubiV8hxkfB53Q4aSJmDLyKguiP6mG5NrPQhTxF7&trade_no=2015121822911”;

  • 第二步,拼接appKey

    tempSignStr = “stringA&key=73869d83e9b3fac6ec3b37c3b2ec5f15”

    sign = MD5(tempSignStr ).toLowerCase();

  • 最终得到的数据是:

    asset_amount=10000&asset_code=a811d986d4a60535bbee2af87d3b9772&current_string=MqUq6TASQju57VcH&from_bubi_address=bubiV8hyQKo56DSqJmXVQXHXmtbTNQWRnAy4ZwSZ&to_bubi_address=bubiV8hxkfB53Q4aSJmDLyKguiP6mG5NrPQhTxF7&trade_no=2015121822911&sign=b311e7bff72a4314828ccd514471cb03

操作示例

字段说明
TX类型为 创建账号 的操作对象
└ dest_address创建的账户地址
└ metadata操作扩展字段
└ type操作类型:0 创建账号
TX类型为 资产转移 的操作对象
└ asset_amount资产转移的数量
└ asset_code转移的资产编码
└ asset_issuer转移的发行人地址
└ asset_type资产类型:1 普通资产
└ dest_address资产转移的目标地址
└ details资产明细(资产没有有效期的概念时,请忽略。系统默认生成)
   └ amount资产数量(针对有效期)
   └ ext资产描述(针对有效期)
   └ length资产设置有效期的时间范畴,单位:秒(针对有效期)
   └ start资产设置有效期的开始时间,Linux时间戳(针对有效期)
└ metadata操作扩展字段
└ source_address资产转出方的地址
└ type操作类型:1 资产转移
TX类型为 资产发行 的操作对象
└ asset_amount资产发行的数量
└ asset_code发行的资产编码
└ asset_issuer发行人地址
└ asset_type资产类型:1 普通资产
└ details资产明细(资产没有有效期的概念时,请忽略。系统默认生成)
   └ amount资产数量(针对有效期)
   └ ext资产描述(针对有效期)
   └ length资产设置有效期的时间范畴,单位:秒(针对有效期)
   └ start资产设置有效期的开始时间,Linux时间戳(针对有效期)
└ metadata操作扩展字段
└ source_address资产发行方的地址
└ type操作类型:2 资产发行