Dados adicionais
Dentro do callback onSubmit
existe um segundo parĂąmetro, de uso opcional, chamado additionalData.
Ele Ă© um objeto e pode conter dados adicionais Ășteis para sua integração, mas que nĂŁo sĂŁo necessĂĄrios para a confirmação do pagamento no backend.
Veja na tabela a seguir os campos contidos dentro do objeto additionalData
, estes que sĂł serĂŁo retornados caso o usuĂĄrio tenha optado pelo pagamento com cartĂŁo.
Campo | Tipo | Descrição |
bin | string | BIN do cartĂŁo inserido pelo usuĂĄrio. |
lastFourDigits | string | Os Ășltimos quatro dĂgitos para compras com cartĂŁo. |
cardholderName | string | Nome da pessoa titular do cartĂŁo. |
Veja abaixo um exemplo de uso:
const settings = {
...,
callbacks: {
onSubmit: ({ selectedPaymentMethod, formData }, additionalData) => {
// callback chamado apĂłs o usuĂĄrio clicar no botĂŁo de submissĂŁo dos dados
// o parĂąmetro additionalData Ă© opcional, vocĂȘ pode removĂȘ-lo se quiser
console.log(additionalData);
// exemplo de envio dos dados coletados pelo Brick para seu 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) => {
// receber o resultado do pagamento
resolve();
})
.catch((error) => {
// lidar com a resposta de erro ao tentar criar o pagamento
reject();
})
} else if (selectedPaymentMethod === 'wallet_purchase') {
// wallet_purchase (Conta Mercado Pago) nĂŁo precisa ser enviado pelo backend
resolve();
} else {
reject();
}
});
},
},
}
<Payment
initialization={initialization}
customization={customization}
onSubmit={async ({ selectedPaymentMethod, formData }, additionalData) => {
console.log({ selectedPaymentMethod, formData }, additionalData);
}}
/>
Caso nĂŁo esteja utilizando o botĂŁo nativo de enviar formulĂĄrio do Brick, vocĂȘ tambĂ©m pode acessar o objeto additionalData
através do método getAdditionalData
. Veja um exemplo de uso a seguir.
javascript
// variĂĄvel onde o controller do Brick estĂĄ salvo
paymentBrickController.getAdditionalData()
.then((additionalData) => {
console.log("Additional data:", additionalData);
})
.catch((error) => console.error(error));