/** * {@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; }
/** * {@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; }
/** * {@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; }
/** * {@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; }
/** * {@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; }
/** * {@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; }
/** * {@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; }
/** * {@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; }
/** * {@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; }