Feedback

Mercado Pago

Esta API está disponível para utilização nos seguintes países:

API disponível para utilização em alguns países

É necessário verificar também os métodos de pagamento disponíveis em cada país, confira a lista atualizada no site do Mercado Pago.

Para utilização desta API é necessário ter uma conta no Mercado Pago. Acesse https://www.mercadopago.com.br/hub/registration/landing para realizar o login ou criar uma conta, caso não possua.

Configurando um Perfil

No menu Ferramentas > API é possível criar perfis da API para utilização em seus projetos, desta forma, será necessário informar suas credenciais uma única vez para utilização da API no projeto.

Veja como obter as credenciais necessárias para configuração do perfil.

Ao realizar a publicação do seu projeto será necessário configurar as credenciais da API no Prod, acessando o menu API.

Configuração de pagamento utilizando API Mercado Pago

Para criação do perfil devemos adicionar as seguintes informações:

Nome

Define o nome para identificação do perfil da API. Este nome é único e será utilizado para referenciar o perfil da API nas aplicações do seu projeto.

Modo

O modo define a disponibilidade de uso do Perfil no Scriptcase.

  • Público - Os usuários de todos os projetos poderão visualizar e utilizar o perfil criado.
  • Projeto - Os usuários poderão visualizar e utilizar o perfil no projeto em que foi configurado.
  • Usuário - Apenas o usuário criador do perfil poderá visualizar e utilizar nas aplicações.

Independente do modo utilizado na criação, os perfis so poderão ser editados por usuários com acesso de administrador no projeto. Veja como definir o nível de acesso dos usuários no scriptcase.

Gateway

Define a API que será utilizada na criação do perfil.

Auth Token

Informe o Access Token gerado nas configurações do Mercado Pago. Caso não tenha esta informação veja nosso artigo de como obter as credenciais do Mercado Pago.

Exemplo de utilização

É possível oferecer pagamos por Cartão, PIX, Carteira Mercado Pago, boleto e pagamento em Lotéricas

Veja abaixo alguns exemplos de utilização da API com PIX e Boleto

Exemplo de pagamento via PIX

Para pagamentos com PIX é necessário que as chaves estejam cadastradas no Mercado Pago. Veja como Cadastrar sua Chave Pix no Mercado Pago.

// Chamada da API direto na macro.
$token = 'token_publico';
$settings = array('settings' => ['gateway' => 'mercadopago', 'token'=> $token] );
$payment = sc_call_api('', $settings);

// Passando os valores para os métodos: valores, descrição e o tipo de pagamento.
$payment->transaction_amount = 0.01;
$payment->description = "teste";
$payment->payment_method_id = "pix";

// Passando as informações do cliente.
// O parâmetro  “type” pode ser o email ou o cpf.
// "type" => "CPF"
// "type" => "email"
// Os parâmetros email, first_name e last_name não podem ser os mesmos do administrador da conta.
$payment->payer = array(
 "email" => "contato@scriptcase.com.br",
 "first_name" => "Netmake",
 "last_name" => "Scriptcase",
 "identification" => array(
	 "type" => "email",
	 "number" => "contato@scriptcase.com.br"
  ),
 "address"=>  array(
	 "zip_code" => "",
	 "street_name" => "Av. dos Lusíadas, 23",
	 "street_number" => "",
	 "neighborhood" => "",
	 "city" => "São Paulo" ,
	 "federal_unit" => "SP"
  )
);

//Chamada da execução do método de pagamento.
$payment->save();

Retorno da API

A resposta mostrará o estado pendente do pagamento e todas as informações que você precisa para mostrar ao comprador.

O valor transaction_data retornará os dados para código QR.

Para maiores informações, acesse a documentação do mercado pago para integração dos pagamentos via PIX.

Veja abaixo um exemplo de retorno.

