Integração avançada - Checkout Pro V1 - Mercado Pago Developers

Integração avançada

O Checkout Pro dispõe de funcionalidades extras que permitem otimizar sua integração e melhorar a gestão dos pagamentos de suas vendas.

Receba notificações de pagamentos

As notificações IPN (Instant Payment Notification) são notificações automáticas sobre a criação de novos pagamentos e atualizações de status, informando se as transações foram aprovadas, recusadas ou estão pendentes.

Os avisos automáticos permitem que você administre seu estoque e mantenha seu sistema sincronizado com os fluxos de pagamento do seu negócio. Aprenda como receber as notificações IPN aqui.

Insira informações adicionais à preferência

Melhore a aprovação dos pagamentos e a experiência de compra no Checkout Pro adicionando informações às suas preferências que detalhem o item comprado e o usuário comprador.

Em Preferências, você pode inserir as seguintes informações adicionais:

Dados pessoais do comprador

          
<?php
  // ...
  $payer = new MercadoPago\Payer();
  $payer->name = "Joao";
  $payer->surname = "Silva";
  $payer->email = "user@email.com";
  $payer->date_created = "2018-06-02T12:58:41.425-04:00";
  $payer->phone = array(
    "area_code" => "11",
    "number" => "4444-4444"
  );
    
  $payer->identification = array(
    "type" => "CPF",
    "number" => "19119119100"
  );
    
  $payer->address = array(
    "street_name" => "Street",
    "street_number" => 123,
    "zip_code" => "06233200"
  );
  // ...
?>

        
          
// ...
var payer = {
  name: "Joao",
  surname: "Silva",
  email: "user@email.com",
  date_created: "2015-06-02T12:58:41.425-04:00",
  phone: {
    area_code: "11",
    number: "4444-4444"
  },
  
  identification: {
    type: "CPF",
    number: "19119119100"
  },
  
  address: {
    street_name: "Street",
    street_number: "123",
    zip_code: "06233200"
  }
}
// ...

        
          
// ...
Payer payer = new Payer();
payer.setName("Joao")
     .setSurname("Silva")
     .setEmail("user@email.com")
     .setDateCreated("2018-06-02T12:58:41.425-04:00")
     .setPhone(new Phone()
        .setAreaCode("11")
        .setPhoneNumber("4444-4444"))
      
     .setIdentification(new Identification()
        .setType("CPF")
        .setNumber("19119119100"))
      
     .setAddress(new Address()
        .setStreetName("Street")
        .setBuildingNumber("123")
        .setZipCode("06233200"));
// ...

        
          
# ...
payer_data = {
  name: 'Charles',
  surname: 'Luevano',
  email: 'charles@hotmail.com',
  date_created: '2018-06-02T12:58:41.425-04:00',
  phone: {
    area_code: '',
    number: '949 128 866'
  },
  
  identification: {
    type: 'DNI',
    number: '12345678'
  },
  
  shipments: {
    receiver_address: {
      street_name: 'Cuesta Miguel Armendáriz',
      street_number: '1004',
      zip_code: '11020'
    }
  }
}
# ...

        
          
using MercadoPago.Client.Common;
using MercadoPago.Client.Preference;
// ...
var payer = new PreferencePayerRequest
{
    Name = "Charles",
    Surname = "Luevano",
    Email = "charles@hotmail.com",
    Phone = new PhoneRequest
    {
        AreaCode = "",
        Number = "949 128 866",
    },
    
    Identification = new IdentificationRequest
    {
        Type = "DNI",
        Number = "12345678",
    },
    
    Address = new AddressRequest
    {
        StreetName = "Cuesta Miguel Armendáriz",
        StreetNumber = "1004",
        ZipCode = "11020",
    },
};
// ...

        
          
# ...

payer_data = {
    "name": "Joao",
    "surname": "Silva",
    "email": "user@email.com",
    "phone": {
        "area_code": "11",
        "number": "4444-4444"
    },
    
    "identification": {
        "type": "CPF",
        "number": "19119119100"
    },
    
    "shipments": {
        "receiver_address": {
            "street_name": "Street",
            "street_number": "123",
            "zip_code": "06233200"
        }
    }
}
# ...

        

Dados gerais do item

          
<?php
  $item = new MercadoPago\Item();
  $item->id = "1234";
  $item->title = "Heavy Duty Plastic Table";
  $item->description = "Table is made of heavy duty white plastic and is 96 inches wide and 29 inches tall";
  $item->category_id = "home";
  $item->quantity = 7;
  $item->currency_id = "CLP";
  $item->unit_price = 75.56;
  // ...
?>

        
          
// ...
items: [
    {
      id: '1234',
      title: 'Lightweight Paper Table',
      description: 'Inspired by the classic foldable art of origami',
      category_id: 'home',
      quantity: 3,
      currency_id: 'CLP',
      unit_price: 55.41
    }
  ]// ...

        
          
// ...
Item item = new Item();
item.setId("1234")
    .setTitle("Lightweight Paper Table")
    .setDescription("Inspired by the classic foldable art of origami")
    .setCategoryId("home")
    .setQuantity(3)
    .setCurrencyId("CLP")
    .setUnitPrice((float) 55.41);
// ...

        
          
# ...
preference_data = {
  items: [
    {
      id: 'PR0001',
      title: 'Lightweight Paper Table',
      description: 'Inspired by the classic foldable art of origami',
      category_id: 'home',
      quantity: 3,
      currency_id: 'CLP',
      unit_price: 55.41
    }
  ]
}
 # ...

        
          
