Skip to main content
Os campos hospedados permitem que você construa um formulário de cartão totalmente personalizado mantendo os números de cartão brutos fora do seu DOM. Cada campo — número do cartão, validade e CVV — é renderizado dentro de um iframe hospedado pelo Therius. O seu JavaScript nunca vê o PAN; ele só recebe um nonce de uso único que o seu servidor usa para concluir a cobrança.

Configure os contêineres de campos

Adicione elementos contêineres vazios ao seu formulário. O Therius substitui cada contêiner por um iframe seguro em tempo de execução.

Inicialize os campos hospedados

Depois que o SDK é inicializado, chame sdk.hostedFields() com um mapa de nomes de campo para seletores CSS.
Cada seletor aponta para um dos elementos contêineres <div> acima. O SDK injeta um iframe em cada contêiner e o comprador digita diretamente nele.

Colete um nonce ao enviar o formulário

Quando o comprador envia o formulário, chame sdk.createNonce() para tokenizar os dados de cartão retidos nos iframes. O SDK devolve um nonce de curta duração — não o número do cartão.
O nonce é de uso único e expira após um período curto. Crie um novo nonce para cada tentativa de pagamento — não reutilize nonces de tentativas falhas ou abandonadas.

Cobre o nonce no seu servidor

O seu servidor passa o nonce como card.nonceData.nonce ao chamar POST /payment/purchase.

Salve o cartão para pagamentos futuros

Para colocar o cartão no vault durante o pagamento, adicione tokenize: true e um shopper.id à requisição de cobrança no lado do servidor:
A resposta inclui um token que o comprador pode usar para futuros checkouts de um clique. Veja Cartões salvos para o fluxo completo de comprador recorrente.

Trate os desafios de 3DS

Alguns cartões exigem um desafio de 3DS antes de o pagamento poder ser autorizado. Chame sdk.authorize(nonce) no navegador em vez de enviar o nonce diretamente ao seu servidor, depois trate qualquer ação necessária:
sdk.handleAction é o único ponto de entrada para todos os passos fora de banda — desafios de 3DS, redirecionamentos e exibições de vouchers. Você não precisa de caminhos de código separados para tipos de ação diferentes.