//ID é código da transação.
"id": 5466310457,
"status": "pending",
"status_detail": "pending_waiting_transfer",
...,
"transaction_details": {
    "net_received_amount": 0,
    "total_paid_amount": 100,
    "overpaid_amount": 0,
    "external_resource_url": null,
    "installment_amount": 0,
    "financial_institution": null
},
"point_of_interaction": {
    "type": "PIX",
    "sub_type": null,
    "application_data": {
    "name": "NAME_SDK",
    "version": "VERSION_NUMBER"
    },
    "transaction_data": {
    "qr_code_base64": "iVBORw0KGgoAAAANSUhEUgAABRQAAAUUCAYAAACu5p7oAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAIABJREFUeJzs2luO3LiWQNFmI+Y/Zd6vRt36KGNXi7ZOBtcagHD4kNLeiLX33v8DAAAAABD879sDAAAAAAA/h6AIAAAAAGSCIgAAAACQCYoAAAAAQCYoAgAAAACZoAgAAAAAZIIiAAAAAJAJigAAAABAJigCAAAAAJmgCAAAAABkgiIAAAAAkAmKAAAAAEAmKAIAAAAAmaAIAAAAAGSCIgAAAACQCYoAAAAAQCYoAgAAAACZoAgAAAAAZIIiAAAAAJAJigAAAABAJigCA...",
    "qr_code": "00020126600014br.gov.bcb.pix0117john@yourdomain.com0217additional data520400005303986540510.005802BR5913Maria Silva6008Brasilia62070503***6304E2CA",
    "ticket_url": "https://www.mercadopago.com.br/payments/1234544589/ticket?caller_id=123456&hash=123e4567-e89b-12d3-a456-426655440000"

Exemplo de Pagamento por boleto

// Chamada da Macro utilizando perfil da API
$payment = sc_call_api('mercadpago');

// Passando os valores para os métodos: valores, descrição e o tipo de pagamento.
$payment->transaction_amount = 100;
$payment->description = "Título do produto";


// Tipo de pagamento para ser usado.
// Pagamento por boleto = $payment->payment_method_id = "bolbradesco";
// Pagamento em lotérica = $payment->payment_method_id = "pec";
$payment->payment_method_id = "bolbradesco";

// Passando as informações do cliente.
// O parâmetro  “type” pode ser o email ou o cpf.
// "type" => "CPF"
// "type" => "email"
// Os parâmetros email, first_name e last_name não podem ser os mesmos do administrador da conta.
" $payment->payer = array(
     "email" => "test@test.com",
     "first_name" => "Test",
     "last_name" => "User",
     "identification" => array(
         "type" => "CPF",
         "number" => "19119119100"
      ),
     "address"=>  array(
         "zip_code" => "06233200",
         "street_name" => "Av. das Nações Unidas",
         "street_number" => "3003",
         "neighborhood" => "Bonfim",
         "city" => "Osasco",
         "federal_unit" => "SP"
      )
   );"

// Chamada da execução do método de pagamento.
$payment->save();


// Retornando a URL gerada e abrindo diretamente na aplicação. 
$page = $payment->transaction_details->external_resource_url;
header("Location: $page");

Retorno da API

A resposta mostrará o status pendente até que o comprador realize o pagamento.

Além disso, na resposta à requisição, o parâmetro external_resource_url retornará uma URL que contém as instruções para que o comprador realize o pagamento.

Você pode redirecioná-lo para este mesmo link para conclusão do fluxo de pagamento.

Para maiores informações, acesse a documentação do Mercado Pago para integração dos pagamentos via boleto.

Veja abaixo um exemplo de retorno.

// ID é código da transação.
"id": 5466310457,
    "status": "pending",
    "status_detail": "pending_waiting_payment",
    ...,
    "transaction_details": {
        "net_received_amount": 0,
        "total_paid_amount": 100,
        "overpaid_amount": 0,
        "external_resource_url": "https://www.mercadopago.com/mlb/payments/ticket/helper?payment_id=123456789&payment_method_reference_id= 123456789&caller_id=123456",
        "installment_amount": 0,
        "financial_institution": null,
        "payment_method_reference_id": "1234567890"
    }