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 - 获取矿池信息

receive - 生成收款地址

使用receive调用生成一个新的收款地址。

API调用

GET v2/receive

查询参数:

  • xpub:用于生成地址的扩展公钥
  • callback_url:收到支付时的回调URL,注意要先将该URL进行url编码处理
  • key:blockchain.info的v2支付api密钥,点击这里申请密钥:https://api.blockchain.info/v2/apikey/request/
  • gap_limit:地址序号间隔上限,即在出错前允许多少个未用地址。可选

API返回值

返回新生成的收款地址信息,包含如下字段:

  • address:新生成的收款地址
  • index:地址对应的序号
  • callback:到款通知回调URL

示例代码

使用curl调用receive的示例代码如下:

curl "https://api.blockchain.info/v2/receive?xpub=xpub6CWiJoiwxPQni3DFbrQNHWq8kwrL2J1HuBN7zm4xKPCZRmEshc7Dojz4zMah7E4o2GEEbD6HgfG7sQid186Fw9x9akMNKw2mu1PjqacTJB2&callback=https%3A%2F%2Fmystore.com%3Finvoice_id%3D058921123&key=[yourkeyhere]"

返回值:

{
  "address":"19jJyiC6DnKyKvPg38eBE8R6yCSXLLEjqw",
  "index":23,
  "callback":"https://mystore.com?invoice_id=058921123"
}

使用receive调用的PHP示例代码如下:

<?php

$secret = 'ZzsMLGKe162CfA5EcG6j';

$my_xpub = '{YOUR XPUB ADDRESS}';
$my_api_key = '{YOUR API KEY}';

$my_callback_url = 'https://mystore.com?invoice_id=058921123&secret='.$secret;

$root_url = 'https://api.blockchain.info/v2/receive';

$parameters = 'xpub=' .$my_xpub. '&callback=' .urlencode($my_callback_url). '&key=' .$my_api_key;

$response = file_get_contents($root_url . '?' . $parameters);

$object = json_decode($response);

echo 'Send Payment To : ' . $object->address;