CĂłmo migrar desde Web Tokenize Checkout V2
Si tu integraciĂłn usa Web Tokenize Checkout V2, siga los pasos a continuaciĂłn para migrar a Checkout Bricks.
Recibir pagos con tarjeta
Client-Side
- Busca en tu estructura actual el formulario que llama al Web Tokenize Checkout.
HTML
<div class=tokenizer-container>
<script>
// Agrega credenciales de SDK
const mp = new MercadoPago('PUBLIC_KEY', {locale: 'es-AR'});
// Inicializa el Web Tokenize Checkout
mp.checkout({
tokenizer: {
totalAmount: 4000,
backUrl: 'https://www.mi-sitio.com/procesar-pago'
},
render: {
container: '.tokenizer-container', // Indica dĂłnde se mostrarĂĄ el botĂłn
label: 'Pagar' // Cambia el texto del botĂłn de pago (opcional)
}
});
</script>
</div>
- Reemplaza este formulario con la etiqueta que contendrĂĄ el Brick de Card Payment.
HTML
<div id="paymentBrick_container"></div>
- Agrega el script responsable de cargar el Brick.
javascript
const mp = new MercadoPago('YOUR_PUBLIC_KEY');
const bricksBuilder = mp.bricks();
const renderPaymentBrick = async (bricksBuilder) => {
const settings = {
initialization: {
amount: 100, //valor do processamento a ser realizado
payer: {
email: '<PAYER_EMAIL_HERE>',
},
},
style: {
theme: 'default' // | 'dark' | 'bootstrap' | 'flat'
},
callbacks: {
onReady: () => {
// callback chamado quando o Brick estiver pronto
},
onSubmit: ({paymentType, formData}) => {
// callback chamado o usuĂĄrio clicar no botĂŁo de submissĂŁo dos dados
// ejemplo de envĂo de los datos recolectados por el Brick a su servidor
return new Promise((resolve, reject) => {
fetch("/processar-pago", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(formData)
})
.then((response) => {
// receber o resultado do pagamento
resolve();
})
.catch((error) => {
// lidar com a resposta de erro ao tentar criar o pagamento
reject();
})
});
},
onError: (error) => {
// callback chamado para todos os casos de erro do Brick
},
},
};
window.cardPaymentBrickController = await bricksBuilder.create('payment', 'paymentBrick_container', settings);
};
renderPaymentBrick(bricksBuilder);
- En la devoluciĂłn de llamada
onSubmit
de Brick, agrega la misma URL que usaste en el parĂĄmetroaction
de su formulario. AquĂ es donde el Brick enviarĂĄ los datos del formulario de pago.
Usuarios y tarjetas
Client-Side
Recibe el pago de un usuario con tarjetas guardadas
Para recibir el pago de un usuario con tarjetas guardadas, es necesario mudar el usuario y las tarjetas a Bricks, que realizarĂĄ el proceso de tokenizaciĂłn y enviarĂĄ la informaciĂłn para generar el pago en el callback de onSubmit
.
- Busca en tu estructura actual el formulario que llama al Web Tokenize Checkout:
HTML
<script>
mp.checkout({
tokenizer: {
totalAmount: 4000,
backUrl: 'https://www.mi-sitio.com/process',
savedCards: {
cardIds: '1518023392627,1518023332143' // IDs de las tarjetas
customerId: '209277402-FqRqgEc3XItrxs' // Tu customer ID
}
},
render: {
container: â.tokenizer-containerâ,
label: âPagarâ
}
});
</script>
- Reemplaza este formulario con la etiqueta que contendrĂĄ el Brick de Card Payment.
HTML
<script>
const mp = new MercadoPago('YOUR_PUBLIC_KEY');
const bricksBuilder = mp.bricks();
const renderCardPaymentBrick = async (bricksBuilder) => {
const settings = {
initialization: {
amount: 100, //valor do processamento a ser realizado
payer: {
customer_id: "209277402-FqRqgEc3XItrxs",
card_ids: [â1518023392627â,â1518023332143â]
},
},
style: {
theme: 'default' // | 'dark' | 'bootstrap' | 'flat'
},
callbacks: {
onReady: () => {
// callback chamado quando o Brick estiver pronto
},
onSubmit: ({paymentType, formData}) => {
// callback chamado o usuĂĄrio clicar no botĂŁo de submissĂŁo dos dados
// ejemplo de envĂo de los datos recolectados por el Brick a su servidor
return new Promise((resolve, reject) => {
fetch("/processar-pago", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(formData)
})
.then((response) => {
// receber o resultado do pagamento
resolve();
})
.catch((error) => {
// lidar com a resposta de erro ao tentar criar o pagamento
reject();
})
});
},
onError: (error) => {
// callback chamado para todos os casos de erro do Brick
},
},
};
window.cardPaymentBrickController = await bricksBuilder.create('cardPayment', 'cardPaymentBrick_container', settings);
};
renderCardPaymentBrick(bricksBuilder);
</script>
Con esta configuraciĂłn, serĂĄ posible procesar el pago con las tarjetas guardadas.