Pimcore E-Commerce Framework Payment Provider - OGone
Official OGone Documentation
Install latest version with Composer:
composer require pimcore/payment-provider-ogone
Enable bundle via console or extensions manager in Pimcore backend:
php bin/console pimcore:bundle:enable PimcorePaymentProviderOGoneBundle php bin/console pimcore:bundle:install PimcorePaymentProviderOGoneBundle
The Payment Manager is responsible for implementation of different Payment Provider to integrate them into the framework.
For more information about Payment Manager, see Payment Manager Docs.
Configure payment provider in the
pimcore_ecommerce_config.payment_manager config section:
pimcore_ecommerce_config: payment_manager: # service ID of payment manager implementation - following value is default value an can be omitted payment_manager_id: Pimcore\Bundle\EcommerceFrameworkBundle\PaymentManager\PaymentManager # configuration of payment providers, key is name of provider providers: ogone: provider_id: Pimcore\Bundle\EcommerceFrameworkBundle\PaymentManager\Payment\OGone profile: sandbox profiles: sandbox: secret: D343DDFD3434 pspid: MyTestAccount mode: sandbox # encryptionType: SHA256 or SHA512 (optional) live: secret: D343DDFD3434 pspid: MyLiveAccount mode: live # encryptionType: SHA256 or SHA512 (optional)
Payment Information: Order payment section "Payment Informations" stores information about every payment trial by Customer.
Add additional fields in "PaymentInfo" fieldcollection, so that Order Manager stores information in Order object:
Somewhere in your checkout controller you will need to create the payment configuration for the
method of the provider:
<?php $url = 'https://'. $_SERVER["HTTP_HOST"] . "/en/checkout/confirm?state="; $paymentConfig = [ 'language' => "en", 'orderIdent' => $paymentInfo->getInternalPaymentId(), 'customerStatement' => $paymentMessage, 'successUrl' => "https://my-server-name.com/shop/payment/confirm?provider=ogone&state=success", 'cancelUrl' => "https://my-server-name.com/shop/payment/confirm?provider=ogone&state=cancel", 'errorUrl' => "https://my-server-name.com/shop/payment/confirm?provider=ogone&state=error", 'paymentInfo' => $order->getPaymentInfo()->getItems() ];
You must configure the callback URLs within the OGone backend so that these are called server-by-server.
You can pass additional parameters in the configuration based on the OGone documentation. For instance the color and the appearance of th Ogone UI can be controlled, and additional customer data may be passed.