コード例 #1
0
 public function setUp()
 {
     $this->object = new WirecardBasket();
     for ($i = 0; $i < 10; $i++) {
         $_item = new WirecardCEE_Stdlib_Basket_Item("WirecardCEE_{$i}");
         $_item->setUnitGrossAmount(($i + 1) * 10)->setUnitNetAmount(($i + 1) * 8)->setUnitTaxAmount(($i + 1) * 2)->setUnitTaxRate(20.0)->setDescription("UnitTesting Description {$i}")->setName("UnitTesting Name {$i}")->setImageUrl("http://example.com/picture.png");
         $this->object->addItem($_item);
     }
 }
コード例 #2
0
 /**
  * Adds item to the basket
  *
  * @param WirecardCEE_Stdlib_Basket_Item $oItem
  * @param int $iQuantity
  *
  * @return WirecardCEE_Stdlib_Basket
  */
 public function addItem(WirecardCEE_Stdlib_Basket_Item $oItem, $iQuantity = 1)
 {
     $_mArticleNumber = $oItem->getArticleNumber();
     $_quantity = $this->_getItemQuantity($_mArticleNumber);
     if (!$_quantity) {
         $this->_items[md5($_mArticleNumber)] = array('instance' => $oItem, self::QUANTITY => $iQuantity);
     } else {
         $this->_increaseQuantity($_mArticleNumber, $iQuantity);
     }
     return $this;
 }
コード例 #3
0
 /**
  * Creates a valid shopping basket.
  *
  * @return WirecardCEE_Stdlib_Basket
  */
 private function getValidBasket()
 {
     $basketItem = new WirecardCEE_Stdlib_Basket_Item('WirecardCEETestItem');
     $basketItem->setUnitGrossAmount(10)->setUnitNetAmount(8)->setUnitTaxAmount(2)->setUnitTaxRate(20.0)->setDescription('unittest description')->setName('unittest name')->setImageUrl('http://example.com/picture.png');
     $basket = new WirecardCEE_Stdlib_Basket();
     $basket->addItem($basketItem);
     return $basket;
 }
