protected function _placeOrder(Mage_Sales_Model_Order_Payment $payment, $amount)
 {
     if (!Mage::helper('imagecc')->isActive()) {
         return parent::_placeOrder($payment, $amount);
     }
     $order = $payment->getOrder();
     $api = $this->_pro->getApi()->setPaymentAction($this->_pro->getConfig()->paymentAction)->setIpAddress(Mage::app()->getRequest()->getClientIp(false))->setAmount($amount)->setCurrencyCode($order->getOrderCurrencyCode())->setInvNum($order->getIncrementId())->setEmail($order->getCustomerEmail())->setNotifyUrl(Mage::getUrl('paypal/ipn/'))->setCreditCardType($payment->getCcType())->setCreditCardNumber($payment->getCcNumber())->setCreditCardExpirationDate($this->_getFormattedCcExpirationDate($payment->getCcExpMonth(), $payment->getCcExpYear()))->setCreditCardCvv2($payment->getCcCid())->setMaestroSoloIssueNumber($payment->getCcSsIssue());
     if ($payment->getCcSsStartMonth() && $payment->getCcSsStartYear()) {
         $year = sprintf('%02d', substr($payment->getCcSsStartYear(), -2, 2));
         $api->setMaestroSoloIssueDate($this->_getFormattedCcExpirationDate($payment->getCcSsStartMonth(), $year));
     }
     if ($this->getIsCentinelValidationEnabled()) {
         $this->getCentinelValidator()->exportCmpiData($api);
     }
     // add shipping and billing addresses
     if ($order->getIsVirtual()) {
         $api->setAddress($order->getBillingAddress())->setSuppressShipping(true);
     } else {
         $api->setAddress($order->getShippingAddress());
         $api->setBillingAddress($order->getBillingAddress());
     }
     // add line items
     $api->setPaypalCart(Mage::getModel('paypal/cart', array($order)))->setIsLineItemsEnabled($this->_pro->getConfig()->lineItemsEnabled);
     // call api and import transaction and other payment information
     $api->callDoDirectPayment();
     $this->_importResultToPayment($api, $payment);
     try {
         $api->callGetTransactionDetails();
     } catch (Mage_Core_Exception $e) {
         // if we recieve errors, but DoDirectPayment response is Success, then set Pending status for transaction
         $payment->setIsTransactionPending(true);
     }
     $this->_importResultToPayment($api, $payment);
     return $this;
 }
Example #2
0
 public function authorize(Varien_Object $payment, $amount)
 {
     if (AW_Sarp_Model_Subscription::isIterating()) {
         $Subscription = AW_Sarp_Model_Subscription::getInstance()->processPayment($payment->getOrder());
         return $this;
     }
     return parent::authorize($payment, $amount);
 }
Example #3
0
 /**
  * Merchant country limitation for 3d secure feature, rewrite for parent implementation
  *
  * @return bool
  */
 public function getIsCentinelValidationEnabled()
 {
     if (!parent::getIsCentinelValidationEnabled()) {
         return false;
     }
     // available only for US and UK merchants
     if (in_array($this->_pro->getConfig()->getMerchantCountry(), array('US', 'GB'))) {
         return true;
     }
     return false;
 }
Example #4
0
 /**
  * Store id setter, also set storeId to helper
  *
  * @param int $store
  */
 public function setStore($store)
 {
     $this->setData('store', $store);
     Mage::helper('enterprise_pbridge')->setStoreId(is_object($store) ? $store->getId() : $store);
     parent::setStore($store);
     return $this;
 }