PHP如何调用比特币钱包的RPC

当我们希望在Php开发的网站中加入比特币支付功能时,需要解决的第一个 问题,就是如何在Php程序代码中调用比特币钱包的RPC API开发接口来实现 我们期望的功能,例如比特币的支付与接收。

例如,当我们希望在Php代码中给某个比特币地址发送以太币时,可以使用 sendtoaddress 这个RPC接口,可以传入以下参数:

  • ToAddress:接收地址
  • Amount:发送的比特币数量
  • Comment:备注文本
  • CommentTo:备注接收人
  • AutoFeeSubtract:是否自动扣除手续费,默认值:false

上面的参数中,只有ToAddressAmount是必须的。当调用完成时, 将返回该笔交易对应的ID。

下面的代码使用GuzzleHttp来调用sendtoaddress接口向指定的地址发送 0.12个比特币:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
require('../vendor/autoload.php');

use GuzzleHttp\Client;

$client = new Client();

$opts = [
'json' => [
'jsonrpc' => '1.0',
'method' => 'sendtoaddress',
'params' => ['1LeiqzD6jCwPcdNNAPiT8ayKgdHJMP2EpZ',0.12],
'id' => time()
]
];

$rsp = $client->post('http://user:pass@localhost:8332',$opts);
echo $rsp->getBody() . PHP_EOL;

上面的代码假设你的比特币钱包在本机的8332端口监听RPC调用请求,这也是 比特币钱包默认的监听端口。

比特币钱包提供了非常丰富的RPC接口,我们可以在Php代码中非常轻松 地加入对比特币支付的支持。如果你希望快速掌握在自己的Php网站集成对 比特币的支持,可以访问我们提供的在线互动教程: Php比特币开发详解