Esempio n. 1
0
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig((array) $config));
        $config->defaults(array(
            'payum.factory_name' => 'authorize_net_aim',
            'payum.factory_title' => 'Authorize.NET AIM',
            'payum.action.capture' => new CaptureAction(),
            'payum.action.status' => new StatusAction(),
            'payum.action.fill_order_details' => new FillOrderDetailsAction(),
        ));

        if (false == $config['payum.api']) {
            $config['payum.default_options'] = array(
                'login_id' => '',
                'transaction_key' => '',
                'sandbox' => true,
            );
            $config->defaults($config['payum.default_options']);
            $config['payum.required_options'] = array('login_id', 'transaction_key');

            $config['payum.api'] = function (ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                $api = new AuthorizeNetAIM($config['login_id'], $config['transaction_key']);
                $api->setSandbox($config['sandbox']);

                return $api;
            };
        }

        return (array) $config;
    }
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig((array)$config));

        return (array) $config;
    }
Esempio n. 3
0
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig((array) $config));

        $config->defaults(array(
            'payum.factory_name' => 'paypal_express_checkout_nvp',
            'payum.factory_title' => 'PayPal ExpressCheckout',

            'payum.action.capture' => new CaptureAction(),
            'payum.action.fill_order_details' => new FillOrderDetailsAction(),
            'payum.action.notify' => new NotifyAction(),
            'payum.action.status' => new PaymentDetailsStatusAction(),
            'payum.action.sync' => new PaymentDetailsSyncAction(),
            'payum.action.recurring_status' => new RecurringPaymentDetailsStatusAction(),
            'payum.action.recurring_sync' => new RecurringPaymentDetailsSyncAction(),

            'payum.action.api.set_express_checkout' => new SetExpressCheckoutAction(),
            'payum.action.api.get_express_checkout_details' => new GetExpressCheckoutDetailsAction(),
            'payum.action.api.get_transaction_details' => new GetTransactionDetailsAction(),
            'payum.action.api.do_express_checkout_payment' => new DoExpressCheckoutPaymentAction(),
            'payum.action.api.create_recurring_payment_profile' => new CreateRecurringPaymentProfileAction(),
            'payum.action.api.get_recurring_payments_profile_details' => new GetRecurringPaymentsProfileDetailsAction(),
            'payum.action.api.cancel_recurring_payments_profile' => new CancelRecurringPaymentsProfileAction(),
            'payum.action.api.manage_recurring_payments_profile_status' => new ManageRecurringPaymentsProfileStatusAction(),
            'payum.action.api.create_billing_agreement' => new CreateBillingAgreementAction(),
            'payum.action.api.do_reference_transaction' => new DoReferenceTransactionAction(),
            'payum.action.api.authorize_token' => new AuthorizeTokenAction(),
        ));

        if (false == $config['payum.api']) {
            $config['payum.default_options'] = array(
                'username' => '',
                'password' => '',
                'signature' => '',
                'sandbox' => true,
            );
            $config->defaults($config['payum.default_options']);
            $config['payum.required_options'] = array('username', 'password', 'signature');

            $config['payum.api'] = function (ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                $paypalConfig = array(
                    'username' => $config['username'],
                    'password' => $config['password'],
                    'signature' => $config['signature'],
                    'sandbox' => $config['sandbox'],
                );

                return new Api($paypalConfig, $config['buzz.client']);
            };
        }

        return (array) $config;
    }
Esempio n. 4
0
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig((array) $config));

        $config->defaults(array(
            'payum.factory_name' => 'klarna_checkout',
            'payum.factory_title' => 'Klarna Checkout',
            'payum.template.authorize' => '@PayumKlarnaCheckout/Action/capture.html.twig',
            'contentType' => Constants::CONTENT_TYPE_V2_PLUS_JSON,
            'sandbox' => true,
        ));

        $config->defaults(array(
            'payum.action.authorize' => new AuthorizeAction($config['payum.template.authorize']),
            'payum.action.notify' => new NotifyAction(),
            'payum.action.status' => new StatusAction(),
            'payum.action.sync' => new SyncAction(),

            'payum.action.api.create_order' => new CreateOrderAction(),
            'payum.action.api.update_order' => new UpdateOrderAction(),
            'payum.action.api.fetch_order' => new FetchOrderAction(),
        ));

        if (false == $config['payum.api']) {
            $config['payum.default_options'] = array(
                'merchant_id' => '',
                'secret' => '',
                'sandbox' => true,
            );
            $config->defaults($config['payum.default_options']);
            $config['payum.required_options'] = array('merchant_id', 'secret');

            $config['payum.api'] = function (ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                $klarnaConfig = new Config();
                $klarnaConfig->merchantId = $config['merchant_id'];
                $klarnaConfig->secret = $config['secret'];
                $klarnaConfig->contentType = $config['contentType'];
                $klarnaConfig->baseUri = $config['sandbox'] ?
                    Constants::BASE_URI_SANDBOX :
                    Constants::BASE_URI_LIVE
                ;

                return $klarnaConfig;
            };
        }

        return (array) $config;
    }
