Datos adicionales
Dentro del callback onSubmit
hay un segundo parĂĄmetro, de uso opcional, llamado additionalData
. Es un objeto y puede contener datos adicionales Ăștiles para su integraciĂłn, pero que no son necesarios para el compromiso de pago en el backend.
Consulta en la tabla siguiente los campos contenidos dentro del objeto additionalData
, los cuales solo se devolverĂĄn si el usuario ha optado por el pago con tarjeta.
Campo | Tipo | DescripciĂłn |
bin | string | BIN de la tarjeta ingresada por el usuario. |
lastFourDigits | string | Los Ășltimos cuatro dĂgitos para compras con tarjeta. |
cardholderName | string | Nombre de la persona titular de la tarjeta. |
Mira a continuaciĂłn un ejemplo de uso:
const settings = {
...,
callbacks: {
onSubmit: ({ selectedPaymentMethod, formData }, additionalData) => {
// callback llamado al usuario para hacer clic en el botĂłn de envĂo de datos
// el parĂĄmetro additionalData es opcional, puede eliminarlo si lo desea
console.log(additionalData);
// ejemplo de envĂo de los datos recopilados por Brick a su servidor
return new Promise((resolve, reject) => {
let url = undefined;
if (selectedPaymentMethod === 'credit_card' || selectedPaymentMethod === 'debit_card') {
url = 'process_payment_card';
} else if (selectedPaymentMethod === 'bank_transfer') {
url = 'process_payment_pix';
} else if (selectedPaymentMethod === 'ticket') {
url = 'process_payment_ticket';
}
if (url) {
fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(formData),
})
.then((response) => response.json())
.then((response) => {
// recibir el resultado del pago
resolve();
})
.catch((error) => {
// manejar la respuesta de error al intentar crear el pago
reject();
})
} else if (selectedPaymentMethod === 'wallet_purchase') {
// wallet_purchase (Conta Mercado Pago) no necesita ser enviada desde el backend
resolve();
} else {
reject();
}
});
},
},
}
<Payment
initialization={initialization}
customization={customization}
onSubmit={async ({ selectedPaymentMethod, formData }, additionalData) => {
console.log({ selectedPaymentMethod, formData }, additionalData);
}}
/>
Si no estås utilizando el botón nativo enviar formulario de Brick, también puedes acceder al objeto additionalData
a través de getAdditionalData
. Ve un ejemplo de uso a continuaciĂłn.
javascript
// variable donde se guarda el controller del Brick
paymentBrickController.getAdditionalData()
.then((additionalData) => {
console.log("Additional data:", additionalData);
})
.catch((error) => console.error(error));