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; }
/** * 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())); }
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; }