Beispiel #1
0
 /**
  * Init cards data
  *
  * @return void
  */
 protected function _initCards()
 {
     $paymentCardsInformation = $this->_payment->getAdditionalInformation(self::CARDS_NAMESPACE);
     if ($paymentCardsInformation) {
         $additionalInfo = $this->_payment->getAdditionalInformation();
         unset($additionalInfo[self::CARDS_NAMESPACE]);
         foreach ($paymentCardsInformation as $cardId => $data) {
             $paymentCardsInformation[$cardId]['additional_information'] = $additionalInfo;
         }
         $this->_cards = $paymentCardsInformation;
     }
 }
Beispiel #2
0
 public function testGetAdditionalInformationByKey()
 {
     $key = 'key';
     $value = 'value';
     $this->info->setAdditionalInformation($key, $value);
     $this->assertEquals($value, $this->info->getAdditionalInformation($key));
 }
Beispiel #3
0
 /**
  * Render info item
  *
  * @param array $keys
  * @param \Magento\Payment\Model\Info $payment
  * @param bool $labelValuesOnly
  * @return array
  */
 protected function _getFullInfo(array $keys, \Magento\Payment\Model\Info $payment, $labelValuesOnly)
 {
     $result = array();
     foreach ($keys as $key) {
         if (!isset($this->_paymentMapFull[$key])) {
             $this->_paymentMapFull[$key] = array();
         }
         if (!isset($this->_paymentMapFull[$key]['label'])) {
             if (!$payment->hasAdditionalInformation($key)) {
                 $this->_paymentMapFull[$key]['label'] = false;
                 $this->_paymentMapFull[$key]['value'] = false;
             } else {
                 $value = $payment->getAdditionalInformation($key);
                 $this->_paymentMapFull[$key]['label'] = $this->_getLabel($key);
                 $this->_paymentMapFull[$key]['value'] = $this->_getValue($value, $key);
             }
         }
         if (!empty($this->_paymentMapFull[$key]['value'])) {
             if ($labelValuesOnly) {
                 $result[$this->_paymentMapFull[$key]['label']] = $this->_paymentMapFull[$key]['value'];
             } else {
                 $result[$key] = $this->_paymentMapFull[$key];
             }
         }
     }
     return $result;
 }
Beispiel #4
0
 /**
  * If gateway actions are locked return true
  *
  * @param  \Magento\Payment\Model\Info $payment
  * @return bool
  */
 protected function _isGatewayActionsLocked($payment)
 {
     return $payment->getAdditionalInformation($this->_isGatewayActionsLockedKey);
 }
Beispiel #5
0
 /**
  * Check whether can do payment review
  *
  * @param \Magento\Payment\Model\Info $payment
  * @return bool
  */
 public function canReviewPayment(\Magento\Payment\Model\Info $payment)
 {
     $pendingReason = $payment->getAdditionalInformation(\Magento\Paypal\Model\Info::PENDING_REASON_GLOBAL);
     return $this->_isPaymentReviewRequired($payment) && $pendingReason != \Magento\Paypal\Model\Info::PAYMENTSTATUS_REVIEW;
 }
Beispiel #6
0
 /**
  * Submit RP to the gateway
  *
  * @param RecurringPayment $payment
  * @param PaymentInfo $paymentInfo
  * @return void
  */
 public function submit(RecurringPayment $payment, PaymentInfo $paymentInfo)
 {
     $token = $paymentInfo->getAdditionalInformation(PayPalExpress\Checkout::PAYMENT_INFO_TRANSPORT_TOKEN);
     $payment->setToken($token);
     $api = $this->_paymentMethod->getApi();
     \Magento\Framework\Object\Mapper::accumulateByMap($payment, $api, array('token', 'subscriber_name', 'start_datetime', 'internal_reference_id', 'schedule_description', 'suspension_threshold', 'bill_failed_later', 'period_unit', 'period_frequency', 'period_max_cycles', 'billing_amount' => 'amount', 'trial_period_unit', 'trial_period_frequency', 'trial_period_max_cycles', 'trial_billing_amount', 'currency_code', 'shipping_amount', 'tax_amount', 'init_amount', 'init_may_fail'));
     $api->callCreateRecurringPayment();
     $payment->setReferenceId($api->getRecurringPaymentId());
     if ($api->getIsPaymentActive()) {
         $payment->setState(States::ACTIVE);
     } elseif ($api->getIsPaymentPending()) {
         $payment->setState(States::PENDING);
     }
 }
Beispiel #7
0
 public function testInitAdditionalInformationWithUnserialize()
 {
     $data = serialize(['key1' => 'data1', 'key2' => 'data2']);
     $this->info->setData('additional_information', $data);
     $this->assertEquals(unserialize($data), $this->info->getAdditionalInformation());
 }