// ...
var item = new PreferenceItemRequest
{
    Id = "1234",
    Title = "Lightweight Paper Table",
    Description = "Inspired by the classic foldable art of origami",
    CategoryId = "home",
    Quantity = 3,
    CurrencyId = "CLP",
    UnitPrice = 55.41m,
};
// ...

        
          
# ...
preference_data = {
    "items": [
        {
            "id": "1234",
            "title": "Lightweight Paper Table",
            "description": "Inspired by the classic foldable art of origami",
            "category_id": "home",
            "quantity": 3,
            "currency_id": "CLP",
            "unit_price": 55.41
        }
    ]
}

        
Nota
Você pode encontrar a lista de categorias do seu item aqui . Se não conseguir acessar os valores de categoria, envie o valor others no atributo category_id.

Redirecione o comprador para o seu site

No final do processo de pagamento, você tem a opção de redirecionar o comprador para o seu site novamente.

Para isso, adicione o atributo back_urls e defina, segundo o status do pagamento, a página desejada para redirecionar o seu comprador quando ele clicar no botão de retorno ao site.

Se deseja que o redirecionamento para os pagamentos aprovados seja automático, sem a renderização de um botão de retorno, é preciso adicionar também o atributo auto_return com valor approved.

Nota
Tenha em conta que o atributo auto_return só funciona para o modo redirect e mobile do Checkout Pro. O mesmo não funciona no modo modal , já que nesse último o comprador segue no site durante todo o processo de pagamento.

autoreturn

AtributoDescrição
auto_returnOs compradores são redirecionados automaticamente para o site quando o pagamento é aprovado. O valor padrão é approved.
back_urlsURL de retorno ao site. Possíveis cenários são:

success: URL de retorno perante pagamento aprovado.

pending: URL de retorno perante pagamento pendente.

failure: URL de retorno perante pagamento rejeitado.

Através das back_urls, serão retornados os seguintes parâmetros:

ParâmetroDescrição
payment_idID (identificador) do pagamento do Mercado Pago.
statusEstado do pagamento. Ex.: approved para um pagamento aprovado ou pending para um pagamento pendente.
external_referenceValor enviado no momento da criação da preferência de pagamento.
merchant_order_idID (identificador) da ordem de pagamento gerada no Mercado Pago.
Nota
Alguns dos parâmetros guardam informações de compra apenas se o comprador completou todo o pagamento no Checkout Pro e não abandonou o fluxo antes de retornar ao seu site por meio da back_urls de failure.

Por exemplo:

          
<?php
$preference = new MercadoPago\Preference();
//...
$preference->back_urls = array(
    "success" => "https://www.seu-site/success",
    "failure" => "http://www.seu-site/failure",
    "pending" => "http://www.seu-site/pending"
);
$preference->auto_return = "approved";
// ...
?>

        
          
var preference = {}
preference = {
  // ...
  "back_urls": {
        "success": "https://www.seu-site/success",
        "failure": "http://www.seu-site/failure",
        "pending": "http://www.seu-site/pending"
    },
    "auto_return": "approved",
  // ...
}

        
          
Preference preference = new Preference();
// ...
BackUrls backUrls = new BackUrls(
                    "https://www.seu-site/success",
                    "http://www.seu-site/pending",
                    "http://www.seu-site/failure");

preference.setBackUrls(backUrls);
// ...

        
          
# ...
preference_data = {
  # ...
  back_urls = {
    success: 'https://www.tu-sitio/success',
    failure: 'https://www.tu-sitio/failure',
    pending: 'https://www.tu-sitio/pendings'
  },
  auto_return: 'approved'
  # ...
}
# ...

        
          
var request = new PreferenceRequest
{
    // ...
    BackUrls = new PreferenceBackUrlsRequest
    {
        Success = "https://www.tu-sitio/success",
        Failure = "http://www.tu-sitio/failure",
        Pending = "http://www.tu-sitio/pendings",
    },
    AutoReturn = "approved",
};

        
          
preference_data = {
    "back_urls": {
        "success": "https://www.tu-sitio/success",
        "failure": "https://www.tu-sitio/failure",
        "pending": "https://www.tu-sitio/pendings"
    },
    "auto_return": "approved"
}

        

Evite recusas de pagamentos

Um pagamento pode ser recusado porque o emissor do meio de pagamento detectou um problema no fluxo, como falta dos requisitos de segurança necessários.

Evite pagamentos recusados com as nossas boas práticas e melhore a taxa de aprovação dos seus pagamentos.

Gerencie cancelamentos e estornos

Os cancelamentos são feitos quando o pagamento não foi concluído antes da data de vencimento e o vendedor decide então cancelá-lo. As devoluções, por sua vez, acontecem quando o pagamento foi feito pelo comprador, mas o vendedor decide estorná-lo, total ou parcialmente.

Para mais informações, acesse a nossa documentação sobre gerenciar os cancelamentos e estornos dos seus pagamentos.

Gerencie contestações

Uma contestação (ou chargeback) acontece quando o comprador entra em contato com a entidade emissora do cartão e desconhece o pagamento. Na prática, isso significa que o dinheiro desse pagamento será retido da sua conta Mercado Pago até que a situação seja solucionada.

Acesse nossa documentação de Gerenciamento de operações contestadas e saiba como gerenciar contestações de pagamentos.


Próximo passo