Vendas Online via API com Mercado Pago - #3 Web Tokenize Checkout
26/02/2020Nessa aula aprenderemos como trabalhar com Web Tokenize Checkout do Mercado Pago, recebendo pagamentos de cartão de crédito.
Webtokenize Checkout Mercado Pago
No nosso index.php precisaremos colocar a tag meta viewport e o código javascript.
<!doctype html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Pagamento Inicial</title>
<link rel="stylesheet" href="lib/style.css">
</head>
<body>
<div class="product">
<div class="product_title">Pen Drive</div>
<div class="product_image"><img src="img/pendrive.jpg" alt=""></div>
<div class="product_desc">Pen Drive de 16gb</div>
<div class="product_btn"><a href="https://www.webdesignemfoco.com/mp/detail.php?amount=20&product=15&shipping=5&label=PenDrive">Pagar</a></div>
</div>
<div class="product">
<div class="product_title">Celular</div>
<div class="product_image"><img src="img/celular.jpg" alt=""></div>
<div class="product_desc">Celular Sony</div>
<div class="product_btn"><a href="https://www.webdesignemfoco.com/mp/detail.php?amount=50&product=40&shipping=10&label=Celular">Pagar</a></div>
</div>
</body>
</html>
Iremos criar também o diretório controllers e dentro dele o arquivo PaymentController.php
Após criar o controller vamos baixar o sdk do Mercado Pago e suas dependências através do Composer. Acesse o seu terminal e rode os comandos abaixo:
cd c:/wamp64/www/lib
composer init
composer require "mercadopago/dx-php"
Após instado podemos desenvolver o código do controller que ficará assim:
<?php
require_once '../lib/vendor/autoload.php';
$token = $_REQUEST["token"];
$payment_method_id = $_REQUEST["payment_method_id"];
$installments = $_REQUEST["installments"];
$issuer_id = $_REQUEST["issuer_id"];
MercadoPago\SDK::setAccessToken("SEU_TOKEN");
$payment = new MercadoPago\Payment();
$payment->transaction_amount = 114;
$payment->token = $token;
$payment->description = "Mediocre Leather Pants";
$payment->installments = $installments;
$payment->payment_method_id = $payment_method_id;
$payment->issuer_id = $issuer_id;
$payment->payer = array(
"email" => "email_do_comprador"
);
// Armazena e envia o pagamento
$payment->save();
// Imprime o status do pagamento
echo $payment->status;
Não se esqueça de no código acima alterar o AccessToken e o seu email (o email deve ser diferente daquele que você usa na conta do MP).
Pra fazer os testes você precisa acessar os cartões de teste do Mercado Pago clicando aqui.
Em seguida, criaremos a página detail.php que receberá os dados detalhados dos produtos:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<form action="https://www.webdesignemfoco.com/mp/controllers/PaymentController.php" method="POST">
<script
src="https://www.mercadopago.com.br/integrations/v1/web-tokenize-checkout.js"
data-public-key="TEST-10574518-9a00-41da-81c1-60dc2d2ebf83"
data-transaction-amount="<?php echo $_GET['amount']; ?>"
data-summary-product="<?php echo $_GET['product']; ?>"
data-summary-shipping="<?php echo $_GET['shipping']; ?>"
data-summary-product-label="<?php echo $_GET['label']; ?>"
>
</script>
</form>
<body>
</body>
</html>
Por hoje é só! Sucesso nos códigos e na vida!