wangta69 / btc-payment
基于bitcoind的btc支付系统
1.0.0
2019-04-24 07:17 UTC
Requires
- php: >=5.6.0
This package is auto-updated.
Last update: 2024-09-04 21:23:48 UTC
README
先决条件
Laravel版本 >= 5.5
通过composer安装包
composer require wangta69/btc-payment
$btc = app("Pondol\BtcPayment\Bitcoind");
protected $btc;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct(Bitcoind $btc)
{
$this->btc = $btc;
$this->btc->getaccountaddress("");
}
或者
public function getaccountaddress() {
$btc = app("Pondol\BtcPayment\Bitcoind");
return $btc->getaccountaddress("37");
}
检查支付和确认
包包含类Pondol\BtcPayment\Commands\CheckPayment。这是一个Laravel命令,您可以通过php artisan调用它。
php artisan bitcoin:checkpayment
每次调用它时,它都会在区块链上扫描支付和确认。您可以根据上面的说明手动调用它进行测试,但这没有太多意义,因为它的工作是检查支付,并且它需要始终运行。
您需要在Linux服务器上创建crontab条目或在Win服务器上创建任务计划程序,以每分钟调用此命令。
// Example for linux
crontab -e
// add this line to cron tab and replace path
* * * * * cd /path/to/your/project/ php artisan bitcoin:checkpayment >/dev/null 2>&1
此脚本还会触发我们可以监听的事件...
监听支付
当您发布包时,您会在app\Listeners文件夹中找到新的类(请参阅安装部分)。这是
ConfirmedPaymentListener.php
要激活这些监听器,将此代码复制到app\Providers\EventServiceProvider.php类中(此类是Laravel默认安装的一部分),在类的$listen属性中。
如下所示
protected $listen = [
'App\Events\Event' => [
'App\Listeners\EventListener',
],
'Pondol\BtcPayment\Events\ConfirmedPaymentEvent' => [
'App\Listeners\ConfirmedPaymentListener',
],
];
在这些类的每个类中都有一个handle方法,您可以在其中放置当事件触发时需要执行的操作的逻辑(DB插入-更新,发送邮件...)。
以下是一个ConfimedPaymentListener的示例,当确认次数等于.env文件中的BITCOIND_MIN_CONFIRMATIONS时,事件被生成,我们可以确信支付是成功的。
public function handle(ConfirmedPaymentEvent $event)
{
Log::debug('Confirmed Payment listener: '. $event->confirmedPayment);
// Here you add your code for sending mails, db update ...
}
事件
- Pondol\BtcPayment\Events\ConfirmedPaymentEvent - 已支付,且确认次数等于或大于.env文件中BITCOIND_MIN_CONFIRMATIONS的值。
模型
Pondol\BtcPayment\Models\Payment - 表示已确认和未确认的支付(请参阅使用部分)
许可
MIT许可