雪帽 / ogone-bundle
Symfony2 的 Ogone 支付网关包装器
v1.0.1
2015-12-18 07:48 UTC
Requires
- php: >=5.3.2
- marlon-be/marlon-ogone: ~3.0
- symfony/framework-bundle: >=2.2
- symfony/monolog-bundle: >=2.2
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' ); } }
现在您在您的包中有两个方法可以操作您需要的所有业务逻辑,祝您使用愉快!