public function testGetTokenInfo() { $payment = new Varien_Object(); $payment->setCcCid('789'); $vaultCard = new Varien_Object(); $vaultCard->setCcType('VI'); $vaultCard->setLast4('1234'); $vaultCard->setType('VI'); $vaultCard->setExpirationMonth('12'); $vaultCard->setExpirationYear('2050'); $vaultCard->setToken('1111222233331234'); $litle = new Litle_CreditCard_Model_PaymentLogic(); $modelPalorusVault = $this->getMock('Litle_Palorus_Model_Vault'); $modelPalorusVault->expects($this->any())->method('load')->with($this->equalTo(50))->will($this->returnValue($vaultCard)); $litle->setModelPalorusVault($modelPalorusVault); $info = new Mage_Payment_Model_Info(); $info->setAdditionalInformation('cc_vaulted', 50); $arr = array('info_instance' => $info); $litle->addData($arr); $tokenInfo = $litle->getTokenInfo($payment); $this->assertEquals('1234', $payment->getCcLast4()); $this->assertEquals('VI', $payment->getCcType()); $this->assertEquals('789', $tokenInfo['cardValidationNum']); $this->assertEquals('VI', $tokenInfo['type']); $this->assertEquals('1111222233331234', $tokenInfo['litleToken']); $this->assertEquals('1250', $tokenInfo['expDate']); }
protected function _place($payment, $amount) { $order = $payment->getOrder(); $payer = Mage::helper('iugu')->getPayerInfoFromOrder($payment->getOrder()); $items = Mage::helper('iugu')->getItemsFromOrder($payment->getOrder()); // Verify if needs add interest $interestRate = $this->getInterestRate($payment->getInstallments()); $totalWithInterest = $this->calcTotalWithInterest($amount, $interestRate); if ($totalWithInterest - $amount > 0) { $item = new Varien_Object(); $item->setDescription(Mage::helper('iugu')->__('Interest')); $item->setQuantity(1); $item->setPriceCents(Mage::helper('iugu')->formatAmount($totalWithInterest - $amount)); $items[] = $item; } // Save Payment method if (!$payment->getIuguCustomerPaymentMethodId() && $payment->getIuguSave()) { $data = new Varien_Object(); $data->setToken($payment->getIuguToken()); $data->setCustomerId(Mage::helper('iugu')->getCustomerId()); $data->setDescription(Mage::getModel('core/date')->timestamp(time())); $result = Mage::getSingleton('iugu/api')->savePaymentMethod($data); if ($result->getId()) { $payment->setIuguCustomerPaymentMethodId($result->getId()); } } // Set Charge Data $data = new Varien_Object(); if ($payment->getIuguCustomerPaymentMethodId()) { $data->setCustomerPaymentMethodId($payment->getIuguCustomerPaymentMethodId()); } else { $data->setToken($payment->getIuguToken()); } $data->setMonths($payment->getInstallments())->setEmail($order->getCustomerEmail())->setItems($items)->setPayer($payer); // Discount if ($order->getBaseDiscountAmount()) { $data->setDiscountCents(Mage::helper('iugu')->formatAmount(abs($order->getBaseDiscountAmount()))); } // Tax if ($order->getBaseTaxAmount()) { $data->setTaxCents($this->formatAmount($order->getBaseTaxAmount())); } // Charge $result = Mage::getSingleton('iugu/api')->charge($data); if (!$result->getSuccess()) { Mage::throwException(Mage::helper('iugu')->__('Transaction failed, please try again or contact the card issuing bank.')); } // Set iugu info $payment->setIuguInvoiceId($result->getInvoiceId())->setIuguTotalWithInterest($totalWithInterest)->setIuguUrl($result->getUrl())->setIuguPdf($result->getPdf())->setTransactionId($result->getInvoiceId())->setIsTransactionClosed(0)->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS, array('message' => $result->getMessage())); return $this; }