Como migrar desde Web Tokenize Checkout V1
Si tu integraciĂłn utiliza Web Tokenize Checkout V1, sigue los pasos a continuaciĂłn para migrar a Checkout Bricks.
Recibir pagos con tarjeta
Client-Side
- Encuentra en la estructura actual de tu integraciĂłn el formulario que llama al Web Tokenize Checkout.
html
<form action="https://www.mi-sitio.com/procesar-pago" method="POST">
<script
src="https://www.mercadopago.com.ar/integrations/v1/web-tokenize-checkout.js"
data-public-key="ENV_PUBLIC_KEY"
data-transaction-amount="100.00">
</script>
</form>
- Reemplaza este formulario con el tag que contendrĂĄ el Brick de Card Payment.
html
<div id="paymentBrick_container"></div>
- Agrega también la importación de la SDK JS.
html
<script src="https://sdk.mercadopago.com/js/v2"></script>
- Ahora, 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 el callback de la llamada
onSubmit
de Bricks, agrega la misma URL que utilizas en el parĂĄmetroaction
de tu formulario. AquĂ es donde Bricks enviarĂĄ los datos del formulario de pago.
Usuarios y tarjetas
Client-Side
Recibir el pago de un usuario con tarjetas guardadas
Para recibir el pago de un usuario con tarjetas guardadas, es necesario migrar el usuario y las tarjetas a Checkout Bricks, que realizarĂĄ el proceso de tokenizaciĂłn y enviarĂĄ la informaciĂłn para generar el pago en el callback de onSubmit
. Para hacerlo, sigue los pasos a continuaciĂłn,
- Encuentra en la estructura actual de tu integraciĂłn el formulario que llama al Web Tokenize Checkout.
html
<form action="/procesar-pago" method="POST">
<script
src="https://www.mercadopago.com.ar/integrations/v1/web-tokenize-checkout.js"
data-public-key="ENV_PUBLIC_KEY"
data-transaction-amount="100.00"
data-customer-id="209277402-FqRqgEc3XItrxs"
data-card-ids="1518023392627,1518023332143">
</script>
</form>
- Reemplaza este formulario con el tag que contendrĂĄ el Brick de Card Payment.
javascript
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);
Con esta configuraciĂłn, serĂĄ posible procesar el pago con las tarjetas guardadas.