Esempio n. 5
0
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig((array) $config));

        $config->defaults(array(
            'payum.factory_name' => 'offline',
            'payum.factory_title' => 'Offline',
            'payum.action.capture' => new CaptureAction(),
            'payum.action.status' => new StatusAction(),
            'payum.action.fill_order_details' => new FillOrderDetailsAction(),
        ));

        return (array) $config;
    }
 /**
  * {@inheritDoc}
  */
 public function createConfig(array $config = array())
 {
     $config = ArrayObject::ensureArrayObject($config);
     $config->defaults($this->defaultConfig);
     $config->defaults($this->corePaymentFactory->createConfig());
     $config->defaults(array('payum.factory_name' => 'payreceipt', 'payum.factory_title' => 'Pay receipt', 'payum.action.capture' => new CaptureAction(), 'payum.action.notify' => new NotifyAction(), 'payum.action.status' => new StatusAction(), 'payum.action.fill_order_details' => new FillOrderDetailsAction()));
     if (false == $config['payum.api']) {
         $config['payum.default_options'] = array('mapping' => null, 'gateway' => ['url' => '/you/should/configure/gateway/section/in/config/yml']);
         $config->defaults($config['payum.default_options']);
         $config['payum.api'] = function (ArrayObject $config) {
             $config->validateNotEmpty($config['payum.required_options']);
             $payreceiptConfig = array('mapping' => $config['mapping'], 'gateway' => $config['gateway']);
             return new Api($payreceiptConfig);
         };
     }
     return (array) $config;
 }
Esempio n. 7
0
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig((array) $config));

        $config->defaults(array(
            'payum.factory_name' => 'paypal_pro_checkout_nvp',
            'payum.factory_title' => 'PayPal ProCheckout',

            'payum.action.capture' => new CaptureAction(),
            'payum.action.refund' => new RefundAction(),
            'payum.action.fill_order_details' => new FillOrderDetailsAction(),
            'payum.action.status' => new StatusAction(),
        ));

        if (false == $config['payum.api']) {
            $config['payum.default_options'] = array(
                'username' => '',
                'password' => '',
                'partner' => '',
                'vendor' => '',
                'tender' => '',
                'sandbox' => true,
            );
            $config->defaults($config['payum.default_options']);
            $config['payum.required_options'] = array('username', 'password', 'partner', 'vendor', 'tender');

            $config['payum.api'] = function (ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                $paypalConfig = array(
                    'username' => $config['username'],
                    'password' => $config['password'],
                    'partner' => $config['partner'],
                    'vendor' => $config['vendor'],
                    'tender' => $config['tender'],
                    'sandbox' => $config['sandbox'],
                );

                return new Api($paypalConfig, $config['buzz.client']);
            };
        }

        return (array) $config;
    }
 /**
  * {@inheritDoc}
  */
 public function createConfig(array $config = array())
 {
     $config = ArrayObject::ensureArrayObject($config);
     $config->defaults($this->defaultConfig);
     $config->defaults($this->corePaymentFactory->createConfig());
     $config->defaults(array('payum.factory_name' => 'limonetik', 'payum.factory_title' => 'Limonetik', 'payum.action.capture' => new CaptureAction(), 'payum.action.fill_order_details' => new FillOrderDetailsAction(), 'payum.action.status' => new StatusAction(), 'payum.action.sync' => new PaymentDetailsSyncAction(), 'payum.action.authorize' => new AuthorizeTokenAction(), 'payum.action.charge' => new ChargeTokenAction()));
     if (false == $config['payum.api']) {
         $config['payum.default_options'] = array('merchantId' => null, 'key' => null, 'sandbox' => true);
         $config->defaults($config['payum.default_options']);
         $config['payum.required_options'] = array('merchant_id', 'key', 'sandbox');
         $config['payum.api'] = function (ArrayObject $config) {
             $config->validatedKeysSet($config['payum.required_options']);
             $apiConfig = array('merchantId' => $config['merchant_id'], 'key' => $config['key'], 'sandbox' => $config['sandbox']);
             return new APIClient($apiConfig, $config['buzz.client']);
         };
     }
     return (array) $config;
 }
 /**
  * {@inheritDoc}
  */
 public function createConfig(array $config = array())
 {
     $config = ArrayObject::ensureArrayObject($config);
     $config->defaults($this->defaultConfig);
     $config->defaults($this->corePaymentFactory->createConfig());
     $config->defaults(array('payum.factory_name' => 'uniteller', 'payum.factory_title' => 'Uniteller', 'payum.action.capture' => new CaptureAction(), 'payum.action.notify' => new NotifyAction(), 'payum.action.status' => new StatusAction(), 'payum.action.fill_order_details' => new FillOrderDetailsAction()));
     if (false == $config['payum.api']) {
         $config['payum.default_options'] = array('shop_id' => '', 'password' => '', 'sandbox' => true);
         $config->defaults($config['payum.default_options']);
         $config['payum.required_options'] = array('shop_id', 'password');
         $config['payum.api'] = function (ArrayObject $config) {
             $config->validateNotEmpty($config['payum.required_options']);
             $unitellerConfig = array('shop_id' => $config['shop_id'], 'password' => $config['password'], 'sandbox' => $config['sandbox']);
             return new Api($unitellerConfig);
         };
     }
     return (array) $config;
 }
