snowcap / ogone-bundle
Ogone wrapper for Symfony2
Installs: 5 216
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 3
Forks: 8
Open Issues: 1
Type:symfony-bundle
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-12-18 12:42:43 UTC
README
This bundle introduces the Ogone payment process gateway into a Symfony project It uses the marlon-ogone Bundle, and adds a different integration approach
More info about Ogone can be found here: http://www.ogone.com
WARNING: THIS BUNDLE IS IN BETA STAGE, USE AT YOUR OWN RISKS !
Prerequisites
- Symfony 2.1>=
- You must have a valid Ogone account, configured with SHA-IN and SHA-OUT security activated
Installation
Download the bundle:
{ "require": { "snowcap/ogone-bundle": "dev-master" }
$ php composer.phar update snowcap/ogone-bundle
Add it to your application's kernel:
// app/ApplicationKernel.php public function registerBundles() { return array( // ... new Snowcap\OgoneBundle\SnowcapOgoneBundle(), // ... ); }
Configuration
Put the following configuration options in your config file:
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
Usage
Getting the Ogone form to use in your view
A service 'snowcap_ogone.manager' allows you to get the ogone form rendering, whereby you can also define the acceptUrl, and any other option you want to send to Ogone An example could be:
/** @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, );
Pay attention, this is not a Symfony form, just a simple rendered form provided by the Ogone library.
... {{ ogone_form|raw }}
Getting Ogone result
First you need to add a route in your routing.yml
snowcap_ogone: resource: "@SnowcapOgoneBundle/Controller" type: annotation
To catch Ogone's result, you have to create a service and tag it as an event subscriber (or an event listener): For example:
my_company_bundle.ogone_subscriber: class: MyCompany\MyBundle\Ogone\OgoneSubscriber tags: - { name: kernel.event_subscriber }
That service has to implement the EventSubscriberInterface, like the following:
<?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' ); } }
You now have two methods inside your bundle to operate all the business logic you need, enjoy !