dizda/coinegger-client-bundle

此包已被 放弃 并不再维护。作者建议使用 dizda/bitdepot-client-bundle 包。

一个用于与 Bitdepot 比特币钱包互操作的 Symfony2 扩展包。

0.0.12 2016-12-17 21:52 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:43:38 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。