当我们希望在Php开发的网站中加入比特币支付功能时,需要解决的第一个 问题,就是如何在Php程序代码中调用比特币钱包的RPC API开发接口来实现 我们期望的功能,例如比特币的支付与接收。
例如,当我们希望在Php代码中给某个比特币地址发送以太币时,可以使用 sendtoaddress 这个RPC接口,可以传入以下参数:
- ToAddress:接收地址
- Amount:发送的比特币数量
- Comment:备注文本
- CommentTo:备注接收人
- AutoFeeSubtract:是否自动扣除手续费,默认值:false
上面的参数中,只有ToAddress
和Amount
是必须的。当调用完成时, 将返回该笔交易对应的ID。
下面的代码使用GuzzleHttp
来调用sendtoaddress
接口向指定的地址发送 0.12个比特币:
<?php
require('../vendor/autoload.php');
use GuzzleHttpClient;
$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代码中非常轻松 地加入对比特币支付的支持。