Lembre-se: antes de configurar os meios de pagamento, escolha o modo em que irå processar as suas transaçÔes. A definição do modo de processamento, seja manual ou automåtico, serå realizada no momento da criação da order, por meio do parùmetro processing_mode. Para mais informaçÔes, acesse a seção Modelo de integração.
Essa inclusão deve ser feita por meio do Card Payment Brick, que oferece um formulårio otimizado com temas variados e inclui os campos necessårios para pagamentos com cartÔes.
Para adicionar o Card Payment Brick, primeiro realize sua configuração e inicialização a partir do frontend, como mostram os exemplos a seguir.
const renderCardPaymentBrick = async (bricksBuilder) => {
const settings = {
initialization: {
amount: 100.99, // valor total a ser pago
},
callbacks: {
onReady: () => {
/*
Callback chamado quando o Brick estiver pronto.
Aqui podem ser ocultos loadings do site, por exemplo.
*/
},
onSubmit: (formData, additionalData) => {
// callback chamado ao clicar no botĂŁo de envio de dados
return new Promise((resolve, reject) => {
const submitData = {
type: "online",
total_amount: String(formData.transaction_amount), // deve ser uma string com formato 00.00
external_reference: "ext_ref_1234", // identificador da origem da transação.
processing_mode: "automatic",
transactions: {
payments: [
{
amount: String(formData.transaction_amount), // deve ser uma string com formato 00.00
payment_method: {
id: formData.payment_method_id,
type: additionalData.paymentTypeId,
token: formData.token,
installments: formData.installments,
},
},
],
},
payer: {
email: formData.payer.email,
identification: formData.payer.identification,
},
};
fetch("/process_order", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(submitData),
})
.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();
});
});
},
onError: (error) => {
// callback chamado para todos os casos de erro do Brick
console.error(error);
},
},
};
window.cardPaymentBrickController = await bricksBuilder.create(
"cardPayment",
"cardPaymentBrick_container",
settings
);
};
renderCardPaymentBrick(bricksBuilder);
Como resultado, a renderização do Brick ficarå semelhante à imagem abaixo.
Para avançar para a etapa de envio do pagamento, serå necessårio que seu backend possa receber as informaçÔes do formulårio criado, junto com o token resultante da criptografia do cartão. Para isso, recomendamos disponibilizar um endpoint /Process_order que receba os dados coletados pelo Brick após a ação de submit.
Chave de idempotĂȘncia. Essa chave garante que cada solicitação seja processada apenas uma vez, evitando duplicidades. Use um valor exclusivo no header da requisição, como um UUID V4 ou uma string aleatĂłria.
ObrigatĂłrio
processing_mode
Body. String
Modo de processamento da order. Os valores possĂveis sĂŁo:
- automatic: para criar e processar a ordem em modo automĂĄtico.
- manual: para criar a order e processĂĄ-la posteriormente.