Billetera Mercado Pago
La Billetera Mercado Pago es una forma de pago que permite aceptar pagos únicamente de usuarios registrados. Al ofrecer esta opción, los usuarios pueden pagar con tarjeta, saldo disponible y Mercado Crédito.
Sigue las siguientes etapas para configurar la Billetera de Mercado Pago como medio de pago.
Crear preferencia
Server-Side
La primera etapa para configurar los pagos con la Billetera Mercado Pago es la creación de la preferencia. Para esto, envía un POST con el parámetro purpose
y el valor wallet_purchase
al endpoint /checkout/preferences y ejecuta la solicitud o, si lo prefieres, utiliza uno de los SDKs indicados a continuación.
<?php
// Crea un objeto de preferencia
$preference = new MercadoPago\Preference();
// Crea un ítem en la preferencia
$item = new MercadoPago\Item();
$item->title = 'Mi producto';
$item->quantity = 1;
$item->unit_price = 75;
$preference->items = array($item);
$preference->purpose = 'wallet_purchase';
$preference->save();
?>
El modo billetera funciona añadiendo el atributo purpose en la preferencia.
// Crea un objeto de preferencia
let preference = {
items: [
{
title: 'Mi producto',
unit_price: 100,
quantity: 1,
}
],
purpose: 'wallet_purchase'
};
mercadopago.preferences.create(preference)
.then(function(response){
// Este valor substituirá a la string "<%= global.id %>" en tu HTML
global.id = response.body.id;
}).catch(function(error){
console.log(error);
});
El modo billetera funciona añadiendo el atributo purpose en la preferencia.
// Crea un objeto de preferencia
PreferenceClient client = new PreferenceClient();
// Crea un ítem en la preferencia
PreferenceItemRequest item =
PreferenceItemRequest.builder()
.title("Mi producto")
.quantity(1)
.unitPrice(new BigDecimal("75"))
.build();
List<PreferenceItemRequest> items = new ArrayList<>();
items.add(item);
PreferenceRequest request =
PreferenceRequest.builder().items(items).purpose("wallet_purchase").build();
client.create(request);
El modo billetera funciona añadiendo el atributo purpose en la preferencia.
sdk = Mercadopago::SDK.new('ENV_ACCESS_TOKEN')
# Crea un objeto de preferencia
preference_data = {
items: [
{
title: 'Mi producto',
unit_price: 100,
quantity: 1
}
],
purpose: 'wallet_purchase'
}
preference_response = sdk.preference.create(preference_data)
preference = preference_response[:response]
# Este valor substituirá a la string "<%= @preference_id %>" en tu HTML
@preference_id = preference['id']
El modo billetera funciona añadiendo el atributo purpose en la preferencia.
// Crea el objeto de request de la preferencia
var request = new PreferenceRequest
{
Items = new List<PreferenceItemRequest>
{
new PreferenceItemRequest
{
Title = "Mi producto",
Quantity = 1,
CurrencyId = "PEN",
UnitPrice = 75m,
},
},
Purpose = "wallet_purchase",
};
// Crea la preferencia
var client = new PreferenceClient();
Preference preference = await client.CreateAsync(request);
preference_data = {
"items": [
{
"title": "Mi producto",
"unit_price": 100,
"quantity": 1
}
],
"purpose": "wallet_purchase"
}
preference_response = sdk.preference().create(preference_data)
preference = preference_response["response"]
El modo billetera funciona añadiendo el atributo purpose en la preferencia.
curl -X POST \
'https://api.mercadopago.com/checkout/preferences' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-H 'Authorization: Bearer **PROD_ACCESS_TOKEN**' \
-d '{
"items": [
{
"title": "Mi producto",
"quantity": 1,
"unit_price": 75
}
],
"purpose": "wallet_purchase"
}'
Añadir checkout
Client-Side
Con la preferencia creada, se debe exhibir el botón de pago que permitirá al comprador utilizar la billetera de Mercado Pago para pagar. Para exhibir el botón de pago, utiliza uno de los SDKs disponibles a continuación.
<div class="cho-container"></div>
<script src="https://sdk.mercadopago.com/js/v2"></script>
<script>
const mp = new MercadoPago('PUBLIC_KEY');
mp.checkout({
preference: {
id: 'YOUR_PREFERENCE_ID'
},
render: {
container: '.cho-container',
label: 'Pagar com Mercado Pago',
type: 'wallet',
}
});
</script>
El modo billetera funciona añadiendo el atributo purpose en la preferencia.