Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera, ai vai um codigo simples e funcional para receber notificações do mercado pago
é preciso ter a biblioteca do MP baixada incluir "lib/mercadopago.php"
configura no MP sua pagina de notificação
ter configurado suas credenciais conforme o site do MP mostra. claro que lá tem todas as explicações de integração, mas gostaria de postar o que montei depois de um tempo de teste e adaptações.
salve a pagina como exe: notificacao.php e depois pode passar para ela parametros notificacao.php?id=CODIGO_TRANSACAO_AQUI
<?php
// Include Mercadopago library
require_once "lib/mercadopago.php";
$mp = new MP("xxx client_id xxx", " xx client_secret xx"); /// suas credenciais do mercado pago
$payment_info = $mp->get_payment_info($_GET["id"]);
//tratando o status do pagamento para uma BR
switch($payment_info["response"]["collection"]["status"]){
case "approved" : $status = "Pagamento Efetuado"; //O pagamento foi aprovado e creditado.
break;
case "pending" : $status = "Aguardando Pagamento"; //O usuário não concluiu o processo de pagamento.
break;
case "in_process" : $status = "Aguardando Pagamento"; //O pagamento está sendo analisado.
break;
case "rejected" : $status = "Cancelado"; //O pagamento foi recusado. O usuário pode tentar novamente.
break;
case "refunded" : $status = "Devolvido";//(estado terminal) O pagamento foi devolvido ao usuário.
break;
case "cancelled" : $status = "Cancelado";//(estado terminal) O pagamento foi cancelado por superar o tempo necessário para ser efetuado ou por alguma das partes.
break;
case "in_mediation": $status = "Disputa"; // Foi iniciada uma disputa para o pagamento.
break;
}
//-------tratando o formato da data-----------------------------
//// data da compra
$date = substr($payment_info["response"]["collection"]["date_created"],0,10); //formato original 2012-10-28T16:43:36.000-02:00
$data_correta = explode("-",$date);
$data_compra = $data_correta[2]."/". $data_correta[1] ."/".$data_correta[0];
// data da atualização
$date2 = substr($payment_info["response"]["collection"]["last_modified"],0,10); //formato original 2012-10-28T16:43:36.000-02:00
$data_correta2 = explode("-",$date2);
$data_update = $data_correta2[2]."/". $data_correta2[1] ."/".$data_correta2[0];
//------------------------------------
//codigo negociação
$cod = $payment_info["response"]["collection"]["id"];
//referencia
$ref = $payment_info["response"]["collection"]["external_reference"];
// data de compar e data da ultima atualização do status tratada para BR
$data_compra = $date;
$data_update = $date2;$comprador = $payment_info["response"]["collection"]["payer"]["first_name"];
$comprador .= " " . $payment_info["response"]["collection"]["payer"]["last_name"] ;// ----- a partir daqui vc faz o que quer com os dados
?>
que é o que o MP vai lhe enviar. O script não vai exibir nada na tela, apenas trata o retorno, use como quiser, para printar os dados na tela, gravar no BD, como achar melhorEsta recebendo algum valor do MP, ou está configurado o GET corretamente, ou a pagina de retorno sua configurado no MP
Cara! Eu estou tentando obter as informações do pagamento através da classe do Mercado Pago. Só que está retornando valor vazio.
Está bem simples, não entendo o motivo de não funcionar. Em Client_id e Client_secret eu coloquei os dados fornecidos pelo Mercado Pago e também a classe do MP está inclusa na página.
Está me imprimindo na tela isso:
Array ( [status] => 0 [response] => )
O que está errado?