/**
  * @return array
  */
 protected function createFactoryConfig()
 {
     $config = parent::createFactoryConfig();
     $config['payum.template.capture'] = new Parameter('payum.sips.template.capture');
     $config['payum.api_config'] = new Parameter('ekyna_payum_sips.api_config');
     $config['payum.client'] = new Reference('ekyna_payum_sips.client');
     return $config;
 }
 /**
  * {@inheritdoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('type')->isRequired()->cannotBeEmpty()->end()->arrayNode('options')->isRequired()->useAttributeAsKey('key')->prototype('scalar')->end()->end()->end();
     $builder->validate()->ifTrue(function ($v) {
         $gatewayFactory = Omnipay::getFactory();
         $gatewayFactory->find();
         $supportedTypes = $gatewayFactory->all();
         if (false == in_array($v['type'], $supportedTypes) && !class_exists($v['type'])) {
             throw new LogicException(sprintf('Given type %s is not supported. Try one of supported types: %s or use the gateway full class name.', $v['type'], implode(', ', $supportedTypes)));
         }
         return false;
     })->thenInvalid('A message');
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('skinCode')->isRequired()->cannotBeEmpty()->end()->scalarNode('merchantAccount')->isRequired()->cannotBeEmpty()->end()->scalarNode('hmacKey')->isRequired()->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->scalarNode('notification_method')->defaultValue('basic')->end()->arrayNode('default_payment_fields')->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('eid')->isRequired()->cannotBeEmpty()->end()->scalarNode('secret')->isRequired()->cannotBeEmpty()->end()->scalarNode('country')->defaultValue('SE')->cannotBeEmpty()->end()->scalarNode('language')->defaultValue('SV')->cannotBeEmpty()->end()->scalarNode('currency')->defaultValue('SEK')->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 protected function createFactoryConfig()
 {
     $config = parent::createFactoryConfig();
     $config['payum.template.obtain_token'] = new Parameter('payum.stripe_checkout.template.obtain_checkout_token');
     return $config;
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('login_id')->isRequired()->cannotBeEmpty()->end()->scalarNode('transaction_key')->isRequired()->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('username')->isRequired()->cannotBeEmpty()->end()->scalarNode('password')->isRequired()->cannotBeEmpty()->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('service')->defaultValue(null)->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('encryption_key')->isRequired()->cannotBeEmpty()->end()->scalarNode('account_number')->isRequired()->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->end();
 }
 /**
  * @param ArrayNodeDefinition $builder
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('environment')->isRequired()->defaultValue('secure')->end()->scalarNode('pos_id')->isRequired()->cannotBeEmpty()->end()->scalarNode('signature_key')->isRequired()->cannotBeEmpty()->end()->end();
 }
 /**
  * @inheritDoc
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('account')->isRequired()->end()->scalarNode('secret')->defaultNull()->end()->end();
 }
 /**
  * @return array
  */
 protected function createFactoryConfig()
 {
     $config = parent::createFactoryConfig();
     $config['payum.template.authorize'] = new Parameter('payum.klarna_checkout.template.capture');
     return $config;
 }
 /**
  * {@inheritdoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('type')->isRequired()->cannotBeEmpty()->end()->arrayNode('options')->isRequired()->useAttributeAsKey('key')->prototype('scalar')->end()->end()->end();
 }
 /**
  * {@inheritdoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('id')->isRequired()->cannotBeEmpty()->end()->scalarNode('URLC')->end()->scalarNode('url')->end()->enumNode('type')->defaultValue(Constants::TYPE_RETURN_BUTTON_AND_NOTIFY)->values([Constants::TYPE_ONLY_RETURN_BUTTON, Constants::TYPE_INFINITY_POST_NOTIFY, Constants::TYPE_NO_INTERACTION, Constants::TYPE_RETURN_BUTTON_AND_NOTIFY])->end()->scalarNode('URLC')->end()->scalarNode('PIN')->end()->scalarNode('ip')->end()->scalarNode('endpoint')->defaultValue(Api::DEFAULT_ENDPOINT)->end()->scalarNode('method')->defaultValue('GET')->validate()->ifNotInArray(['GET', 'POST'])->thenInvalid('Invalid redirect method "%s"')->end()->end();
 }
 /**
  * {@inheritdoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('config_key')->isRequired()->cannotBeEmpty()->end()->scalarNode('abort_url')->isRequired()->cannotBeEmpty()->end()->end();
 }
 /**
  * {@inheritdoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('identifier')->isRequired()->cannotBeEmpty()->end()->scalarNode('password')->isRequired()->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 public function addConfiguration(ArrayNodeDefinition $builder)
 {
     parent::addConfiguration($builder);
     $builder->children()->scalarNode('merchant_code')->isRequired()->cannotBeEmpty()->end()->scalarNode('terminal')->isRequired()->cannotBeEmpty()->end()->scalarNode('secret_key')->isRequired()->cannotBeEmpty()->end()->booleanNode('sandbox')->defaultTrue()->end()->end();
 }
 /**
  * {@inheritDoc}
  */
 protected function createFactoryConfig()
 {
     $config = parent::createFactoryConfig();
     $config['payum.template.confirm_order'] = new Parameter("payum.{$this->getName()}.template.confirm_order");
     return $config;
 }