Disponibilidade da carteira digital
Detecte a disponibilidade do Apple Pay e do Google Pay antes de renderizar os controles de carteira com os SDKs DEUNA Web, iOS, Android e React Native.
Nesta página
Ligar getWalletsAvailable antes de renderizar um botão de carteira de propriedade do comerciante. O SDK combina a configuração do comerciante retornada pela DEUNA com as capacidades do navegador ou dispositivo atual.
Decisão de disponibilidade#
Verifique por plataforma#
const wallets = await DeunaSDK.getWalletsAvailable({
orderToken,
userInfo: {email: 'ada@example.com'},
});
applePayButton.hidden = !wallets.includes('APPLE_PAY');
googlePayButton.hidden = !wallets.includes('GOOGLE_PAY');const wallets = await deunaSDK.getWalletsAvailable({orderToken, userInfo});
setApplePayVisible(wallets.includes('apple_pay'));
setGooglePayVisible(wallets.includes('google_pay'));deunaSDK.getWalletsAvailable(
params: GetWalletsAvailableParams(orderToken: orderToken, userInfo: userInfo)
) { wallets, error in
applePayButton.isHidden = !wallets.contains(.applePay)
if let error { showWalletRecovery(error) }
}val params = GetWalletsAvailableParams(orderToken = orderToken, userInfo = userInfo)
deunaSDK.getWalletsAvailable(this, params) { wallets, error ->
googlePayButton.isVisible = wallets.contains(WalletProvider.GOOGLE_PAY)
error?.let(::showWalletRecovery)
}Modos de parâmetros#
| Formulário de chamada | Uso |
|---|---|
getWalletsAvailable() | Resolver carteiras configuradas sem informações de transação específicas para cada pedido. |
{orderToken, userInfo} | Resolver credenciais do comerciante com o contexto do pedido antes que o cliente clique. Recomendado para checkout com carteira. |
Explícito APPLE_PAY / GOOGLE_PAY Configuração da carteira | Integrações avançadas que fornecem credenciais aprovadas diretamente, em vez de obtê-las do endpoint do DEUNA. |
A ordem deve ser apresentada antes do clique, especialmente para o Apple Pay: o manipulador de clique subsequente pode prosseguir imediatamente dentro da janela do cliente do navegador.
Iniciar a partir do botão#
applePayButton.addEventListener('click', async () => {
await DeunaSDK.initElements({
orderToken,
userInfo,
types: [{name: 'APPLE_PAY'}],
callbacks: {
onSuccess: verifyCredentialOrOrder,
onError: showWalletRecovery,
onClosed: restorePaymentMethods,
},
});
});Uso GOOGLE_PAY para o Google Pay. Mantenha a chamada diretamente no manipulador de clique ou toque; evite temporizadores, aguardes não relacionados ou callbacks em segundo plano antes de abrir a planilha nativa.
Cache e atualização#
Os SDKs atuais armazenam provedores e credenciais resolvidos para que o lançamento rápido do carteiro seja possível. No SDK para Web, crie DeunaSDK.newInstance() quando uma página realmente precisa de um estado SDK isolado. Em aplicativos móveis, mantenha uma instância do SDK inicializada para o ciclo de vida de integração ativo.
Verifique quando o cliente muda para uma ordem com elegibilidade diferente, troca o contexto do comerciante ou inicia uma nova sessão de aplicativo. Nunca exiba uma carteira apenas porque ela estava disponível para uma ordem diferente.
Por que a carteira não está disponível#
O comerciante ou a conexão não são elegíveis
Verifique se a conexão com a carteira, o ambiente, o país, a moeda e a ordem estão habilitados para a conta. Credenciais de sandbox e produção são distintas.
O navegador ou dispositivo atual não pode usar a carteira
O Apple Pay requer um dispositivo Apple elegível, navegador, configuração da carteira e configuração do domínio do comerciante. O Google Pay requer um navegador ou dispositivo Android elegível e serviços do Google suportados.
A chamada de disponibilidade retorna um erro ou uma lista vazia
Verifique a inicialização, a chave pública da API, o ambiente, o acesso à rede e o token da ordem. Considere uma lista vazia como "não renderizar um controle de carteira", e não como uma instrução para contornar a verificação.
A planilha da carteira está bloqueada ou abre muito tarde
Execute a disponibilidade antes do toque, armazene o resultado através do SDK e chame initElements diretamente a partir do manipulador de botão da carteira.
Experiência do usuário e acessibilidade#
- Use os ativos, rótulos, tamanhos e regras de contraste aprovados pelo provedor.
- Esconda as carteiras não disponíveis em vez de deixar um botão desabilitado e sem explicação.
- Mantenha um método de pagamento padrão disponível quando a carteira não puder abrir.
- Anuncie erros de lançamento e retorne o foco ao botão da carteira após o fechamento.
- Teste a rotação do dispositivo, texto grande, leitores de tela, navegação por teclado e layouts embutidos estreitos.