hochstrasserio / wirecard-bundle
Bundle which integrates the hochstrasser/wirecard library
Installs: 14 320
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: >=5.5.0
- hochstrasserio/wirecard: ^0.2.0 || ^1.0.0
- symfony/symfony: ^2.7.0 || ^3.0.0
Requires (Dev)
- phpunit/phpunit: ^4.0.0
This package is not auto-updated.
Last update: 2024-11-09 19:22:28 UTC
README
Install
Install the package with Composer:
composer require 'hochstrasserio/wirecard-bundle:dev-master'
Add the bundle to your AppKernel:
// AppKernel.php $bundles = [ … new Hochstrasser\WirecardBundle\HochstrasserWirecardBundle(), … ];
Usage
Bundle Reference Configuration
hochstrasser_wirecard: # Checkout language, required language: ~ # Customer ID, required customer_id: ~ # Secret, required secret: ~ # Shop ID, optional shop_id: ~ # Password for backend requests, optional backend_password: ~ # User agent used for requests, change this to your app name user_agent: "Hochstrasser/Wirecard" # Version of DataStorage JS, possible values are null and "pci3" javascript_script_version: ~
Retrieving the Wirecard Context
<?php $context = $this->get('hochstrasser_wirecard.context');
Using the WirecardController to handle confirm requests
This bundle includes an implementation of a controller to handle requests sent to the confirmUrl
parameter supplied to payment requests.
The confirmUrl
parameter sets a URL which is updated with a request from Wirecard with payment information and state.
Register the controller in your routing configuration to enable this feature:
wirecard_confirm: path: /wirecard/confirm defaults: _controller: hochstrasser_wirecard.wirecard_controller:confirmAction
Then pass the URL to the InitPaymentRequest
:
<?php $request->setConfirmUrl($this->generateUrl('wirecard_confirm'), [], UrlGeneratorInterface::ABSOLUTE_URL);
The controller then checks the responseFingerprint. When the fingerprint is valid, it triggers the Hochstrasser\WirecardBundle\Event\ConfirmPaymentEvent
in the app's event dispatcher.
Handle this event to implement your business logic, e.g. queuing an order confirmation email.
For example:
<?php use Hochstrasser\WirecardBundle\Event\ConfirmPaymentEvent; $listener = function (ConfirmPaymentEvent $event) { // Response parameters // See: https://guides.wirecard.at/response_parameters $data = $event->getData(); if ($event->isPaymentState(ConfirmPaymentEvent::SUCCESS)) { // We got the payment, queue order confirmation email } else if ($event->isPaymentState(ConfirmPaymentEvent::FAILURE)) { // Notify the user that something went wrong with the payment, and order // is on hold } };
The ConfirmPaymentEvent
contains also constants for the Wirecard payment response states:
SUCCESS
: Payment was successful, e.g. send order confirmationPENDING
: Payment is still processingCANCEL
: Payment was cancelled by the customerFAILURE
: Payment failure, i.e. notify the user that the order could not be processed