Skip to content

PayU payment integration for Pimcore Ecommerce Framework (community bundle)

License

Notifications You must be signed in to change notification settings

pimcore/payment-provider-payu

Repository files navigation

Pimcore E-Commerce Framework Payment Provider - PayU

###Official PayU Documentation

Installation

Install latest version with composer:

composer require pimcore/payment-provider-payu

Enable bundle via console or extensions manager in Pimcore backend:

php bin/console pimcore:bundle:enable PimcorePaymentProviderPayUBundle
php bin/console pimcore:bundle:install PimcorePaymentProviderPayUBundle

Configuration

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_framework:
    payment_manager:
        providers:
            payment.method.payu:
                provider_id: Pimcore\Bundle\EcommerceFrameworkBundle\PaymentManager\Payment\PayU
                profile: 'sandbox'
                profiles:
                sandbox:
                    pos_id: '1234'
                    md5_key: 'c077211eecaf832644edc5a564a68015'
                    oauth_client_id: '1234'
                    oauth_client_secret: '0c68dfa4f61b65fa534b48d95e1c9d91'

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: PaymentInfo Additional Data

usage sample

<?php
$config = [
    'extOrderId'  => $paymentId,
    'notifyUrl'   => $baseUrl . $this->router->generate('payment_payu_status'),
    'customerIp'  => $clientIp,
    'description' => 'My order',
    'continueUrl' => $baseUrl . $this->router->generate('payment_payu_continue'),
    'order'       => $order
];

$payment->initPayment($price, $config);