alcalyn/payplug-bundle

Payplug 集成到 symfony2

安装: 691

依赖: 0

建议者: 0

安全: 0

星标: 7

关注者: 5

分支: 6

开放问题: 0

类型:symfony-bundle

v1.2.5 2015-12-09 21:44 UTC

README

Payplug 集成到 symfony2。

Latest Stable Version Scrutinizer Code Quality SensioLabsInsight Build Status License

安装步骤

步骤 1: 使用 composer 下载

{
    "require": {
        "alcalyn/payplug-bundle": "1.x"
    }
}

更新您的 composer。

php composer.phar update

步骤 2: 注册 Bundle

<?php
// app/AppKernel.php

    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Alcalyn\PayplugBundle\AlcalynPayplugBundle(),
        );
    }

步骤 3: 导入 Payplug IPN 路由

为了创建付款并处理 IPN,该 Bundle 需要启用其路由。

将以下内容添加到 app/config/routing.yml

# Payplug routing
alcalyn_payplug:
    resource: "@AlcalynPayplugBundle/Resources/config/routing.yml"
    prefix:   /

步骤 4: 配置 Bundle 和您的账户设置

将这些行添加到您的 config.yml

# Payplug configuration
alcalyn_payplug:
    account:
        url:                %payplug_account_url%
        amount_min:         %payplug_account_amount_min%
        amount_max:         %payplug_account_amount_max%
        currencies:         %payplug_account_currencies%
        payplugPublicKey:   %payplug_account_payplugPublicKey%
        yourPrivateKey:     %payplug_account_yourPrivateKey%

并将这些行添加到 parameters.yml,以及可选地添加到 parameters.yml.dist

    payplug_account_url:                ~
    payplug_account_amount_min:         ~
    payplug_account_amount_max:         ~
    payplug_account_currencies:         ~
    payplug_account_payplugPublicKey:   ~
    payplug_account_yourPrivateKey:     ~

然后运行此命令以加载您的 Payplug 账户设置

php app/console payplug:account:update

(您的 Payplug 邮箱和密码将被提示)

警告:

请确保不要通过提交您的 parameters.yml 来提交您的账户设置

有关账户配置的更多信息,请参阅 Payplug 文档

注意:

此命令使用 curl 从 https://www.payplug.fr/portal/ecommerce/autoconfig 加载您的账户参数

如果命令失败,请转到 https://www.payplug.fr/portal/ecommerce/autoconfig 并手动复制/粘贴您的参数。

您的 parameters.yml 应该看起来像这样: parameters.yml.example

您还可以 配置您的测试模式

基本用法

生成付款 URL

<?php
use Alcalyn\PayplugBundle\Model\Payment;

// ...

    public function wtfAction()
    {
        // Create a payment of 16 €
        $payment = new Payment(1600, Payment::EUROS);

        // Get Payplug payment service
        $payplugPayment = $this->get('payplug.payment');

        // Generate url
        $payplugPayment->generateUrl($payment); // returns "https://www.payplug.fr/p/aca8...ef?data=...&sign=..."
    }

处理 IPN

当收到 IPN 时,AlcalynPayplugBundle 将触发 PayplugIPNEvent 事件。

此事件包含一个 IPN 实例,您可以通过调用 PayplugIPNEvent::getIPN() 来访问它。

所以您可以像这样监听它

  • 创建监听器类
<?php
// src/Acme/AcmeBundle/EventListener/PaymentListener.php

namespace Acme\AcmeBundle\EventListener;

use Alcalyn\PayplugBundle\Event\PayplugIPNEvent;

class PaymentListener
{
    /**
     * @param PayplugIPNEvent $event
     */
    public function onPayment(PayplugIPNEvent $event)
    {
        $ipn = $event->getIPN();

        // treat $ipn
    }
}
  • 注册您的监听器
# src/Acme/AcmeBundle/Resources/services.yml
services:
    acme.listeners.payment:
        class: Acme\AcmeBundle\EventListener\PaymentListener
        tags:
            - { name: kernel.event_listener, event: event.payplug.ipn, method: onPayment }

高级用法

许可证

此 Bundle 在 MIT 许可证下。查看完整的许可证

Resources/meta/LICENSE