/** * * @param Mage_Customer_Model_Customer $customer * @param Allopass_Hipay_Model_Api_Response_Gateway $response * @param boolean $isRecurring */ public function responseToCustomer($customer, $response, $isRecurring = false) { $paymentMethod = $response->getPaymentMethod(); $paymentProduct = $response->getPaymentProduct(); $token = isset($paymentMethod['token']) ? $paymentMethod['token'] : $response->getData('cardtoken'); if ($isRecurring) { $customer->setHipayAliasRecurring($token); } else { $customer->setHipayAliasOneclick($token); } if (isset($paymentMethod['card_expiry_month']) && $paymentMethod['card_expiry_year']) { $customer->setHipayCcExpDate($paymentMethod['card_expiry_month'] . "-" . $paymentMethod['card_expiry_year']); } else { $customer->setHipayCcExpDate(substr($response->getData('cardexpiry'), 4, 2) . "-" . substr($response->getData('cardexpiry'), 0, 4)); } $customer->setHipayCcNumberEnc(isset($paymentMethod['pan']) ? $paymentMethod['pan'] : $response->getData('cardpan')); //$customer->setHipayCcType(isset($paymentMethod['brand']) ? strtolower($paymentMethod['brand']) : strtolower($response->getData('cardbrand'))); $customer->setHipayCcType($paymentProduct); $customer->getResource()->saveAttribute($customer, 'hipay_alias_oneclick'); $customer->getResource()->saveAttribute($customer, 'hipay_cc_exp_date'); $customer->getResource()->saveAttribute($customer, 'hipay_cc_number_enc'); $customer->getResource()->saveAttribute($customer, 'hipay_cc_type'); return $this; }
/** * * @param Allopass_Hipay_Model_Api_Response_Gateway $gatewayResponse * @param Mage_Sales_Model_Order_Payment $payment * @param float $amount */ public function processResponseToRedirect($gatewayResponse, $payment, $amount) { $order = $payment->getOrder(); $customer = Mage::getModel('customer/customer')->load($order->getCustomerId()); switch ($this->getConfigPaymentAction()) { case Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE: $requestType = self::OPERATION_AUTHORIZATION; $newTransactionType = Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH; $defaultExceptionMessage = Mage::helper('hipay')->__('Payment authorization error.'); break; case Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE: $requestType = self::OPERATION_SALE; $newTransactionType = Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE; $defaultExceptionMessage = Mage::helper('hipay')->__('Payment capturing error.'); break; } $urlAdmin = Mage::getUrl('adminhtml/sales_order/index'); if (Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/view')) { $urlAdmin = Mage::getUrl('adminhtml/sales_order/view', array('order_id' => $order->getId())); } switch ($gatewayResponse->getState()) { case self::STATE_COMPLETED: return $this->isAdmin() ? $urlAdmin : Mage::getUrl('checkout/onepage/success'); case self::STATE_FORWARDING: $payment->setIsTransactionPending(1); $order->save(); return $gatewayResponse->getForwardUrl(); case self::STATE_PENDING: if ($this->getConfigData('re_add_to_cart')) { $this->getHelper()->reAddToCart($order->getIncrementId()); } return $this->isAdmin() ? $urlAdmin : Mage::getUrl($this->getConfigData('pending_redirect_page')); case self::STATE_DECLINED: if ($this->getConfigData('re_add_to_cart')) { $this->getHelper()->reAddToCart($order->getIncrementId()); } return $this->isAdmin() ? $urlAdmin : Mage::getUrl('checkout/onepage/failure'); case self::STATE_ERROR: default: if ($this->getConfigData('re_add_to_cart')) { $this->getHelper()->reAddToCart($order->getIncrementId()); } $this->_getCheckout()->setErrorMessage($defaultExceptionMessage); return $this->isAdmin() ? $urlAdmin : Mage::getUrl('checkout/onepage/failure'); } }