Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Info.php
Go to the documentation of this file.
1 <?php
8 
12 
19 class Info extends AbstractModel implements InfoInterface
20 {
26  protected $additionalInformation = [];
27 
33  protected $paymentData;
34 
38  protected $encryptor;
39 
51  public function __construct(
52  \Magento\Framework\Model\Context $context,
53  \Magento\Framework\Registry $registry,
54  \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory,
57  \Magento\Framework\Encryption\EncryptorInterface $encryptor,
58  \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
59  \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
60  array $data = []
61  ) {
62  $this->paymentData = $paymentData;
63  $this->encryptor = $encryptor;
64  parent::__construct(
65  $context,
66  $registry,
67  $extensionFactory,
69  $resource,
70  $resourceCollection,
71  $data
72  );
73  }
74 
82  public function getData($key = '', $index = null)
83  {
84  if ('cc_number' === $key) {
85  $ccNumber = parent::getData('cc_number');
86  $ccNumberEnc = parent::getData('cc_number_enc');
87  if (empty($ccNumber) && !empty($ccNumberEnc)) {
88  $this->setData('cc_number', $this->decrypt($ccNumberEnc));
89  }
90  }
91  if ('cc_cid' === $key) {
92  $ccCid = parent::getData('cc_cid');
93  $ccCidEnc = parent::getData('cc_cid_enc');
94  if (empty($ccCid) && !empty($ccCidEnc)) {
95  $this->setData('cc_cid', $this->decrypt($ccCidEnc));
96  }
97  }
98  return parent::getData($key, $index);
99  }
100 
107  public function getMethodInstance()
108  {
109  if (!$this->hasMethodInstance()) {
110  if (!$this->getMethod()) {
111  throw new \Magento\Framework\Exception\LocalizedException(
112  __('The payment method you requested is not available.')
113  );
114  }
115  try {
116  $instance = $this->paymentData->getMethodInstance($this->getMethod());
117  } catch (\UnexpectedValueException $e) {
118  $instance = $this->paymentData->getMethodInstance(Substitution::CODE);
119  }
120  $instance->setInfoInstance($this);
121  $this->setMethodInstance($instance);
122  }
123  return $this->getData('method_instance');
124  }
125 
132  public function encrypt($data)
133  {
134  return $this->encryptor->encrypt($data);
135  }
136 
143  public function decrypt($data)
144  {
145  return $this->encryptor->decrypt($data);
146  }
147 
158  public function setAdditionalInformation($key, $value = null)
159  {
160  if (is_object($value)) {
161  throw new \Magento\Framework\Exception\LocalizedException(__('The payment disallows storing objects.'));
162  }
163  $this->initAdditionalInformation();
164  if (is_array($key) && $value === null) {
165  $this->additionalInformation = $key;
166  } else {
167  $this->additionalInformation[$key] = $value;
168  }
169  return $this->setData('additional_information', $this->additionalInformation);
170  }
171 
178  public function getAdditionalInformation($key = null)
179  {
180  $this->initAdditionalInformation();
181  if (null === $key) {
183  }
184  return isset($this->additionalInformation[$key]) ? $this->additionalInformation[$key] : null;
185  }
186 
193  public function unsAdditionalInformation($key = null)
194  {
195  if ($key && isset($this->additionalInformation[$key])) {
196  unset($this->additionalInformation[$key]);
197  return $this->setData('additional_information', $this->additionalInformation);
198  } elseif (null === $key) {
199  $this->additionalInformation = [];
200  return $this->unsetData('additional_information');
201  }
202 
203  return $this;
204  }
205 
212  public function hasAdditionalInformation($key = null)
213  {
214  $this->initAdditionalInformation();
215  return null === $key ? !empty($this->additionalInformation) : array_key_exists(
216  $key,
217  $this->additionalInformation
218  );
219  }
220 
227  protected function initAdditionalInformation()
228  {
229  $additionalInfo = $this->getData('additional_information');
230  if (empty($this->additionalInformation) && $additionalInfo) {
231  $this->additionalInformation = $additionalInfo;
232  }
233  }
234 }
getData($key='', $index=null)
Definition: Info.php:82
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
__()
Definition: __.php:13
$resource
Definition: bulk.php:12
__construct(\Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory, \Magento\Payment\Helper\Data $paymentData, \Magento\Framework\Encryption\EncryptorInterface $encryptor, \Magento\Framework\Model\ResourceModel\AbstractResource $resource=null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection=null, array $data=[])
Definition: Info.php:51
$value
Definition: gender.phtml:16
$index
Definition: list.phtml:44
setAdditionalInformation($key, $value=null)
Definition: Info.php:158