wirecard-bundle
Install
Install the package with Composer:, (*1)
composer require 'hochstrasserio/wirecard-bundle:dev-master'
Add the bundle to your AppKernel:, (*2)
// 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., (*3)
The confirmUrl
parameter sets a URL which is updated with a request from Wirecard with payment information and state., (*4)
Register the controller in your routing configuration to enable this feature:, (*5)
wirecard_confirm:
path: /wirecard/confirm
defaults:
_controller: hochstrasser_wirecard.wirecard_controller:confirmAction
Then pass the URL to the InitPaymentRequest
:, (*6)
<?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., (*7)
Handle this event to implement your business logic, e.g. queuing an order confirmation email., (*8)
For example:, (*9)
<?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:, (*10)
-
SUCCESS
: Payment was successful, e.g. send order confirmation
-
PENDING
: Payment is still processing
-
CANCEL
: Payment was cancelled by the customer
-
FAILURE
: Payment failure, i.e. notify the user that the order could not be processed