Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
IntegrationFactory.php
Go to the documentation of this file.
1 <?php
7 
10 
15 {
19  private $objectManager;
20 
25  public function __construct(ObjectManagerInterface $objectManager)
26  {
27  $this->objectManager = $objectManager;
28  }
29 
37  public function create(VaultPaymentInterface $paymentMethod, int $storeId): Integration
38  {
39  $config = $paymentMethod->getConfigData('instant_purchase', $storeId);
40  $availabilityChecker = $this->extractFromConfig(
41  $config,
42  'available',
43  AvailabilityCheckerInterface::class
44  );
45  $paymentTokenFormatter = $this->extractFromConfig(
46  $config,
47  'tokenFormat',
48  PaymentTokenFormatterInterface::class
49  );
50  $paymentAdditionalInformationProvider = $this->extractFromConfig(
51  $config,
52  'additionalInformation',
53  PaymentAdditionalInformationProviderInterface::class
54  );
55 
56  $integration = $this->objectManager->create(Integration::class, [
57  'vaultPaymentMethod' => $paymentMethod,
58  'availabilityChecker' => $this->objectManager->get($availabilityChecker),
59  'paymentTokenFormatter' => $this->objectManager->get($paymentTokenFormatter),
60  'paymentAdditionalInformationProvider' => $this->objectManager->get($paymentAdditionalInformationProvider),
61  ]);
62  return $integration;
63  }
64 
73  private function extractFromConfig($config, string $field, string $default): string
74  {
75  return isset($config[$field]) ? $config[$field] : $default;
76  }
77 }
$objectManager
Definition: bootstrap.php:17
$config
Definition: fraud_order.php:17
create(VaultPaymentInterface $paymentMethod, int $storeId)
getConfigData($field, $storeId=null)