主页 > imtoken下载app钱包 > 网站集成比特币支付接口,实现比特币支付区块链api的应用

网站集成比特币支付接口,实现比特币支付区块链api的应用

imtoken下载app钱包 2023-01-18 17:03:10

比特币正变得越来越流行。对于需要集成到网站支付接口的,我们提供了一个区块链支付API开发思路,主要翻译自区块链API文档

首先,您需要注册区块链。注册区块链后,需要在后台生成一个比特币支付地址。这个以后有用

接下来说一下基本的操作流程

一、你需要知道当前人民币和比特币的汇率,然后换算汇率

通过GET接口

得到类似的返回数据

{

“美元”:{

“15m”:123.99,

15年比特币网站

“最后一个”:123.99,

“买”:123.99,

“卖出”:12415年比特币网站

“符号”:“$”

},

“人民币”:{

“15m”:812.64193,

“最后”:812.64193,

15年比特币网站

“购买”:820,

“卖出”:835.20552,

“24 小时”:837.76,

“符号”:“¥”

},

...

}

其中,CNY是人民币。它提供了 15 分钟和 24 小时的平均值,可以换算成相对稳定的价格。

15年比特币网站

二、生成交易地址并设置回调通知

GET 接口 $xpub&callback=$callback_url&key=$key&gap_limit=$gap_limit

xpub - 你的xpub扩展公钥,在比特币钱包设置中的Wallets & Addresses下,点击右侧管理进入,生成你的钱包地址后,可以从上面xPub查询的更多选项中显示到

callback_url - 回调地址,URL需要编码

key - 你的区块链API密钥,申请地址:申请开通API接口,一般2-3个工作日开通

gap_limit - 可选。在出错之前允许有多少未使用的地址。

代码案例,直接CURL:

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

15年比特币网站

返回数据:

响应:200 OK,应用程序/json

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

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;

处理回调通知

用户支付完成后,区块链会访问之前设置的callback_url,并通过GET方法传入一系列参数15年比特币网站,如下:

value 用户支付的金额,以聪为单位。

15年比特币网站

input_address是用于接受用户付款的转账钱包地址

confirmations 交易的确认次数

{自定义参数}原来在callback_url中指定的参数还是会传回来的。但请注意,由于 GET 方式的限制,所有参数(包括区块链添加的参数)的总长度不得超过 255 个字符。

transaction_hash 交易哈希

input_transaction_hash 转账发生前完成用户支付的交易的哈希值

destination_address 用于接受付款的您自己的钱包地址

收到通知后,您应该向区块链返回以下字符:*ok*(包括前导星号和尾随星号)。这个约定一定要严格遵守,否则区块链服务器会在每一个新的区块重试一次(大约每10分钟一次),重试次数可以达到一千次(一周),你的域名很可能因此被上架列入黑名单。

回调处理参考代码

PHP:

prepare("replace INTO invoice_payments (invoice_id, transaction_hash, value) values(?, ?, ?)");
$stmt->bind_param("isd", $invoice_id, $transaction_hash, $value_in_btc);
if($stmt->execute()) {
   echo "*ok*";
}