Tutorial - recebendo notificação mercado pago
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;//produto comprado
$produto = $payment_info["response"]["collection"]["reason"] ;
//valor do item
$valor = $payment_info["response"]["collection"]["transaction_amount"];
// status do pagamento
$status = $status;
// nome do comprador com sobrenome
$comprador = $payment_info["response"]["collection"]["payer"]["first_name"];
$comprador .= " " . $payment_info["response"]["collection"]["payer"]["last_name"] ;//apelido do comprador no MP
$apelido = $payment_info["response"]["collection"]["payer"]["nickname"];
// email do comprador
$email = $payment_info["response"]["collection"]["payer"]["email"] ;
// forma de pagamento, nao está traduzida
$forma = $payment_info["response"]["collection"]["payment_type"];
// ----- 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 melhorDiscussão (2)
Carregando comentários...