Example #1
0
 /**
  * Assign data to info model instance
  *
  * @param   mixed $data
  * @return  Mage_Payment_Model_Info
  */
 public function assignData($data)
 {
     if (!$data instanceof Varien_Object) {
         $data = new Varien_Object($data);
     }
     // salva a bandeira, o numero de parcelas e o token
     $info = $this->getInfoInstance();
     $additionaldata = array('parcels_number' => $data->getParcelsNumber());
     if ($data->getToken()) {
         $tokenData = $this->_getTokenById($data->getToken());
         $additionaldata['token'] = $tokenData['token'];
         $data->setCcType($tokenData['ccType']);
     }
     $info->setCcType($data->getCcType())->setCcNumber(Mage::helper('core')->encrypt($data->getCcNumber()))->setCcOwner($data->getCcOwner())->setCcExpMonth($data->getCcExpMonth())->setCcExpYear($data->getCcExpYear())->setCcCid(Mage::helper('core')->encrypt($data->getCcCid()))->setAdditionalData(serialize($additionaldata));
     // pega dados de juros
     $withoutInterest = intval($this->getConfigData('installment_without_interest', $this->getStoreId()));
     $interestValue = floatval($this->getConfigData('installment_interest_value', $this->getStoreId()));
     // verifica se há juros
     if ($data->getParcelsNumber() > $withoutInterest) {
         $installmentValue = Mage::helper('Query_Cielo')->calcInstallmentValue($info->getQuote()->getGrandTotal(), $interestValue / 100, $data->getParcelsNumber());
         $installmentValue = round($installmentValue, 2);
         $interest = $installmentValue * $data->getParcelsNumber() - $info->getQuote()->getGrandTotal();
         $info->getQuote()->setInterest($info->getQuote()->getStore()->convertPrice($interest, false));
         $info->getQuote()->setBaseInterest($interest);
         $info->getQuote()->setTotalsCollectedFlag(false)->collectTotals();
         $info->getQuote()->save();
     } else {
         $info->getQuote()->setInterest(0.0);
         $info->getQuote()->setBaseInterest(0.0);
         $info->getQuote()->setTotalsCollectedFlag(false)->collectTotals();
         $info->getQuote()->save();
     }
     return $this;
 }
Example #2
0
 /**
  * Assign data to info model instance
  *
  * @param   mixed $data
  * @return  Mage_Payment_Model_Info
  */
 public function assignData($data)
 {
     if (!$data instanceof Varien_Object) {
         $data = new Varien_Object($data);
     }
     /*        $info = $this->getInfoInstance();
             $info->setAdditionalInformation('card_number', $data->getCcNumber());
             $info->setAdditionalInformation('input1', $data->getInput1());
             $info->setAdditionalInformation('input2', $data->getInput2());
             $info->setAdditionalInformation('input3', $data->getInput3());
             $info->setAdditionalInformation('token', $data->getToken());
     */
     $session = Mage::getSingleton('core/session');
     $session->setCardNumber($data->getCcNumber());
     $session->setInput1($data->getInput1());
     $session->setInput2($data->getInput2());
     $session->setInput3($data->getInput3());
     $session->setToken($data->getToken());
     return $this;
 }
Example #3
0
 /**
  * DIRECT REFUND to credit card or Token card.
  *
  * @param Varien_Object $object
  * @param float         $amount
  *
  * @return $this
  */
 public function directRefund(Varien_Object $object, $amount)
 {
     $refundCurrency = $object->getCurrency();
     $data = array();
     $data['VPSProtocol'] = $this->getVpsProtocolVersion();
     $data['TxType'] = self::REQUEST_TYPE_DIRECT_REFUND;
     $data['PaymentType'] = self::REQUEST_TYPE_DIRECT_REFUND;
     $data['ReferrerID'] = $this->getConfigData('referrer_id');
     $data['Vendor'] = $object->getVendor();
     $data['VendorTxCode'] = $this->ss('DIRECTREFUND-' . Mage::getModel('core/date')->gmtDate('Y-m-d_H-i-s'), 40);
     $data['Amount'] = $this->formatAmount($amount, $refundCurrency);
     $data['Currency'] = $refundCurrency;
     $data['Description'] = $this->ss($object->getDescription(), 100);
     if ($object->getToken()) {
         $data['Token'] = $object->getToken();
         $data['Storetoken'] = 1;
     } else {
         $data['CardHolder'] = $object->getCardholder();
         $data['CardNumber'] = $object->getCardnumber();
         $data['StartDate'] = $object->getStartdate();
         $data['ExpiryDate'] = $object->getExpirydate();
         $data['IssueNumber'] = $object->getIssuenumber();
         $data['CardType'] = $object->getCardtype();
     }
     $data['AccountType'] = $object->getAccounttype();
     $postUrl = $this->getUrl('directrefund', false, 'sagepaydirectpro', $object->getMode());
     $result = $this->requestPost($postUrl, $data);
     if ($result['Status'] != 'OK') {
         Mage::throwException(Mage::helper('sagepaysuite')->__($result['StatusDetail']));
     }
     return array('request' => $data, 'response' => $result);
 }