/** * {@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} */ protected function populateConfig(ArrayObject $config) { if (!class_exists(\AuthorizeNetAIM::class)) { throw new \LogicException('You must install "authorizenet/authorizenet" library.'); } $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.convert_payment' => new ConvertPaymentAction())); 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; }; } }