Beispiel #1
0
 /**
  * set payment specific request data
  *
  * @param \WirecardCEE_QPay_FrontendClient $init
  * @param \Magento\Checkout\Model\Cart $cart
  */
 protected function setAdditionalRequestData($init, $cart)
 {
     if (!$this->_dataHelper->getConfigData('options/paymenttypesortorder')) {
         return;
     }
     $blacklist = ['wirecard_checkoutpage_ccardmoto', 'wirecard_checkoutpage_invoiceb2b'];
     $map = ['TRUSTLY' => 'INSTANTBANK'];
     $paymenttypes = array();
     /* read all payment methods, regardless whether they are active or not */
     foreach ($this->_scopeConfig->getValue('payment', ScopeInterface::SCOPE_STORE, null) as $paymentCode => $data) {
         if (isset($data['model']) && isset($data['sort_order']) && $data['sort_order'] != 0) {
             /** @var AbstractPayment $paymentModel */
             if ($paymentCode == $this->getCode()) {
                 continue;
             }
             if (!preg_match('/^wirecard_checkoutpage/i', $paymentCode)) {
                 continue;
             }
             if (in_array($paymentCode, $blacklist)) {
                 continue;
             }
             /** @var AbstractMethod|null $methodModel Actually it's wrong interface */
             $paymentModel = $this->_paymentMethodFactory->create($data['model']);
             $paymentModel->setId($paymentCode);
             $paymentModel->setStore(null);
             $paymenttype = $paymentModel->getPaymentMethod();
             if (isset($map[$paymentModel->getPaymentMethod()])) {
                 $paymenttype = $map[$paymentModel->getPaymentMethod()];
             }
             $paymenttypes[$paymenttype] = $paymentModel->getConfigData('sort_order');
         }
     }
     if (count($paymenttypes)) {
         asort($paymenttypes);
         $init->setPaymenttypeSortOrder(array_keys($paymenttypes));
     }
 }