Configuração básica
Chamesdk.checkout() depois de inicializar o SDK. O widget se monta no DOM automaticamente.
Seletor de cartões salvos
Se a sessão foi criada com umcustomerId e esse comprador tem cartões previamente colocados no vault, o widget renderiza automaticamente um seletor de cartões acima do formulário de cartão novo. Os cartões são exibidos como brand / last 4 / expiry — nenhum PAN é devolvido ao navegador.
Quando o comprador seleciona um cartão salvo, onSavedMethodSelected é disparado com o token do cartão. Cobre-o de imediato sem um nonce:
GET /sdk/vaulted-methods e é limitada ao próprio comprador da sessão — o navegador não pode enumerar os cartões de um comprador diferente.
Cobrar um cartão novo pelo widget
Para um cartão novo inserido pelo widget, recupere o nonce depois que o comprador envia o formulário e use-o da mesma forma que com os campos hospedados:sdk.authorize(nonce) diretamente depois do envio do widget para deixar o SDK gerenciar o ciclo completo de autorizar-e-ação em uma única chamada.
Tratamento de 3DS
O 3DS é tratado de forma idêntica aos campos hospedados. Se o resultado da cobrança incluiractionRequired, passe-o para sdk.handleAction:
sdk.handleAction abre o iframe do desafio de 3DS, aguarda a conclusão e resolve com o PaymentResult final. Você não precisa escrever lógica separada para tipos de desafio diferentes.
vaultConsentEnabled só mostra a caixa de seleção “Salvar este cartão” quando há um shopperId presente na sessão. Se nenhum customerId foi passado para POST /sdk/session, a caixa de seleção é ocultada independentemente dessa configuração.Se você passou
cardOnFile ao criar a sessão (veja Assinaturas gerenciadas pelo lojista), o widget mostra um aviso fixo de “o cartão será salvo” em vez da caixa de seleção vaultConsentEnabled — o cartão é salvo incondicionalmente, então não há nada para optar.