Esempio n. 10
0
 /**
  * {@inheritDoc}
  */
 public function createConfig(array $config = array())
 {
     $config = ArrayObject::ensureArrayObject($config);
     $config->defaults($this->defaultConfig);
     $config->defaults($this->corePaymentFactory->createConfig());
     $config->defaults(array('payum.factory_name' => 'flexidengi', 'payum.factory_title' => 'Flexidengi', 'payum.action.capture' => new CaptureAction(), 'payum.action.notify' => new NotifyAction(), 'payum.action.status' => new StatusAction(), 'payum.action.fill_order_details' => new FillOrderDetailsAction()));
     if (false == $config['payum.api']) {
         $config['payum.default_options'] = array('service_id' => null, 'product_id' => null, 'payment_method_id' => null, 'secret' => null, 'sandbox' => true);
         $config->defaults($config['payum.default_options']);
         $config['payum.required_options'] = array('service_id', 'secret');
         $config['payum.api'] = function (ArrayObject $config) {
             $config->validateNotEmpty($config['payum.required_options']);
             $flexidengiConfig = array('service_id' => $config['service_id'], 'product_id' => $config['product_id'], 'payment_method_id' => $config['payment_method_id'], 'secret' => $config['secret'], 'sandbox' => $config['sandbox']);
             return new Api($flexidengiConfig);
         };
     }
     return (array) $config;
 }
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig());
        $config->defaults(array(
            'payum.action.capture' => new CaptureAction(),
            'payum.action.fill_order_details' => new FillOrderDetailsAction(),
            'payum.action.status' => new StatusAction(),
        ));

        if (false == $config['payum.api']) {
            $config['payum.required_options'] = array('type');
            $config->defaults(array('options' => array()));

            $config['payum.api.gateway'] = function(ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                $gatewayFactory = Omnipay::getFactory();
                $gatewayFactory->find();

                $supportedTypes = $gatewayFactory->all();
                if (false == in_array($config['type'], $supportedTypes)) {
                    throw new LogicException(sprintf(
                        'Given type %s is not supported. Try one of supported types: %s.',
                        $config['type'],
                        implode(', ', $supportedTypes)
                    ));
                }

                $gateway = $gatewayFactory->create($config['type']);
                foreach ($config['options'] as $name => $value) {
                    $gateway->{'set'.strtoupper($name)}($value);
                }

                return $gateway;
            };
        }

        return (array) $config;
    }
