/** * Instantiate state and set it to state object * * @param string $paymentAction * @param Varien_Object $stateObject */ public function initialize($paymentAction, $stateObject) { $stateObject->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT); $stateObject->setStatus('pending_payment'); $stateObject->setIsNotified(false); $stateObject->save(); }
public function order(Varien_Object $payment, $amount) { $order = $payment->getOrder(); $order_id = $order->getId(); $order_increment_id = $order->getIncrementId(); $store_id = $order->getStoreId(); $ccType = $payment->getCcType(); // reorder $reorder_increment_id = explode('-', $order_increment_id); // reorder $order_increment_id = $reorder_increment_id[0]; $order_suffix_id = @$reorder_increment_id[1]; $expiration = strtotime('+' . $this->_getStoreConfig($ccType, 'expiration') . 'days'); $transaction_expiration = date('Y-m-d', $expiration); $increment = $this->_getStoreConfig('slips', 'order_id_increment'); $order_increment_prefix = $this->_getOrderIncrementPrefix($store_id); $number = $order_increment_id - $order_increment_prefix; if (!empty($order_suffix_id)) { $number *= pow(10, strlen($order_suffix_id)); $number += $order_suffix_id; } $number += $increment; $data = array('order_id' => $order_id, 'amount' => $amount, 'expiration' => $transaction_expiration, 'number' => $number); $result = Mage::getModel('utils/sql')->insert('gamuza_slips_transactions', $data); if (!$result) { Mage::throwException(Mage::helper('slips')->__('Unable to save the Slip and Deposit informations. Please verify your database.')); } $this->setStore($payment->getOrder()->getStoreId()); $payment->setAmount($amount); $payment->setLastTransId($order_id); $payment->setStatus(self::STATUS_APPROVED); return $this; }
/** * Return response object * * @return Varien_Object */ protected function _prepareResponseObject() { $responseObject = new Varien_Object(); $responseObject->setStatus(false); $responseObject->setResponse(null); $responseObject->setMessage(null); return $responseObject; }
/** * Instantiate state and set it to state object * * @param string $paymentAction * @param Varien_Object $stateObject * @SuppressWarnings("unused") */ public function initialize($action, $stateObject) { if ($status = $this->getConfigData('order_status')) { $stateObject->setStatus($status); $state = $this->_getAssignedState($status); $stateObject->setState($state); $stateObject->setIsNotified(true); } return $this; }
/** * set the state and status of order * will be executed instead of authorize() * * @param string $paymentAction * @param Varien_Object $stateObject * @return Paymentnetwork_Pnsofortueberweisung_Model_Pnsofort */ public function initialize($paymentAction, $stateObject) { $holdingStatus = Mage::getStoreConfig('payment/sofort/pnsofort_order_status_holding', $this->getStore()); if ($holdingStatus == 'unchanged') { return $this; } $stateObject->setState(Mage_Sales_Model_Order::STATE_HOLDED); $stateObject->setStatus($holdingStatus); $stateObject->setIsNotified(false); return $this; }
/** * Capture payment method * * @param Varien_Object $payment * @param float $amount * * @return Iways_PayPalPlus_Model_Payment */ public function authorize(Varien_Object $payment, $amount) { $paymentId = Mage::app()->getRequest()->getParam('paymentId'); $payerId = Mage::app()->getRequest()->getParam('PayerID'); $ppPayment = Mage::getModel('iways_paypalplus/api')->executePayment($paymentId, $payerId); Mage::getSingleton('customer/session')->setPayPalPaymentId(null); Mage::getSingleton('customer/session')->setPayPalPaymentPatched(null); if (!$ppPayment) { throw new Exception('Payment could not be executed.'); } $payment->setTransactionId($ppPayment->getId()); if ($ppPayment->getState() == self::PPP_STATUS_APPROVED) { $payment->setStatus(self::STATUS_APPROVED); } return $this; }
/** * Instantiate state and set it to state object * * @param string $paymentAction * @param Varien_Object $stateObject */ public function initialize($paymentAction, $stateObject) { $stateObject->setData('payment_action', $paymentAction); $stateObject->setState(MageOrder::STATE_PENDING_PAYMENT); $stateObject->setStatus('pending_payment'); $stateObject->setIsNotified(false); $stateObject->save(); if (empty($this->_code)) { throw new RuntimeException('Internal model code must be setted'); } if (empty($this->_formBlockType)) { throw new RuntimeException('Name for the block with additional payment method information must be setted'); } if (empty($this->_initialApiMethod)) { throw new RuntimeException('Initial API method for model payment flow must be setted'); } }
protected function _prepareCollection() { /** @var $connector Smile_DigitalOceanManager_Model_Connector*/ $connector = Mage::getModel('digitaloceanmanager/connector'); $droplets = $connector->getDropletList(); $collection = new Varien_Data_Collection(); foreach ($droplets as $droplet) { $obj = new Varien_Object(); $obj->setId($droplet->id); $obj->setName($droplet->name); $obj->setVcpus($droplet->vcpus); $obj->setMemory($droplet->memory); $obj->setDisk($droplet->disk); $obj->setStatus($droplet->status); $obj->setRegion($droplet->region->name); $collection->addItem($obj); } $this->setCollection($collection); return parent::_prepareCollection(); }
/** * Capture payment * * @param Varien_Object $orderPayment * @return Mage_Payment_Model_Abstract */ public function capture(Varien_Object $payment, $amount) { $payment->setStatus(self::STATUS_APPROVED)->setLastTransId($this->getTransactionId()); return $this; }
/** * Capture preatutharized amount * @param Varien_Object $payment * @param <type> $amount */ public function capture(Varien_Object $payment, $amount) { if (!$this->canCapture()) { return $this; } if (Mage::app()->getRequest()->getParam('transId')) { // Capture is called from response action $payment->setStatus(self::STATUS_APPROVED); return $this; } }
/** * Authorize or Capture payment * * @param Varien_Object|Mage_Sales_Model_Order_Payment $payment * @param float $amount * @param bool $capture * @return $this */ private function _authorize(Varien_Object $payment, $amount, $capture) { $order = $payment->getOrder(); /* @var $order Mage_Sales_Model_Order */ $multiToken = false; $cardData = null; $additionalData = new Varien_Object($payment->getAdditionalData() ? unserialize($payment->getAdditionalData()) : null); $secureToken = $additionalData->getSecuresubmitToken() ? $additionalData->getSecuresubmitToken() : null; $saveCreditCard = !!(bool) $additionalData->getCcSaveFuture(); $customerId = $additionalData->getCustomerId(); if ($saveCreditCard) { $multiToken = true; $cardData = new HpsCreditCard(); $cardData->number = $payment->getCcLast4(); $cardData->expYear = $payment->getCcExpYear(); $cardData->expMonth = $payment->getCcExpMonth(); } $chargeService = $this->_getChargeService(); $cardHolder = $this->_getCardHolderData($order); $details = $this->_getTxnDetailsData($order); $cardOrToken = new HpsTokenData(); $cardOrToken->tokenValue = $secureToken; try { if ($capture) { if ($payment->getCcTransId()) { $response = $chargeService->capture($payment->getCcTransId(), $amount); } else { $response = $chargeService->charge($amount, strtolower($order->getBaseCurrencyCode()), $cardOrToken, $cardHolder, $multiToken, $details); } } else { $response = $chargeService->authorize($amount, strtolower($order->getBaseCurrencyCode()), $cardOrToken, $cardHolder, $multiToken, $details); } $this->_debugChargeService($chargeService); $payment->setStatus(self::STATUS_APPROVED); $payment->setAmount($amount); $payment->setLastTransId($response->transactionId); $payment->setCcTransId($response->transactionId); $payment->setTransactionId($response->transactionId); $payment->setIsTransactionClosed(0); if ($multiToken) { $tokenData = $response->tokenData; /* @var $tokenData HpsTokenData */ if ($tokenData->responseCode == '0') { if ($customerId > 0) { Mage::helper('hps_securesubmit')->saveMultiToken($response->tokenData->tokenValue, $cardData, $response->cardType, $customerId); } else { Mage::helper('hps_securesubmit')->saveMultiToken($response->tokenData->tokenValue, $cardData, $response->cardType); } } else { Mage::log('Requested multi token has not been generated for the transaction # ' . $response->transactionId, Zend_Log::WARN); } } } catch (HpsCreditException $e) { Mage::logException($e); $this->_debugChargeService($chargeService, $e); $payment->setStatus(self::STATUS_DECLINED); $this->throwUserError($e->getMessage(), $e->resultText, TRUE); } catch (HpsException $e) { $this->_debugChargeService($chargeService, $e); $payment->setStatus(self::STATUS_ERROR); $this->throwUserError($e->getMessage(), NULL, TRUE); } catch (Exception $e) { $this->_debugChargeService($chargeService, $e); Mage::logException($e); $payment->setStatus(self::STATUS_ERROR); $this->throwUserError($e->getMessage()); } return $this; }
public function createOrder(Varien_Object $payment, $amount, $authorize) { $store_id = Mage::app()->getStore()->getStoreId(); $logger = Mage::helper('worldpay/logger'); if ($payment->getOrder()) { $orderId = $payment->getOrder()->getIncrementId(); $order = $payment->getOrder(); } else { $quote = $payment->getQuote(); $orderId = $quote->getReservedOrderId(); $quote->save(); } $session = Mage::getSingleton('core/session'); $token = $session->getData('payment_token'); $savedCard = $session->getData('saved_card'); $logger->log('Begin create order'); $session->setData('wp_3dsSuccess', false); $session->setData('wp_orderCode', false); $worldpay = $this->setupWorldpay(); $checkout = Mage::getSingleton('checkout/session')->getQuote(); $billing = $checkout->getBillingAddress(); $order_description = Mage::getStoreConfig('payment/worldpay/description', $store_id); if (!$order_description) { $order_description = "Order"; } $currency_code = Mage::app()->getStore()->getCurrentCurrencyCode(); $name = $billing->getName(); $billing_address = array("address1" => $billing->getStreet(1), "address2" => $billing->getStreet(2), "address3" => $billing->getStreet(3), "postalCode" => $billing->getPostcode(), "city" => $billing->getCity(), "state" => "", "countryCode" => $billing->getCountry()); try { $mode = Mage::getStoreConfig('payment/worldpay_mode', Mage::app()->getStore()->getStoreId()); $settlementCurrency = Mage::getStoreConfig('payment/worldpay/settlementcurrency', Mage::app()->getStore()->getStoreId()); $createOrderRequest = array('token' => $token, 'orderDescription' => $order_description, 'amount' => $amount * 100, 'currencyCode' => $currency_code, 'name' => $name, 'billingAddress' => $billing_address, 'customerOrderCode' => $orderId, 'settlementCurrency' => $settlementCurrency, 'successUrl' => Mage::getUrl('worldpay/apm/success', array('_secure' => true)), 'pendingUrl' => Mage::getUrl('worldpay/apm/pending', array('_secure' => true)), 'failureUrl' => Mage::getUrl('worldpay/apm/failure', array('_secure' => true)), 'cancelUrl' => Mage::getUrl('worldpay/apm/cancel', array('_secure' => true))); $logger->log('Order Request: ' . print_r($createOrderRequest, true)); $response = $worldpay->createApmOrder($createOrderRequest); $logger->log('Order Response: ' . print_r($response, true)); if ($response['paymentStatus'] === 'SUCCESS') { $this->setStore($payment->getOrder()->getStoreId()); $logger->log('Order: ' . $response['orderCode'] . ' SUCCESS'); $payment->setStatus(self::STATUS_APPROVED); $payment->setAmount($amount); $payment->setLastTransId($orderId); $payment->setTransactionId($response['orderCode']); $payment->setAdditionalInformation("worldpayOrderCode", $response['orderCode']); $payment->setShouldCloseParentTransaction(1)->setIsTransactionClosed(1)->registerCaptureNotification($amount); } else { if ($response['paymentStatus'] == 'PRE_AUTHORIZED') { $logger->log('Order: ' . $response['orderCode'] . ' PRE_AUTHORIZED'); $payment->setAmount($amount); $payment->setAdditionalInformation("worldpayOrderCode", $response['orderCode']); $payment->setLastTransId($orderId); $payment->setTransactionId($response['orderCode']); $payment->setIsTransactionClosed(false); $session->setData('wp_redirectURL', $response['redirectURL']); $session->setData('wp_orderCode', $response['orderCode']); } else { if (isset($response['paymentStatusReason'])) { throw new Exception($response['paymentStatusReason']); } else { throw new Exception(print_r($response, true)); } } } } catch (Exception $e) { $payment->setStatus(self::STATUS_ERROR); $payment->setAmount($amount); $payment->setLastTransId($orderId); $logger->log($e->getMessage()); Mage::throwException('Payment failed, please try again later ' . $e->getMessage()); } return $this; }
/** * Sets status to object but not for self::STATUS_ORDER_IS_CLOSED status * * @param $status * @return Enterprise_Rma_Model_Item_Status */ public function setStatus($status) { if (!$this->getSequenceStatus() || !$this->_isSpecialStatus) { $this->setSequenceStatus($status); } return parent::setStatus($status); }
/** * Camcel payment * * @param Varien_Object $payment * @return Phoenix_Moneybookers_Model_Abstract */ public function cancel(Varien_Object $payment) { $payment->setStatus(self::STATUS_DECLINED)->setTransactionId($this->getTransactionId())->setIsTransactionClosed(1); return $this; }
/** * this method is called if we are authorising AND capturing a transaction */ public function capture(Varien_Object $payment, $amount) { // throw new Exception('who calls me?'); if (preg_match('/sales_order_create/i', $_SERVER['REQUEST_URI']) && $this->getConfigData('paypage_enable') == '1') { $payment->setStatus('N/A')->setCcTransId('Litle VT')->setLastTransId('Litle VT')->setTransactionId('Litle VT')->setIsTransactionClosed(0)->setCcType('Litle VT'); return; } $this->isFromVT($payment, 'capture'); $order = $payment->getOrder(); if (!empty($order)) { $orderId = $order->getIncrementId(); $orderSource = "ecommerce"; if ($orderId > 200000000) { $orderSource = "recurring"; } $info = $this->getInfoInstance(); if (!$info->getAdditionalInformation('orderSource')) { $info->setAdditionalInformation('orderSource', $orderSource); } $amountToPass = Mage::helper('creditcard')->formatAmount($amount, true); $isPartialCapture = $amount < $order->getGrandTotal() ? 'true' : 'false'; $isSale = $payment->getCcTransId() != null ? false : true; if (!$isSale) { $hash = array('litleTxnId' => $payment->getParentTransactionId(), 'amount' => $amountToPass, 'partial' => $isPartialCapture); } else { $hash_temp = array('orderId' => $orderId, 'id' => $orderId, 'amount' => $amountToPass, 'orderSource' => $info->getAdditionalInformation('orderSource'), 'billToAddress' => $this->getBillToAddress($payment), 'shipToAddress' => $this->getAddressInfo($payment), 'enhancedData' => $this->getEnhancedData($payment)); $payment_hash = $this->creditCardOrPaypageOrToken($payment, $info); $hash = array_merge($hash_temp, $payment_hash); } $merchantData = $this->merchantData($payment); $hash_in = array_merge($hash, $merchantData); $litleRequest = new LitleOnlineRequest(); if ($isSale) { $litleResponse = $litleRequest->saleRequest($hash_in); Mage::helper('palorus')->saveCustomerInsight($payment, $litleResponse); } else { $litleResponse = $litleRequest->captureRequest($hash_in); } if (!is_null($info->getAdditionalInformation('cc_should_save'))) { $this->_saveToken($payment, $litleResponse); } } $this->processResponse($payment, $litleResponse); return $this; }
public function createOrder(Varien_Object $payment, $amount, $authorize) { $store_id = Mage::app()->getStore()->getStoreId(); if ($payment->getOrder()) { $orderId = $payment->getOrder()->getIncrementId(); } else { $orderId = $payment->getQuote()->getIncrementId(); // $order = $payment->getOrder()) } $logger = Mage::helper('worldpay/logger'); $session = Mage::getSingleton('core/session'); $token = $session->getData('payment_token'); $savedCard = $session->getData('saved_card'); $logger->log('Begin create order'); $session->setData('wp_3dsSuccess', false); $session->setData('wp_orderCode', false); $worldpay = $this->setupWorldpay(); if (Mage::app()->getStore()->isAdmin()) { $checkout = Mage::getSingleton('adminhtml/session_quote')->getQuote(); } else { $checkout = Mage::getSingleton('checkout/session')->getQuote(); } $billing = $checkout->getBillingAddress(); $order_description = Mage::getStoreConfig('payment/' . $this->_code . '/description', $store_id); if (!$order_description) { $order_description = "Order"; } $currency_code = Mage::app()->getStore()->getCurrentCurrencyCode(); $name = $billing->getName(); $billing_address = array("address1" => $billing->getStreet(1), "address2" => $billing->getStreet(2), "address3" => $billing->getStreet(3), "postalCode" => $billing->getPostcode(), "city" => $billing->getCity(), "state" => "", "countryCode" => $billing->getCountry()); try { $mode = Mage::getStoreConfig('payment/worldpay_mode', Mage::app()->getStore()->getStoreId()); $orderType = 'ECOM'; $threeDS = Mage::getStoreConfig('payment/worldpay_cc/use3ds', Mage::app()->getStore()->getStoreId()); if (Mage::app()->getStore()->isAdmin()) { $orderType = 'MOTO'; $threeDS = false; } if ($threeDS && $mode == 'Test Mode') { $name = '3D'; } $settlementCurrency = Mage::getStoreConfig('payment/worldpay_cc/settlementcurrency', Mage::app()->getStore()->getStoreId()); $createOrderRequest = array('token' => $token, 'orderDescription' => $order_description, 'amount' => $amount * 100, 'currencyCode' => $currency_code, 'name' => $name, 'orderType' => $orderType, 'is3DSOrder' => $threeDS, 'authoriseOnly' => $authorize, 'billingAddress' => $billing_address, 'customerOrderCode' => $orderId, 'settlementCurrency' => $settlementCurrency); $logger->log('Order Request: ' . print_r($createOrderRequest, true)); $response = $worldpay->createOrder($createOrderRequest); $logger->log('Order Response: ' . print_r($response, true)); if ($response['paymentStatus'] === 'SUCCESS') { $this->setStore($payment->getOrder()->getStoreId()); $logger->log('Order: ' . $response['orderCode'] . ' SUCCESS'); $payment->setStatus(self::STATUS_APPROVED); $payment->setAmount($amount); $payment->setLastTransId($orderId); $payment->setTransactionId($response['orderCode']); $payment->setAdditionalInformation("worldpayOrderCode", $response['orderCode']); // $formatedPrice = $order->getBaseCurrency()->formatTxt($amount); $payment->setShouldCloseParentTransaction(1)->setIsTransactionClosed(1)->registerCaptureNotification($amount); } else { if ($response['paymentStatus'] == 'AUTHORIZED') { $this->setStore($payment->getOrder()->getStoreId()); $logger->log('Order: ' . $response['orderCode'] . ' AUTHORIZED'); $payment->setIsTransactionClosed(0); $payment->setSkipOrderProcessing(true); $payment->setStatus(self::STATUS_APPROVED); $payment->setAmount($amount); $payment->setAdditionalInformation("worldpayOrderCode", $response['orderCode']); $payment->setLastTransId($orderId); $payment->setTransactionId($response['orderCode']); } else { if ($response['is3DSOrder']) { $session = Mage::getSingleton('core/session'); $logger->log('Starting 3DS Order: ' . $response['orderCode']); $session->setData('wp_3dsSuccess', false); $session->setData('wp_redirectURL', $response['redirectURL']); $session->setData('wp_oneTime3DsToken', $response['oneTime3DsToken']); $session->setData('wp_orderCode', $response['orderCode']); // IF normal checkout $currentUrl = Mage::helper('core/url')->getCurrentUrl(); $url = Mage::getSingleton('core/url')->parseUrl($currentUrl); $path = $url->getPath(); if (strpos($path, 'onepage') === false) { Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('worldpay/threeDS')); Mage::app()->getResponse()->sendResponse(); } else { echo 'window.WorldpayMagento.loadThreeDS("' . Mage::getUrl('worldpay/threeDS') . '")'; } exit; } else { if (isset($response['paymentStatusReason'])) { throw new Exception($response['paymentStatusReason']); } else { throw new Exception(print_r($response, true)); } } } } } catch (Exception $e) { $payment->setStatus(self::STATUS_ERROR); $payment->setAmount($amount); $payment->setLastTransId($orderId); $logger->log($e->getMessage()); Mage::throwException('Payment failed, please try again later ' . $e->getMessage()); } return $this; }
/** * Void payment * * @param Varien_Object $invoicePayment * @return Mage_Payment_Model_Abstract */ public function void(Varien_Object $payment) { $error = false; // Void is not enabled. if (!$this->getConfigData('enable_void')) { return $this; } if (in_array($payment->getAdditionalInformation(self::PAYMENTMETHOD), $this->_directPaymentMethods)) { // Do not run financial transactions on directpayment. return $this; } if (!$payment->getAdditionalInformation(self::TRANSACTION_ID)) { if (!$payment->getBbsTransactionId()) { $this->getApi()->doLog(Mage::helper('bbsnetaxept')->__('Could not find transaction id.')); return $this; } else { $bbsTransId = $payment->getBbsTransactionId(); // Make it compatible with old fashion BBSNetterminal. } } else { $bbsTransId = $payment->getAdditionalInformation(self::TRANSACTION_ID); } $order = $payment->getOrder(); $this->_useMobile = $payment->getAdditionalInformation(self::MOBILE_CLIENT) === true; if ($order->getInvoiceCollection()->count() > 0) { // Do no try to annul orders that have invoices. return $this; } $InvoiceId = $order->getIncrementId() ? $order->getIncrementId() : 'Unknown'; if ($this->getApi()->void($bbsTransId, $InvoiceId) == $bbsTransId) { $payment->setStatus(self::STATUS_SUCCESS); } else { $error = Mage::helper('bbsnetaxept')->__('Error void the payment: %s', $this->getApi()->getErrorMessage()); } if ($error !== false) { $this->getApi()->doLog($error); // Mage::throwException($error); } return $this; }
public function cancel(Varien_Object $payment) { $payment->setStatus(self::STATUS_DECLINED); return $this; }
/** * Capture preatutharized amount * @param Varien_Object $payment * @param <type> $amount */ public function capture(Varien_Object $payment, $amount) { if (!$this->canCapture()) { return $this; } if (Mage::app()->getRequest()->getParam('transId')) { // Capture is called from response action $payment->setStatus(self::STATUS_APPROVED); return $this; } $transactionId = $payment->getLastTransId(); $params = $this->_prepareAdminRequestParams(); $params['transId'] = $transactionId; $params['authMode'] = '0'; $params['op'] = 'postAuth-full'; }
public function authorize(Varien_Object $payment, $amount) { $order = $payment->getOrder(); $order_id = $order->getId(); $order_increment_id = $order->getIncrementId(); $quote = $order->getQuote(); $store_id = $order->getStoreId(); $ccType = $payment->getCcType(); $code = $this->_getStoreConfig('code'); $key = $this->_getStoreConfig('key'); $obs = $this->_getStoreConfig('obs'); $obsadd1 = $this->_getStoreConfig('obsadd1'); $obsadd2 = $this->_getStoreConfig('obsadd2'); $obsadd3 = $this->_getStoreConfig('obsadd3'); $tax_vat = $order->getCustomer()->getTaxvat(); $address = $quote->getBillingAddress(); $name = $address->getName(); $street1 = $address->getStreet1(); $street2 = $address->getStreet2(); $postcode = $address->getPostcode(); $city = $address->getCity(); $region = $address->getRegion(); $expiration = strtotime('+' . $this->_getStoreConfig('expiration') . 'days'); $bank_expiration = date('dmY', $expiration); $transaction_expiration = date('Y-m-d', $expiration); $return_url = $this->_getStoreConfig('return_url'); $increment = $this->_getStoreConfig('order_id_increment'); $order_increment_prefix = $this->_getOrderIncrementPrefix($store_id); $number = $order_increment_id - $order_increment_prefix + $increment; $submit_dc = Mage::getModel('itaushopline/itaucripto')->geraDados($code, $number, str_replace('.', "", number_format($amount, 2, ',', '.')), $obs, $key, $name, '01', $tax_vat, $street1, $street2, $postcode, $city, $region, $bank_expiration, $return_url, $obsadd1, $obsadd2, $obsadd3); if (strlen($submit_dc) < self::ITAU_SHOPLINE_SUBMIT_TRANSACTION_LENGTH) { Mage::throwException(Mage::helper('itaushopline')->__('Unable to generate submit transaction code. Please check your settings.')); } $query_dc = Mage::getModel('itaushopline/itaucripto')->geraConsulta($code, $number, '0', $key); if (strlen($query_dc) < self::ITAU_SHOPLINE_QUERY_TRANSACTION_LENGTH) { Mage::throwException(Mage::helper('itaushopline')->__('Unable to generate query transaction code. Please check your settings.')); } $data = array('order_id' => $order_id, 'amount' => $amount, 'expiration' => $transaction_expiration, 'number' => $number, 'submit_dc' => $submit_dc, 'query_dc' => $query_dc); $result = Mage::getModel('utils/sql')->insert('gamuza_itaushopline_transactions', $data); if (!$result) { Mage::throwException(Mage::helper('itaushopline')->__('Unable to save the Itau ShopLine informations. Please verify your database.')); } $this->setStore($payment->getOrder()->getStoreId()); $payment->setAmount($amount); $payment->setLastTransId($order_id); $payment->setStatus(self::STATUS_APPROVED); return $this; }
public function capture(Varien_Object $payment, $amount) { $session = Mage::getSingleton('core/session'); $logger = Mage::helper('worldpay/logger'); if ($session->getData('wp_3dscompletionNeeded')) { $payment->setIsTransactionClosed(0); $payment->setSkipOrderProcessing(true); $payment->setStatus(self::STATUS_APPROVED); $payment->setAmount($amount); $payment->setShouldCloseParentTransaction(1); $payment->setAdditionalInformation("worldpayOrderCode", $session->getData('wp_orderCode')); $payment->setLastTransId($session->getData('wp_orderCode')); $payment->setTransactionId($session->getData('wp_orderCode')); $session->setData('wp_3dscompletionNeeded', false); return $this; } $worldpayOrderCode = $payment->getData('last_trans_id'); if ($worldpayOrderCode) { $worldpay = $this->setupWorldpay(); try { $authorizationTransaction = $payment->getAuthorizationTransaction(); if ($authorizationTransaction) { $payment->setAdditionalInformation("worldpayOrderCode", $authorizationTransaction->getTxnId()); $worldpayOrderCode = $authorizationTransaction->getTxnId(); } else { $worldpayOrderCode = $payment->getAdditionalInformation('worldpayOrderCode'); } $worldpay->captureAuthorisedOrder($worldpayOrderCode, $amount * 100); $payment->setShouldCloseParentTransaction(1)->setIsTransactionClosed(1); $logger->log('Capture Order: ' . $session->getData('wp_orderCode') . ' success'); } catch (Exception $e) { $logger->log('Capture Order: ' . $session->getData('wp_orderCode') . ' failed with ' . $e->getMessage()); Mage::throwException('Payment failed, please try again later ' . $e->getMessage()); } } else { $payment->setAdditionalInformation('payment_type', 'capture'); return $this->createOrder($payment, $amount, false); } }
/** * Instantiate state and set it to state object * * @param string $paymentAction * @param Varien_Object $stateObject */ public function initialize($paymentAction, $stateObject) { switch ($paymentAction) { case Mage_Paypal_Model_Config::PAYMENT_ACTION_AUTH: case Mage_Paypal_Model_Config::PAYMENT_ACTION_SALE: $payment = $this->getInfoInstance(); $order = $payment->getOrder(); $order->setCanSendNewEmailFlag(false); $payment->setAmountAuthorized($order->getTotalDue()); $payment->setBaseAmountAuthorized($order->getBaseTotalDue()); $this->_setPaymentFormUrl($payment); $stateObject->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT); $stateObject->setStatus('pending_payment'); $stateObject->setIsNotified(false); break; default: break; } }
/** * Processes successful authorize/clone result * * @param Varien_Object $payment * @param Braintree_Result_Successful $result * @param decimal amount * @return Varien_Object */ protected function _processSuccessResult($payment, $result, $amount) { $payment->setStatus(self::STATUS_APPROVED)->setCcTransId($result->transaction->id)->setLastTransId($result->transaction->id)->setTransactionId($result->transaction->id)->setIsTransactionClosed(0)->setCcLast4($result->transaction->creditCardDetails->last4)->setAdditionalInformation($this->_getExtraTransactionInformation($result->transaction, $payment))->setAmount($amount)->setShouldCloseParentTransaction(false); $this->_processMethodSpecificTransactionSuccess($payment, $result); return $payment; }
public function placeOrder(Varien_Object $payment) { $api = $this->getApi(); $api->setAmount($payment->getOrder()->getGrandTotal())->setTrxtype($this->getPaymentAction())->setCurrencyCode($payment->getOrder()->getOrderCurrencyCode()); if ($api->callDoExpressCheckoutPayment() !== false) { $payment->setStatus('APPROVED')->setCcTransId($api->getTransactionId())->setPayerId($api->getPayerId()); } else { $e = $api->getError(); Mage::throwException($e['message']); } return $this; }
/** * Submit prompt action * * @return string */ public function promptAction() { $params = $this->getRequest()->getParams(); $response = new Varien_Object(); try { $key = $params['id']; $data = $params['data']; if (empty($key) || empty($data)) { Mage::throwException('Parameters key and data are required'); } if (!($prompt = $this->_loadPrompt($key))) { Mage::throwException('Session time out, try again'); } $request = $this->_getRequestModel()->setRequest($prompt)->dispatch($data); $response->setStatus('OK'); $response->setMessage($request->getMessage()); $response->setType(MageHack_MageConsole_Model_Abstract::RESPONSE_TYPE_MESSAGE); } catch (Exception $e) { $response->setStatus('ERROR'); $response->setType(MageHack_MageConsole_Model_Abstract::RESPONSE_TYPE_ERROR); $response->setMessage($e->getMessage()); } $this->getResponse()->setHeader('Content-Type', 'application/json', true)->setBody($response->toJson()); }
/** * Capture preatutharized amount * * @param Varien_Object $payment * @param float $amount * @return $this */ public function capture(Varien_Object $payment, $amount) { if (!$this->canCapture()) { return $this; } if (Mage::app()->getRequest()->getParam('transId')) { // Capture is called from response action $payment->setStatus(self::STATUS_APPROVED); return $this; } $transactionId = $payment->getLastTransId(); $params = $this->_prepareAdminRequestParams(); $params['transId'] = $transactionId; $params['authMode'] = '0'; $params['op'] = 'postAuth-full'; $responseBody = $this->processAdminRequest($params); $response = explode(',', $responseBody); if (count($response) <= 0 || $response[0] != 'A' || $response[1] != $transactionId) { $message = $this->_getHelper()->__('Error during capture online. Server response: %s', $responseBody); $this->_debug($message); Mage::throwException($message); } else { $payment->getOrder()->addStatusToHistory($payment->getOrder()->getStatus(), $this->_getHelper()->__('Worldpay transaction has been captured.')); } }
/** * refund the amount with transaction id * * @access public * @param string $payment Varien_Object object * @return Mage_Payment_Model_Abstract */ public function refund(Varien_Object $payment, $amount) { $error = false; if ($payment->getRefundTransactionId() && $amount > 0) { $api = $this->getApi(); //we can refund the amount full or partial so it is good to set up as partial refund $api->setTransactionId($payment->getRefundTransactionId())->setRefundType(Mage_Paypal_Model_Api_Nvp::REFUND_TYPE_PARTIAL)->setAmount($amount); if ($api->callRefundTransaction() !== false) { $payment->setStatus('SUCCESS')->setCcTransId($api->getTransactionId()); } else { $e = $api->getError(); $error = $e['short_message'] . ': ' . $e['long_message']; } } else { $error = AO::helper('paypal')->__('Error in refunding the payment'); } if ($error !== false) { AO::throwException($error); } return $this; }
/** * Instantiate state and set it to state object * * @param string $paymentAction * @param Varien_Object $stateObject */ public function initialize($paymentAction, $stateObject) { switch ($paymentAction) { case Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE: case Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE: $payment = $this->getInfoInstance(); $order = $payment->getOrder(); $order->setCanSendNewEmailFlag(false); $payment->setAmountAuthorized($order->getTotalDue()); $payment->setBaseAmountAuthorized($order->getBaseTotalDue()); $stateObject->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT); $stateObject->setStatus('pending_payment'); $stateObject->setIsNotified(false); break; default: break; } }
/** * Instantiate state and set it to state object * * @param string $paymentAction * @param Varien_Object $stateObject */ public function initialize($paymentAction, $stateObject) { switch ($paymentAction) { case Mage_Paypal_Model_Config::PAYMENT_ACTION_AUTH: case Mage_Paypal_Model_Config::PAYMENT_ACTION_SALE: $payment = $this->getInfoInstance(); $order = $payment->getOrder(); $order->setCanSendNewEmailFlag(false); $payment->setAmountAuthorized($order->getTotalDue()); $payment->setBaseAmountAuthorized($order->getBaseTotalDue()); $this->_generateSecureSilentPostHash($payment); $request = $this->_buildTokenRequest($payment); $response = $this->_postRequest($request); $this->_processTokenErrors($response, $payment); $order = $payment->getOrder(); $order->setCanSendNewEmailFlag(false); $stateObject->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT); $stateObject->setStatus('pending_payment'); $stateObject->setIsNotified(false); break; default: break; } }
public function directCallBack3D(Varien_Object $payment, $PARes, $MD) { $error = ''; $request = $this->_buildRequest3D($PARes, $MD); Sage_Log::log($request, null, '3D-Request.log'); $result = $this->_postRequest($request, true); Sage_Log::log($result, null, '3D-Result.log'); if (Mage::helper('sagepaysuite')->surchargesModuleEnabled() == true) { //save surcharge to server post for later use $session_surcharge_amount = Mage::getSingleton('sagepaysuite/session')->getSurcharge(); if (!is_null($session_surcharge_amount) && $session_surcharge_amount > 0) { $result->setData('Surcharge', $session_surcharge_amount); } } Mage::register('sageserverpost', $result); if ($result->getResponseStatus() == self::RESPONSE_CODE_APPROVED || $result->getResponseStatus() == 'AUTHENTICATED' || $result->getResponseStatus() == self::RESPONSE_CODE_REGISTERED) { if (strtoupper($this->getConfigData('payment_action')) == self::REQUEST_TYPE_PAYMENT) { $this->getSageSuiteSession()->setInvoicePayment(true); } $onePage = Mage::getSingleton('checkout/type_onepage'); $quote = $onePage->getQuote(); $quote->collectTotals(); Mage::helper('sagepaysuite')->ignoreAddressValidation($quote); $onePage->saveOrder(); $_transaction = Mage::getModel('sagepaysuite2/sagepaysuite_transaction')->loadByVendorTxCode($this->getSageSuiteSession()->getLastVendorTxCode())->setVpsProtocol($result->getData('VPSProtocol'))->setSecurityKey($result->getData('SecurityKey'))->setStatus($result->getData('Status'))->setStatusDetail($result->getData('StatusDetail'))->setVpsTxId($result->getData('VPSTxId'))->setTxAuthNo($result->getData('TxAuthNo'))->setAvscv2($result->getData('AVSCV2'))->setPostcodeResult($result->getData('PostCodeResult'))->setAddressResult($result->getData('AddressResult'))->setCv2result($result->getData('CV2Result'))->setThreedSecureStatus($result->getData('3DSecureStatus'))->setCavv($result->getData('CAVV'))->setRedFraudResponse($result->getData('FraudResponse'))->setSurchargeAmount($result->getData('Surcharge'))->setBankAuthCode($result->getData('BankAuthCode'))->setDeclineCode($result->getData('DeclineCode'))->save(); //Saving TOKEN after 3D response. if ($result->getData('Token')) { $tokenData = array('Token' => $result->getData('Token'), 'Status' => $result->getData('Status'), 'Vendor' => $_transaction->getVendorname(), 'CardType' => $_transaction->getCardType(), 'ExpiryDate' => $result->getData('ExpiryDate'), 'StatusDetail' => $result->getData('StatusDetail'), 'Protocol' => 'direct', 'CardNumber' => $_transaction->getLastFourDigits(), 'Nickname' => $_transaction->getNickname()); Mage::getModel('sagepaysuite/sagePayToken')->persistCard($tokenData); } $payment->setSagePayResult($result); $payment->setStatus(self::STATUS_APPROVED)->setCcTransId($result->getVPSTxId())->setCcApproval(self::RESPONSE_CODE_APPROVED)->setLastTransId($result->getVPSTxId())->setAddressResult($result->getAddressResult())->setPostcodeResult($result->getPostCodeResult())->setCv2Result($result->getCV2Result())->setSecurityKey($result->getSecurityKey())->setCcCidStatus($result->getTxAuthNo())->setAdditionalData($result->getResponseStatusDetail()); $payment->save(); } else { //Update status if 3d failed Mage::getModel('sagepaysuite2/sagepaysuite_transaction')->loadByVendorTxCode($this->getSageSuiteSession()->getLastVendorTxCode())->setStatus($result->getResponseStatus())->setStatusDetail($result->getResponseStatusDetail())->setVpsTxId($result->getVpsTxId())->setSecurityKey($result->getSecurityKey())->setPares(null)->setMd(null)->setPareq(null)->save(); if ($result->getResponseStatusDetail()) { if ($result->getResponseStatus() == self::RESPONSE_CODE_NOTAUTHED) { $error = $this->_sageHelper()->__('Your credit card can not be authenticated: '); } else { if ($result->getResponseStatus() == self::RESPONSE_CODE_REJECTED) { $error = $this->_sageHelper()->__('Your credit card was rejected: '); } } $error .= $result->getResponseStatusDetail(); } else { $error = $this->_sageHelper()->__('Error in capturing the payment'); } } if (!empty($error)) { Mage::throwException($error); } return $this; }