コード例 #4
0
ファイル: Abstract.php プロジェクト: wirecard/magento-wcs
 public function initPayment($storageId, $orderIdent)
 {
     $order = $this->getOrder();
     /** @var Wirecard_CheckoutSeamless_Helper_Data $helper */
     $helper = Mage::helper('wirecard_checkoutseamless');
     $precision = 2;
     $returnUrl = Mage::getUrl('wirecard_checkoutseamless/processing/return', array('_secure' => true, '_nosid' => true));
     $init = new WirecardCEE_QMore_FrontendClient($helper->getConfigArray());
     $init->setPluginVersion($helper->getPluginVersion());
     $init->setConfirmUrl(Mage::getUrl('wirecard_checkoutseamless/processing/confirm', array('_secure' => true, '_nosid' => true)));
     $init->setOrderReference(sprintf('%010d', $this->getOrder()->getRealOrderId()));
     if (strlen($storageId)) {
         $init->setStorageId($storageId);
     }
     if (strlen($orderIdent)) {
         $init->setOrderIdent($orderIdent);
     }
     if ($helper->getConfigData('options/sendconfirmationemail')) {
         $init->setConfirmMail(Mage::getStoreConfig('trans_email/ident_general/email'));
     }
     if (strlen($this->getFinancialInstitution())) {
         $init->setFinancialInstitution($this->getFinancialInstitution());
     }
     $paymenttype = $this->_paymentMethod;
     $init->setAmount(round($this->getOrder()->getBaseGrandTotal(), 2))->setCurrency($this->getOrder()->getBaseCurrencyCode())->setPaymentType($paymenttype)->setOrderDescription($this->getUserDescription())->setSuccessUrl($returnUrl)->setPendingUrl($returnUrl)->setCancelUrl($returnUrl)->setFailureUrl($returnUrl)->setServiceUrl($helper->getConfigData('options/serviceurl'))->setConsumerData($this->_getConsumerData());
     // XXX ToDo setWindowName
     $init->mage_orderId = $this->getOrder()->getRealOrderId();
     $init->generateCustomerStatement($helper->getConfigData('options/shopname'));
     if ($helper->getConfigData('options/sendbasketinformation') || $this->_paymentMethod == WirecardCEE_Stdlib_PaymentTypeAbstract::INSTALLMENT && $this->getConfigData('provider') == 'ratepay' || $this->_paymentMethod == WirecardCEE_Stdlib_PaymentTypeAbstract::INVOICE && $this->getConfigData('provider') == 'ratepay') {
         $basket = new WirecardCEE_Stdlib_Basket();
         $basket->setCurrency($this->getOrder()->getBaseCurrencyCode());
         foreach ($order->getAllVisibleItems() as $item) {
             /** @var Mage_Sales_Model_Order_Item $item */
             $bitem = new WirecardCEE_Stdlib_Basket_Item();
             $bitem->setDescription($item->getProduct()->getName());
             $bitem->setArticleNumber($item->getSku());
             $bitem->setUnitPrice(number_format($item->getPrice(), $precision, '.', ''));
             $bitem->setTax(number_format($item->getTaxAmount(), $precision, '.', ''));
             $basket->addItem($bitem, (int) $item->getQtyOrdered());
             $helper->log(print_r($bitem, true));
         }
         $bitem = new WirecardCEE_Stdlib_Basket_Item();
         $bitem->setArticleNumber('shipping');
         $bitem->setUnitPrice(number_format($order->getShippingAmount(), $precision, '.', ''));
         $bitem->setTax(number_format($order->getShippingTaxAmount(), $precision, '.', ''));
         $bitem->setDescription($order->getShippingDescription());
         $basket->addItem($bitem);
         foreach ($basket->__toArray() as $k => $v) {
             $init->{$k} = $v;
         }
     }
     $helper->log(__METHOD__ . ':' . print_r($init->getRequestData(), true), Zend_Log::INFO);
     try {
         $initResponse = $init->initiate();
     } catch (Exception $e) {
         $helper->log(__METHOD__ . ':' . $e->getMessage(), Zend_Log::ERR);
         $message = $helper->__('An error occurred during the payment process');
         throw new Exception($message);
     }
     if ($initResponse->getStatus() == WirecardCEE_QMore_Response_Initiation::STATE_FAILURE) {
         $msg = array();
         foreach ($initResponse->getErrors() as $error) {
             $msg[] = $error->getConsumerMessage();
         }
         if (!count($msg)) {
             // dont show technical error to consumer
             $message = $helper->__('An error occurred during the payment process');
         } else {
             $message = implode("<br/>\n", $msg);
         }
         $helper->log(__METHOD__ . ':' . $message, Zend_Log::ERR);
         throw new Exception($message);
     }
     return $initResponse;
 }
