雪帽/ogone-bundle

Symfony2 的 Ogone 支付网关包装器

安装次数: 5,212

依赖项: 0

建议者: 0

安全: 0

星标: 4

关注者: 3

分支: 8

开放问题: 1

类型:symfony-bundle

v1.0.1 2015-12-18 07:48 UTC

This package is not auto-updated.

Last update: 2024-09-11 11:30:22 UTC


README

此包将 Ogone 支付网关引入到 Symfony 项目中。它使用 marlon-ogone Bundle,并添加了不同的集成方法。

有关 Ogone 的更多信息,请参阅此处: http://www.ogone.com

警告:此包处于测试阶段,使用风险自负!

先决条件

  • Symfony 2.1>=
  • 您必须拥有一个有效的 Ogone 账户,并已配置 SHA-IN 和 SHA-OUT 安全。

安装

下载此包

{
"require": {
    "snowcap/ogone-bundle": "dev-master"
}
$ php composer.phar update snowcap/ogone-bundle

将其添加到您的应用程序内核

// app/ApplicationKernel.php
public function registerBundles()
{
    return array(
        // ...
        new Snowcap\OgoneBundle\SnowcapOgoneBundle(),
        // ...
    );
}

配置

将以下配置选项放入您的配置文件中

snowcap_ogone:
    pspid: [your_ogone_pspid]
    environment: [test|prod]
    sha_in: [your_ogone_sha_in_passhprase]
    sha_out: [your_ogone_sha_out_passhprase]
    options:
        # any option you may want to pass to Ogone, as key: value pairs

用法

获取用于视图的 Ogone 表单

一个名为 'snowcap_ogone.manager' 的服务允许您获取 Ogone 表单渲染,您还可以定义 acceptUrl 以及您想要发送给 Ogone 的任何其他选项。例如

/** @var $ogone \Snowcap\OgoneBundle\Manager */
$ogone = $this->get('snowcap_ogone');

$ogoneForm = $ogone->getRequestForm($locale, $orderId, $customerName, $amount, $currency, array(
    'acceptUrl' => $this->generateUrl('your_success_page_route_name', array(), true),
    // and any other option your may want to pass to Ogone
));

return array(
    'ogone_form' => $ogoneForm,
);

注意,这并非一个 Symfony 表单,而是一个由 Ogone 库提供的简单渲染表单。

...
{{ ogone_form|raw }}

获取 Ogone 结果

首先您需要在您的 routing.yml 中添加一个路由

snowcap_ogone:
    resource: "@SnowcapOgoneBundle/Controller"
    type: annotation

为了捕获 Ogone 的结果,您必须创建一个服务并将其标记为事件订阅者(或事件监听器):例如

my_company_bundle.ogone_subscriber:
    class: MyCompany\MyBundle\Ogone\OgoneSubscriber
    tags:
        - { name: kernel.event_subscriber }

该服务必须实现 EventSubscriberInterface,如下所示

<?php
namespace MyCompany\MyBundle\Ogone;
    
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

use Snowcap\OgoneBundle\Event\OgoneEvent;
use Snowcap\OgoneBundle\OgoneEvents;

class OgoneSubscriber implements EventSubscriberInterface
{
    /**
     * @param \Snowcap\OgoneBundle\Event\OgoneEvent $event
     */
    public function onOgoneSuccess(OgoneEvent $event)
    {
        
    }

    /**
     * @param \Snowcap\OgoneBundle\Event\OgoneEvent $event
     */
    public function onOgoneError(OgoneEvent $event)
    {
        
    }
    
    /**
     * @return array
     */
    public static function getSubscribedEvents()
    {
        return array(
            OgoneEvents::SUCCESS => 'onOgoneSuccess',
            OgoneEvents::ERROR => 'onOgoneError'
        );
    }
}

现在您在您的包中有两个方法可以操作您需要的所有业务逻辑,祝您使用愉快!