Hoje vou ensinar de forma bem simples de como trabalhar com o SDK 3.0.5 do Mercado Pago
Requisitos →
php >= 8.2
composer
1 – com o composer já instalado, abra o terminal e navegue até a pasta do seu projeto e baixe o sdk:
composer require "mercadopago/dx-php:3.0.5"
após o download irá criar uma pasta chamada vendor que usaremos no passo a seguir
2 – crie um arquivo na raiz do projeto chamado pix.php e cole o seguinte conteudo:
pix.php
<?php
$access_token = '??????';
$notification_url = '[Conteúdo Oculto]';
$external_reference = 123;
$description = 'Doação de R$5,00';
$donate_value = 5;
require_once 'vendor/autoload.php';
use MercadoPago\Client\Payment\PaymentClient;
use MercadoPago\Exceptions\MPApiException;
use MercadoPago\MercadoPagoConfig;
MercadoPagoConfig::setAccessToken($access_token);
$client = new PaymentClient();
$request = [
"transaction_amount" => $donate_value,
"description" => $description,
"external_reference" => $external_reference,
"notification_url" => $notification_url,
"payment_method_id" => "pix",
"payer" => [
"email" => "
[email protected]",
]
];
$payment = $client->create($request);
?>
Explicação:
$access_token = O token que o mercado pago gerou ao criar seu App
$notification_url = Url de notificação, quando o status do pagamento for alterado será enviando uma notificação para esta URL
$external_reference = Uma referencia externa ÚNICA para indetificar o pedido futuramente
$description = Descrição do pedido
$donate_value = Valor do pedido
Para visualizar oque o retorno do mercado pago de forma detalhada você pode usar o var_dump, exemplo:
...
$payment = $client->create($request);
echo '<pre>';
var_dump($payment);
echo '</pre>';
Se der tudo certo você já verá os dados do pix
Por exemplo, para exibir a imagem do QRCode:
...
$payment = $client->create($request);
/*
echo '<pre>';
var_dump($payment);
echo '</pre>';
*/
echo '<img src="data:image/png;base64,'.$payment->point_of_interaction->transaction_data->qr_code_base64.'" />';
Você pode fazer o mesmo para o boleto, exemplo
invez de usar
"payment_method_id" => "pix",
use
"payment_method_id" => "bolbradesco",
e para pega a URL do boleto
echo $payment->transaction_details->external_resource_url;
Agora vamos criar o arquivo “mercado-pago.php” que será responsável por receber as notificações do nosso pedido e atualizar o mesmo
O mercado pago envia o dados do pedido para o mercado-pago.php
capture o ID e use a função get() da classe PaymentClient para obter os dados do pedido atualizado
mercado-pago.php
<?php
$access_token = '??????';
require_once 'vendor/autoload.php';
use MercadoPago\Client\Payment\PaymentClient;
use MercadoPago\MercadoPagoConfig;
MercadoPagoConfig::setAccessToken($access_token);
$client = new PaymentClient();
$mercado_pago = json_decode(file_get_contents('php://input'));
if(isset($mercado_pago->data->id)){
$client = new PaymentClient();
$payment = $client->get($mercado_pago->data->id);
$status = $payment->status;
$external_reference = $payment->external_reference;
}
Use o var_dump para visualizar os dados detalhadamente, mas com o exemplo acima eu já deixei o status e o external_reference
Como isso você ja pode verifica se o pedido foi pago e entregar o Gold para o jogador hehe
if($status == 'approved'){
//envia o gold para a conta
}
Github: [Conteúdo Oculto]
Documentação: [Conteúdo Oculto]