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']);
 }
Example #2
0
 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;
 }