Configure the integration
To configure Card Payment Brick integration you need to follow the steps below:
And to help, we've prepared a complete code example of the Card Payment Brick setup that you can use as a template.
Create container
Client-Side
You will need to create a container to define where the Brick will be placed on the screen. The creation of the container is done by inserting an element (for example, a div) in the HTML code of the page where the Brick will be rendered (see the code below).
html
<div id="cardPaymentBrick_container"></div>
Include and configure MercadoPago.js library
Client-Side
Use our official library to access Mercado Pago features from your frontend securely.
You will need to install the SDK by adding the following in your HTML code:
html
<script src="https://sdk.mercadopago.com/js/v2"></script>
Next, initialize the SDK by setting your public keyusing JavaScript code as follows:
javascript
const mp = new MercadoPago('YOUR_PUBLIC_KEY');
Instantiate Brick
Client-Side
With the container created and our SDK JS installed, the next step is to instantiate the Brick builder, which will allow generating the Brick. To create the Brick instance, insert the code below after the previous step.
javascript
const bricksBuilder = mp.bricks();
Render Brick
Client-Side
Once instantiated, the Brick can be rendered and have all its configurations compiled so that the final structure of the Brick is generated.
To render the Brick, insert the following code after the previous step and fill in the attributes according to the comments highlighted in this same code.
javascript
const renderCardPaymentBrick = async (bricksBuilder) => {
const settings = {
initialization: {
amount: 10.000, // total amount to be paid
},
callbacks: {
onReady: () => {
/*
Callback called when the Brick is ready
Here you can hide loadings from your site, for example.
*/
},
onSubmit: (cardFormData) => {
// callback called when the user clicks on the submit data button
// example of sending the data collected by our Brick to your server
return new Promise((resolve, reject) => {
fetch("/process_payment", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(cardFormData)
})
.then((response) => {
// receive payment result
resolve();
})
.catch((error) => {
// handle error response when trying to create payment
reject();
})
});
},
onError: (error) => {
// callback called to all error cases related to the Brick
console.error(error);
},
},
};
const cardPaymentBrickController = await bricksBuilder.create('cardPayment', 'cardPaymentBrick_container', settings);
};
renderCardPaymentBrick(bricksBuilder);
The result of rendering the Brick should be like the image below:”