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(),
…
];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: ~<?php
$context = $this->get('hochstrasser_wirecard.context');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:confirmActionThen 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