public function postPago() { Mage::helper('mercadopago')->log("init post pago", 'mercadopago-custom.log'); $core = Mage::getModel('mercadopago/core'); //seta sdk php mercadopago $client_id = Mage::getStoreConfig('payment/mercadopago/client_id'); $client_secret = Mage::getStoreConfig('payment/mercadopago/client_secret'); $mp = new MP($client_id, $client_secret); //monta a preferencia $pref = $this->makePreference(); Mage::helper('mercadopago')->log("make array", 'mercadopago-custom.log', $pref); //faz o post do pagamento $response = $mp->create_custon_payment($pref); Mage::helper('mercadopago')->log("post pago", 'mercadopago-custom.log', $response); if ($response['status'] == 200 || $response['status'] == 201) { return $response; } else { $e = ""; foreach ($response['response']['cause'] as $error) { switch ($error['code']) { case "106": $e .= Mage::helper('mercadopago')->__('You can not make payments to users in other countries.'); break; case "109": $e .= Mage::helper('mercadopago')->__('Payment Method selected does not process payments in installments selected. Choose another card or another payment method.'); break; case "126": $e .= Mage::helper('mercadopago')->__('We could not process your payment. Error code: 126.'); break; case "129": $e .= Mage::helper('mercadopago')->__('Payment Method selected does not process payments for the selected amount. Choose another card or another payment method.'); break; case "137": $e .= Mage::helper('mercadopago')->__('The amount is required.'); break; case "145": $e .= Mage::helper('mercadopago')->__('We could not process your payment. Error code: 145.'); break; case "150": $e .= Mage::helper('mercadopago')->__('You can not make payments. Error code: 150.'); break; case "151": $e .= Mage::helper('mercadopago')->__('You can not make payments.'); break; case "160": $e .= Mage::helper('mercadopago')->__('We could not process your payment. Error code: 160.'); break; case "204": $e .= Mage::helper('mercadopago')->__('Payment Method selected is not available at this time. Choose another card or another payment method.'); break; case "801": $e .= Mage::helper('mercadopago')->__('You made a similar payment moments ago. Try again in a few minutes.'); break; //validacao do coupon //validacao do coupon case "campaign_code_doesnt_match": $e .= Mage::helper('mercadopago')->__("Doesn't find a campaign with the given code."); break; default: $e .= Mage::helper('mercadopago')->__("We could not process your payment. %s", json_encode($response)); break; } } Mage::helper('mercadopago')->log("erro post pago: " . $e, 'mercadopago-custom.log'); Mage::helper('mercadopago')->log("response post pago: ", 'mercadopago-custom.log', $response); Mage::throwException($e); return false; } }