Example #1
0
 protected function _place($payment, $amount, $requestType)
 {
     $pagarme = Mage::getModel('pagarme/api');
     switch ($requestType) {
         case self::REQUEST_TYPE_AUTH_ONLY:
         case self::REQUEST_TYPE_AUTH_CAPTURE:
             $customer = Mage::helper('pagarme')->getCustomerInfoFromOrder($payment->getOrder());
             $data = new Varien_Object();
             $data->setPaymentMethod(Inovarti_Pagarme_Model_Api::PAYMENT_METHOD_CREDITCARD)->setAmount(Mage::helper('pagarme')->formatAmount($amount))->setCardHash($payment->getPagarmeCardHash())->setInstallments($payment->getInstallments())->setCapture($requestType == self::REQUEST_TYPE_AUTH_CAPTURE)->setCustomer($customer);
             $transaction = $pagarme->charge($data);
             break;
         case self::REQUEST_TYPE_CAPTURE_ONLY:
             $transaction = $pagarme->capture($payment->getPagarmeTransactionId());
             break;
     }
     if ($transaction->getErrors()) {
         $messages = array();
         foreach ($transaction->getErrors() as $error) {
             $messages[] = $error->getMessage() . '.';
         }
         Mage::throwException(implode("\n", $messages));
     }
     if ($transaction->getStatus() == 'refused') {
         Mage::throwException($this->_wrapGatewayError($transaction->getStatusReason()));
     }
     if ($payment->getPagarmeTransactionId()) {
         $payment->setTransactionId($payment->getPagarmeTransactionId() . '-' . Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE)->setParentTransactionId($payment->getParentTransactionId())->setIsTransactionClosed(0);
     } else {
         $payment->setCcOwner($transaction->getCardHolderName())->setCcLast4($transaction->getCardLastDigits())->setCcType(Mage::getSingleton('pagarme/source_cctype')->getTypeByBrand($transaction->getCardBrand()))->setPagarmeTransactionId($transaction->getId())->setPagarmeAntifraudScore($transaction->getAntifraudScore())->setTransactionId($transaction->getId())->setIsTransactionClosed(0);
     }
     $payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS, array('status' => $transaction->getStatus()));
     return $this;
 }
Example #2
0
 /**
  * Validate Address Rule Condition
  *
  * @param Varien_Object $object
  * @return bool
  */
 public function validate(Varien_Object $object)
 {
     if ($this->getAttribute() == 'payment_method' && !$object->hasPaymentMethod()) {
         if ($object->getOrder()) {
             $object->setPaymentMethod($object->getOrder()->getPayment()->getMethod());
         } else {
             $object->setPaymentMethod($object->getPayment()->getMethod());
         }
     }
     if ($object instanceof Mage_Sales_Model_Order_Shipment) {
         $object = $object->getOrder();
     }
     #Zend_Debug::dump($object->getData());
     #Zend_Debug::dump($this->validateAttribute($object->getData($this->getAttribute())), $object->getData($this->getAttribute()));
     return $this->validateAttribute($object->getData($this->getAttribute()));
 }
Example #3
0
 public function _place(Mage_Sales_Model_Order_Payment $payment, $amount)
 {
     $order = $payment->getOrder();
     $customer = Mage::helper('pagarme')->getCustomerInfoFromOrder($payment->getOrder());
     $data = new Varien_Object();
     $data->setPaymentMethod(Inovarti_Pagarme_Model_Api::PAYMENT_METHOD_BOLETO)->setAmount(Mage::helper('pagarme')->formatAmount($amount))->setBoletoExpirationDate($this->_generateExpirationDate())->setCustomer($customer)->setPostbackUrl(Mage::getUrl('pagarme/transaction_boleto/postback'));
     $pagarme = Mage::getModel('pagarme/api');
     $transaction = $pagarme->charge($data);
     if ($transaction->getErrors()) {
         $messages = array();
         foreach ($transaction->getErrors() as $error) {
             $messages[] = $error->getMessage() . '.';
         }
         Mage::throwException(implode("\n", $messages));
     }
     // pagar.me info
     $payment->setPagarmeTransactionId($transaction->getId())->setPagarmeBoletoUrl($transaction->getBoletoUrl())->setPagarmeBoletoBarcode($transaction->getBoletoBarcode())->setPagarmeBoletoExpirationDate($transaction->getBoletoExpirationDate());
     return $this;
 }