Esempio n. 12
0
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig((array) $config));

        $config->defaults(array(
            'payum.factory_name' => 'paypal_rest',
            'payum.factory_title' => 'PayPal Rest',

            'payum.action.capture' => new CaptureAction(),
            'payum.action.sync' => new SyncAction(),
            'payum.action.status' => new StatusAction(),
        ));

        if (false == $config['payum.api']) {
            $config['payum.default_options'] = array(
                'client_id' => '',
                'client_secret' => '',
                'config_path' => '',
            );
            $config->defaults($config['payum.default_options']);

            $config['payum.required_options'] = array('client_id', 'client_secret', 'config_path');
            $config['payum.api'] = function (ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                if (!defined('PP_CONFIG_PATH')) {
                    define('PP_CONFIG_PATH', $config['config_path']);
                } elseif (PP_CONFIG_PATH !== $config['config_path']) {
                    throw new InvalidArgumentException(sprintf('Given "config_path" is invalid. Should be equal to the defined "PP_CONFIG_PATH": %s.', PP_CONFIG_PATH));
                }

                $credential = new OAuthTokenCredential($config['client_id'], $config['client_secret']);
                $config['payum.api'] = new ApiContext($credential);
            };
        }

        return (array) $config;
    }
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig((array) $config));

        $config->defaults(array(
            'payum.factory_name' => 'stripe_checkout',
            'payum.factory_title' => 'Stripe Checkout',

            'payum.template.obtain_token' => '@PayumStripe/Action/obtain_checkout_token.html.twig',

            'payum.action.capture' => new CaptureAction(),
            'payum.action.fill_order_details' => new FillOrderDetailsAction(),
            'payum.action.status' => new StatusAction(),
            'payum.action.obtain_token' => function (ArrayObject $config) {
                return new ObtainTokenAction($config['payum.template.obtain_token']);
            },
            'payum.action.create_charge' => new CreateChargeAction(),
        ));

        if (false == $config['payum.api']) {
            $config['payum.default_options'] = array(
                'publishable_key' => '',
                'secret_key' => ''
            );
            $config->defaults($config['payum.default_options']);
            $config['payum.required_options'] = array('publishable_key', 'secret_key');

            $config['payum.api'] = function (ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                return new Keys($config['publishable_key'], $config['secret_key']);
            };
        }

        return (array) $config;
    }
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig((array) $config));

        $config->defaults(array(
            'payum.factory_name' => 'be2bill_direct',
            'payum.factory_title' => 'Be2Bill Direct',

            'payum.action.capture' => new CaptureAction(),
            'payum.action.status' => new StatusAction(),
            'payum.action.fill_order_details' => new FillOrderDetailsAction(),
        ));

        if (false == $config['payum.api']) {
            $config['payum.default_options'] = array(
                'identifier' => '',
                'password' => '',
                'sandbox' => true,
            );
            $config->defaults($config['payum.default_options']);
            $config['payum.required_options'] = array('identifier', 'password');

            $config['payum.api'] = function (ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                return new Api(array(
                    'identifier' => $config['identifier'],
                    'password' => $config['password'],
                    'sandbox' => $config['sandbox'],
                ));
            };
        }

        return (array) $config;
    }
Esempio n. 15
0
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig((array) $config));

        $config['payum.default_options'] = array(
            'account_number' => '',
            'encryption_key' => '',
            'sandbox' => true,
        );
        $config->defaults($config['payum.default_options']);
        $config['payum.required_options'] = array('account_number', 'encryption_key');

        $config->defaults(array(
            'payum.factory_name' => 'payex',
            'payum.factory_title' => 'Payex',

            'soap.client_factory' => new SoapClientFactory(),

            'payum.api.order' => function (ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                $payexConfig = array(
                    'account_number' => $config['account_number'],
                    'encryption_key' => $config['encryption_key'],
                    'sandbox' => $config['sandbox'],
                );

                return new OrderApi($config['soap.client_factory'], $payexConfig);
            },
            'payum.api.agreement' => function (ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                $payexConfig = array(
                    'account_number' => $config['account_number'],
                    'encryption_key' => $config['encryption_key'],
                    'sandbox' => $config['sandbox'],
                );

                return new AgreementApi($config['soap.client_factory'], $payexConfig);
            },
            'payum.api.recurring' => function (ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                $payexConfig = array(
                    'account_number' => $config['account_number'],
                    'encryption_key' => $config['encryption_key'],
                    'sandbox' => $config['sandbox'],
                );

                return new RecurringApi($config['soap.client_factory'], $payexConfig);
            },

            'payum.action.capture' => new PaymentDetailsCaptureAction(),
            'payum.action.status' => new PaymentDetailsStatusAction(),
            'payum.action.sync' => new PaymentDetailsSyncAction(),
            'payum.action.auto_pay_capture' => new AutoPayPaymentDetailsCaptureAction(),
            'payum.action.auto_pay_status' => new AutoPayPaymentDetailsStatusAction(),
            'payum.action.fill_order_details' => new FillOrderDetailsAction(),

            // agreement actions
            'payum.action.api.agreement_details_status' => new AgreementDetailsStatusAction(),
            'payum.action.api.agreement_details_sync' => new AgreementDetailsSyncAction(),
            'payum.action.api.create_agreement' => new CreateAgreementAction(),
            'payum.action.api.delete_agreement' => new DeleteAgreementAction(),
            'payum.action.api.check_agreement' => new CheckAgreementAction(),
            'payum.action.api.auto_pay_agreement' => new AutoPayAgreementAction(),

            //recurring actions
            'payum.action.api.start_recurring_payment' => new StartRecurringPaymentAction(),
            'payum.action.api.stop_recurring_payment' => new StopRecurringPaymentAction(),
            'payum.action.api.check_recurring_payment' => new CheckRecurringPaymentAction(),

            //order actions
            'payum.action.api.initialize_order' => new InitializeOrderAction(),
            'payum.action.api.complete_order' => new CompleteOrderAction(),
            'payum.action.api.check_order' => new CheckOrderAction(),
        ));

        return (array) $config;
    }
