/**
  * Tests WirecardCEE_QMore_FrontendClient->getResponse()
  */
 public function testGetResponse()
 {
     $consumerData = new WirecardCEE_Stdlib_ConsumerData();
     $consumerData->setIpAddress('10.1.0.11');
     $consumerData->setUserAgent('phpUnit');
     $this->object->setAmount(100)->setCurrency('eur')->setPaymentType(WirecardCEE_QMore_PaymentType::PAYPAL)->setOrderDescription(__METHOD__)->setSuccessUrl('http://foo.bar.com/tests/confirm.php')->setCancelUrl('http://foo.bar.com/tests/confirm.php')->setFailureUrl('http://foo.bar.com/tests/confirm.php')->setServiceUrl('http://foo.bar.com/tests/confirm.php')->setConfirmUrl('http://foo.bar.com/tests/confirm.php')->setConsumerData($consumerData)->initiate();
     $oResponse = $this->object->getResponse();
     $this->assertInstanceOf('WirecardCEE_QMore_Response_Initiation', $oResponse);
     $this->assertEquals($oResponse->getStatus(), 0);
     $this->assertEmpty($oResponse->getErrors());
     $this->assertStringStartsWith('https://', $oResponse->getRedirectUrl());
 }
Esempio n. 2
0
 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;
 }