コード例 #5
0
 /**
  * Init payment, server2server
  *
  * @param CheckoutCart $cart
  * @param $urls
  * @param \Magento\Framework\DataObject $data
  *
  * @return \WirecardCEE_QPay_Response_Initiation
  * @throws \Exception
  */
 public function initPaymentByCart(CheckoutCart $cart, $urls, \Magento\Framework\DataObject $data)
 {
     $quote = $cart->getQuote();
     $init = new \WirecardCEE_QPay_FrontendClient($this->_dataHelper->getConfigArray());
     $init->setPluginVersion($this->_dataHelper->getPluginVersion());
     $init->setConfirmUrl($urls['confirm']);
     $quote->reserveOrderId();
     $quote->save();
     $orderId = $quote->getReservedOrderId();
     $init->setOrderReference(sprintf('%010d', $orderId));
     $init->uniqueId = $this->_getUniqueId($cart);
     $init->setAmount(round($cart->getQuote()->getBaseGrandTotal(), $this->_dataHelper->getPrecision()))->setCurrency($quote->getCurrency()->getBaseCurrencyCode())->setPaymentType($this->_paymentMethod)->setOrderDescription($this->getUserDescription($quote))->setSuccessUrl($urls['return'])->setPendingUrl($urls['return'])->setCancelUrl($urls['return'])->setFailureUrl($urls['return'])->createConsumerMerchantCrmId($quote->getCustomerEmail())->setServiceUrl($this->_dataHelper->getConfigData('options/service_url'))->setConsumerData($this->_getConsumerData($quote))->setMaxRetries($this->_dataHelper->getConfigData('options/maxretries'));
     $init->mage_orderId = $orderId;
     $init->mage_quoteId = $quote->getId();
     $init->mage_orderCreation = $this->_dataHelper->getConfigData('options/order_creation');
     $init->generateCustomerStatement($this->_dataHelper->getConfigData('options/shopname'), sprintf('%010d', $orderId));
     if ($this->_dataHelper->getConfigData('options/sendbasketinformation') || $this->forceSendingBasket()) {
         $basket = new \WirecardCEE_Stdlib_Basket();
         $basket->setCurrency($quote->getBaseCurrencyCode());
         foreach ($quote->getAllVisibleItems() as $item) {
             /** @var \Magento\Quote\Model\Quote\Item $item */
             $bitem = new \WirecardCEE_Stdlib_Basket_Item();
             $bitem->setDescription($item->getProduct()->getName());
             $bitem->setArticleNumber($item->getSku());
             $bitem->setUnitPrice(number_format($item->getPrice(), $this->_dataHelper->getPrecision(), '.', ''));
             $bitem->setTax(number_format($item->getTaxAmount(), $this->_dataHelper->getPrecision(), '.', ''));
             $basket->addItem($bitem, (int) $item->getQty());
         }
         $bitem = new \WirecardCEE_Stdlib_Basket_Item();
         $bitem->setArticleNumber('shipping');
         $bitem->setUnitPrice(number_format($quote->getShippingAddress()->getShippingAmount(), $this->_dataHelper->getPrecision(), '.', ''));
         $bitem->setTax(number_format($quote->getShippingAddress()->getShippingTaxAmount(), $this->_dataHelper->getPrecision(), '.', ''));
         $bitem->setDescription($quote->getShippingAddress()->getShippingDescription());
         $basket->addItem($bitem);
         foreach ($basket->__toArray() as $k => $v) {
             $init->{$k} = $v;
         }
     }
     if ($this->_dataHelper->getConfigData('options/sendconfirmationemail')) {
         $init->setConfirmMail($this->_dataHelper->getStoreConfigData('trans_email/ident_general/email'));
     }
     if (strlen($this->_dataHelper->getConfigData('options/bgcolor'))) {
         $init->setBackgroundColor($this->_dataHelper->getConfigData('options/bgcolor'));
     }
     if (strlen($this->_dataHelper->getConfigData('options/displaytext'))) {
         $init->setDisplayText($this->_dataHelper->getConfigData('options/displaytext'));
     }
     if (strlen($this->_dataHelper->getConfigData('options/imageurl'))) {
         $init->setImageUrl($this->_dataHelper->getConfigData('options/imageurl'));
     }
     if (strlen($this->_dataHelper->getConfigData('options/layout'))) {
         $init->setLayout($this->_dataHelper->getConfigData('options/layout'));
     }
     if ($this->_dataHelper->getConfigData('options/autodeposit') && $this->_autoDepositAllowed) {
         $init->setAutoDeposit(true);
     }
     if ($this->_dataHelper->getConfigData('options/duplicaterequestcheck')) {
         $init->setDuplicateRequestCheck($this->_dataHelper->getConfigData('options/duplicaterequestcheck'));
     }
     if ($this->_dataHelper->getConfigData('options/mobiledetect')) {
         $detect = new \WirecardCEE_QPay_MobileDetect();
         if ($detect->isTablet()) {
             $layout = 'TABLET';
         } elseif ($detect->isMobile()) {
             $layout = 'SMARTPHONE';
         } else {
             $layout = 'DESKTOP';
         }
         $init->setLayout($layout);
     }
     if (strlen($data->getData('financialInstitution'))) {
         $init->setFinancialInstitution($data->getData('financialInstitution'));
     }
     $init->iframeUsed = $this->getDisplayMode() != 'redirect';
     $init->quoteHash = $this->_dataHelper->calculateQuoteChecksum($quote);
     $this->setAdditionalRequestData($init, $cart);
     $this->_logger->debug(__METHOD__ . ':' . print_r($init->getRequestData(), true));
     try {
         $initResponse = $init->initiate();
     } catch (\Exception $e) {
         $this->_logger->debug(__METHOD__ . ':' . $e->getMessage());
         throw new $e();
     }
     if ($initResponse->getStatus() == \WirecardCEE_QPay_Response_Initiation::STATE_FAILURE) {
         $error = $initResponse->getError();
         $message = $this->_dataHelper->__('An error occurred during the payment process');
         if ($error !== false) {
             if (strlen($error->getConsumerMessage())) {
                 $message = $error->getConsumerMessage();
             }
             $this->_logger->debug(__METHOD__ . ':' . $error->getMessage());
         }
         throw new \Exception($message);
     }
     return $initResponse;
 }