Blockchain API手册

支付处理API
支付处理API概述 receive - 生成收款地址 receive/balance_update - 监听指定地址的交易 receive/block_notification - 监听新区块通知 receive/checkgap - 检查地址间隔 receive/callback_log - 调试未完成支付
区块链钱包API
区块链钱包API概述 create - 创建钱包 merchant/*/payment - 向单一地址支付 merchant/*/sendmany - 向多个地址支付 merchant/*/balance - 读取钱包余额 merchant/*/list - 列出钱包中的活动地址 merchant/*/address_balance - 获取指定地址的余额 merchant/*/new_address - 生成一个新地址 merchant/*/archive_address - 归档指定的地址 merchant/*/unarchive_address - 解除指定地址的归档
区块链数据API
区块链数据API概述 rawblock - 获取指定区块的数据 rawtx - 获取指定交易的数据 charts - 获取指定图表的数据 block-height - 获取指定高度的区块数据 rawaddr - 获取指定地址的相关数据 multiaddr - 获取多个地址的相关信息 unspent - 获取指定地址的未消费输出 balance - 获取指定地址的比特币余额 latestblock - 获取最新区块信息 unconfirmed-transactions - 获取未确认的交易清单 blocks - 获取指定条件的区块清单
简明查询API
简明查询API概述 q/getdifficulty - 获取当前难度目标 q/getblockcount - 获取最长链当前区块高度 q/latesthash - 获取最新区块的哈希 q/bcperblock - 获取当前区块的奖励额度 q/totalbc - 获取流通中的比特币总量 q/probability - 获取单次哈希尝试成功出块的概率 q/hashestowin - 获取成功出块的平均哈希尝试次数 q/nextretarget - 下次重设难度目标的区块高度 q/avgtxsize - 获取平均交易大小 q/avgtxvalue - 获取平均交易金额 q/interval - 获取平均出块间隔 q/eta - 下次出块时间预估 q/avgtxnumber - 获取区块平均交易数量 q/getreceivedbyaddress - 获取指定地址收到的比特币数量 q/getsentbyaddress - 获取指定地址发送的比特币数量 q/addressbalance - 获取指定地址的比特币余额 q/addressfirstseen - 获取指定地址首次出现时间戳 q/txtotalbtcoutput - 获取指定交易的输出总金额 q/txtotalbtcinput - 获取指定交易的输入总金额 q/txfee - 获取指定交易的手续费 q/txresult - 计算指定地址的交易执行结果 q/addresstohash - 将比特币地址转换为160哈希 q/hashtoaddress - 将160哈希转换为比特币地址 q/hashpubkey - 将公钥转换为哈希160 q/addrpubkey - 将公钥转换为地址 q/pubkeyaddr - 将地址转换为公钥 q/unconfirmedcount - 获取待定交易数量 q/24hrprice - 获取比特币24小时加权价格 q/marketcap - 获取市场总规模 q/24hrtransactioncount - 获取过去24小时的交易总数 q/24hrbtcsent - 获取过去24小时发送的比特币总量 q/hashrate - 获取网络哈希速率估算值 q/rejected - 获取指定交易被拒的原因
WebSocket实时通知API
WebSocket实时通知API概述 ping - 连通测试 unconfirmed_sub - 订阅未确认交易通知 unconfirmed_unsub - 取消订阅未确认交易通知 addr_sub - 订阅指定地址的新交易通知 addr_unsub - 取消订阅指定地址的新交易通知 block_sub - 订阅新区块通知 block_unsub - 取消订阅新区块通知 ping_block - 附带区块信息的连通测试 ping_tx - 附带交易信息的连通测试
市场行情数据API
市场行情数据API概述 ticker - 获取币种代码表 tobtc - 汇率换算
统计图表API
统计图表API概述 charts - 获取图表数据 stats - 获取统计数据 pools - 获取矿池信息

merchant/*/sendmany - 向多个地址支付

使用merchant/$guid/sendmany调用从钱包向多个外部地址支付。

API调用

GET merchant/$guid/sendmany

URI参数:

  • $guid:要使用的钱包的唯一标识符

查询参数:

  • password:钱包的密码
  • second_password:钱包的第二密码,如果启动双重加密的话
  • recipients:收款信息对象,键为收款地址,值为发送金额
  • from:指定发送地址,可选
  • fee:手续费,可选,单位:satoshi

API返回值

返回支付处理信息,主要字段如下:

  • message:支付处理信息
  • tx_hash:支付交易哈希

示例代码

使用curl调用merchant/$guid/sendmany的示例代码如下:

curl http://localhost:3000/merchant/$guid/sendmany?password=1234567890&recipients=%7B%221JzSZFs2DQke2B3S4pBxaNaMzzVZaG4Cqh%22:%20100000000,%2212Cf6nCcRtKERh9cQm3Z29c9MWvQuFSxvT%22:%201500000000,%221dice6YgEVBf88erBFra9BHf6ZMoyvG88%22:%20200000000%7D

上面的recipients查询参数的值,是如下对象经过url编码后的值:

{
    "1JzSZFs2DQke2B3S4pBxaNaMzzVZaG4Cqh": 100000000,
    "12Cf6nCcRtKERh9cQm3Z29c9MWvQuFSxvT": 1500000000,
    "1dice6YgEVBf88erBFra9BHf6ZMoyvG88": 200000000
}

上述调用的返回值如下:

{ 
  "message" : "Sent To Multiple Recipients" , 
  "tx_hash" : "f322d01ad784e5deeb25464a5781c3b20971c1863679ca506e702e3e33c18e9c" 
}

PHP示例代码如下:

<?

$guid="GUID_HERE";
$firstpassword="PASSWORD_HERE";
$secondpassword="PASSWORD_HERE";
$amounta = "10000000";
$amountb = "400000";
$addressa = "1A8JiWcwvpY7tAopUkSnGuEYHmzGYfZPiq";
$addressb = "1ExD2je6UNxL5oSu6iPUhn9Ta7UrN8bjBy";
$recipients = urlencode('{
                  "'.$addressa.'": '.$amounta.',
                  "'.$addressb.'": '.$amountb.'
               }');

$json_url = "http://localhost:3000/merchant/$guid/sendmany?password=$firstpassword&second_password=$secondpassword&recipients=$recipients";

$json_data = file_get_contents($json_url);

$json_feed = json_decode($json_data);

$message = $json_feed->message;
$txid = $json_feed->tx_hash;