Esempio n. 16
0
    /**
     * {@inheritDoc}
     */
    public function createConfig(array $config = array())
    {
        $config = ArrayObject::ensureArrayObject($config);
        $config->defaults($this->defaultConfig);
        $config->defaults($this->corePaymentFactory->createConfig((array) $config));

        $config->defaults(array(
            'payum.factory_name' => 'klarna_invoice',
            'payum.factory_title' => 'Klarna Invoice',
            'sandbox' => true,
            'pClassStorage' => 'json',
            'pClassStoragePath' => './pclasses.json',
            'xmlRpcVerifyHost' => 2,
            'xmlRpcVerifyPeer' => true,

            'payum.action.capture' => new CaptureAction(),
            'payum.action.authorize' => new AuthorizeAction(),
            'payum.action.status' => new StatusAction(),
            'payum.action.sync' => new SyncAction(),
            'payum.action.refund' => new RefundAction(),

            'payum.action.api.activate' => new ActivateAction(),
            'payum.action.api.activate_reservation' => new ActivateReservationAction(),
            'payum.action.api.cancel_reservation' => new CancelReservationAction(),
            'payum.action.api.check_order_status' => new CheckOrderStatusAction(),
            'payum.action.api.get_addresses' => new GetAddressesAction(),
            'payum.action.api.populate_klarna_from_details' => new PopulateKlarnaFromDetailsAction(),
            'payum.action.api.credit_part' => new CreditPartAction(),
            'payum.action.api.reserve_amount' => new ReserveAmountAction(),
        ));

        if (false == $config['payum.api']) {
            $config['payum.default_options'] = array(
                'eid' => '',
                'secret' => '',
                'country' => '',
                'language' => '',
                'currency' => '',
                'sandbox' => true,
            );
            $config->defaults($config['payum.default_options']);
            $config['payum.required_options'] = array('eid', 'secret', 'country', 'language', 'currency');
            $config->defaults(array(
                'sandbox' => true,
            ));

            $config['payum.api'] = function (ArrayObject $config) {
                $config->validateNotEmpty($config['payum.required_options']);

                $config['mode'] = $config['sandbox'] ? \Klarna::BETA : \Klarna::LIVE;

                if (null === $country = \KlarnaCountry::fromCode($config['country'])) {
                    throw new LogicException(sprintf('Given %s country code is not valid. Klarna cannot recognize it.', $config['country']));
                }
                if (null === $language = \KlarnaLanguage::fromCode($config['language'])) {
                    throw new LogicException(sprintf('Given %s language code is not valid. Klarna cannot recognize it.', $config['language']));
                }
                if (null === $currency = \KlarnaCurrency::fromCode($config['currency'])) {
                    throw new LogicException(sprintf('Given %s currency code is not valid. Klarna cannot recognize it.', $config['currency']));
                }

                $klarnaConfig = new Config();
                $klarnaConfig->eid = $config['eid'];
                $klarnaConfig->secret = $config['secret'];
                $klarnaConfig->mode = $config['mode'];
                $klarnaConfig->country = $country;
                $klarnaConfig->language = $language;
                $klarnaConfig->currency = $currency;
                $klarnaConfig->pClassStorage = $config['pClassStorage'];
                $klarnaConfig->pClassStoragePath = $config['pClassStoragePath'];
                $klarnaConfig->xmlRpcVerifyHost = $config['xmlRpcVerifyHost'];
                $klarnaConfig->xmlRpcVerifyHost = $config['xmlRpcVerifyHost'];

                return $klarnaConfig;
            };
        }

        return (array) $config;
    }