dizda/bitdepot-client-bundle

一个用于与Bitdepot比特币钱包交互的Symfony2组件。

0.0.12 2016-12-17 21:52 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:09:34 UTC


README

当比特币遇到阿诺德·施瓦辛格。

查看API项目

设置

使用Composer安装

composer require dizda/bitdepot-client-bundle

配置

要激活钩子,您必须更新您的 routing.yml

dizda_bitdepot_client:
    resource: "@DizdaBitdepotClientBundle/Resources/config/routing.yml"
    prefix:   /callback # don't forget to restrict the path you specify in your security.yml

将以下内容添加到您的 config.yml

dizda_bitdepot_client:
    base_url:   %bitdepot_endpoint%    # Correspond to the bitdepot api server
    app_id:     %bitdepot_app_id%
    app_secret: %bitdepot_app_secret%

监听器

您可能希望监听在您的地址上/进行的所有交互?这很简单。

DepositListener

每次存款(并达到您指定的确认)都会触发一个事件 dizda_bitdepot_client.deposit_callback

因此,例如,您可以创建一个监听器

<?php
// AdvertisingBundle/EventListener/DepositListener.php

namespace Dizda\Bundle\AdvertisingBundle\EventListener;

use Dizda\BitdepotClientBundle\Event\CallbackEvent;

/**
 * Class DepositListener
 */
class DepositListener
{
    /**
     * When a deposit is made, the listener will trigger this hook
     *
     * @param CallbackEvent $event
     */
    public function onDepositCallback(CallbackEvent $event)
    {
        $data = $event->getData();

        if ($data['is_fulfilled'] === false) {
            // The case when the deposit were not sufficient
            return;
        }

        if ($data['is_overfilled'] === true) {
            // do something
        }

        // The deposit was notified to be successful, so you can do your stuff there
        $advertiser = $this->em
            ->getRepository('DizdaAdvertisingBundlee:Advertiser')
            ->findOneByDepositAddress($data['address_external']['value'])
        ;

        // Activate the campaign
        $advertiser->activate();

        // [...]
    }
}

并将监听器添加到 services.xml

<service id="dizda_advertising.listener.deposit" class="Dizda\Bundle\AdvertisingBundle\EventListener\DepositListener">
    <tag name="kernel.event_listener" event="dizda_bitdepot_client.deposit_callback" method="onDepositCallback" />
</service>

这就完成了!

许可证

MIT许可,请参阅LICENSE。