SDKs de nível empresarial para Android / Integre o SDK no lado do aplicativo
  Voltar aos Documentos

SDKs de nível empresarial para Android

Integre o SDK no lado do aplicativo

Lógica de compra geral

  1. Implemente a lógica de obtenção de tokens de pagamento de uma das seguintes maneiras:
    • Usando a biblioteca Store (recomendado):
      • Para comprar um único item, chame o método createOrderByItemSku.
      • Para comprar os itens no carrinho:
        1. Depois que o usuário tiver preenchido o carrinho, chame o método fillCurrentCartWithItems.
        2. Chame o método createOrderFromCartById ou createOrderFromCurrentCart.

    • Usando a IGS API.
    • Usando seus próprios métodos de servidor ou métodos de solução BaaS.

  1. Implemente a lógica de abertura da interface de pagamento:
Copy
Full screen
Small screen
val intent = XPayments.createIntentBuilder(this)
               .accessToken(<accessToken>)
               .isSandbox(<isSandbox>)
           	.setStatusReceivedCallback(object : StatusReceivedCallback {
               	override fun onSuccess(data: InvoicesDataResponse) {
                   		Log.d(TAG, "StatusReceivedCallback is fired. Result data = $data")
               	}
           	})
           	.build()
Observação
Revise o projeto de demonstração para obter um exemplo de implementação.

Opções de abertura de interface de pagamento

O SDK para Android fornece 3 maneiras de exibir a interface de pagamento dentro do aplicativo:

WebViewCustom TabsTrusted Web Activity
Vantagens
  • Simplifica o processo de compra dentro do aplicativo, pois os usuários não veem as transições entre o aplicativo e a página da web.
  • Não há uma barra de ferramentas padrão no topo da tela.
  • Integra nativamente com o Google Wallet e serviços de pagamento no dispositivo. Isso permite usuários preencherem campos automaticamente com dados salvos, como e-mail e dados de cartões bancários.
  • Suporta uma transição fluída a uma página da web usando um plano de fundo especial e efeito de transição.
  • Integra-se nativamente com o Google Wallet e outros serviços de pagamento no dispositivo. Isso permite os usuários preencherem campos automaticamente com dados salvos, como e-mail e dados de cartões bancários.
  • Permite o travamento de orientação da tela.
  • Não há uma barra de ferramentas padrão no topo da tela.
Desvantagens
  • Não suporta recursos de segurança tais como Google Wallet.
  • Campos de preenchimento automático com dados salvos não funcionam, como e-mail e dados de cartões bancários.
  • Abre uma página da web em uma janela separada que sobrepõe o aplicativo.
  • Os recursos variam, dependendo do navegador Chrome no dispositivo do usuário e sua versão.
  • Não permite travamento da orientação da tela.

Exemplo de exibição WebView:

Exemplo de exibição Custom Tabs:

Exemplo de exibição Trusted Web Activity:

Configuração do método para abrir a interface de pagamento

Por padrão, o SDK utiliza Custom Tabs. Se Custom Tabs não estiverem disponíveis no dispositivo do usuário (por exemplo, se um navegador adequado não estiver instalado), o SDK trocará automaticamente para outros métodos para abrir a interface de pagamento: primeiro WebView e então no navegador externo instalado no dispositivo por padrão.

Você pode definir um método primário diferente para abrir a interface de pagamento usando o método setActivityType.

Exemplo:

Copy
Full screen
Small screen
XPayments.createIntentBuilder(this)
  .accessToken(AccessToken(token))
  .isSandbox(BuildConfig.IS_SANDBOX)
  .setActivityType(ActivityType.TRUSTED_WEB_ACTIVITY)
  .build()

Em caso do método primário não estiver disponível, o SDK troca para outros métodos na seguinte ordem: Trusted Web Activity > Custom Tabs > WebView > navegador externo instalado no dispositivo por padrão.

Aviso

Se quiser instalar o Trusted Web Activity como método principal de abrir a interface de pagamento, contate seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.

Você deverá fornecer as seguintes informações:

Para mais informações sobre Trusted Web Activity, veja a documentação Google.

Configuração do botão de fechar a interface de pagamento

Recomendamos que você configure um botão de fechar para a interface de pagamento, já que a barra de endereços e os elementos de navegação padrões do navegador não ficam visíveis ao usuário na WebView e Trusted Web Activity. Para fazer isso, no objeto PaymentOptions no parâmetro ui.mobile, passe o objeto mobile = UiMobileProjectSettingHeader com o parâmetro closeButton=true.

Você pode selecionar o ícone que será exibido no botão. Para fazer isso, passe um dos seguintes valores no parâmetro closeButtonIcon:

  • “arrow” — para exibir o ícone .
  • “cross” — para exibir o ícone × (usado por padrão).

Exemplo de objeto PaymentOptions:

Copy
Full screen
Small screen
val paymentOptions = PaymentOptions(
            isSandbox = isSandbox,
            settings = PaymentProjectSettings(
                ui = UiProjectSetting(mobile = MobileSettings(header = UiMobileProjectSettingHeader(closeButton = true, closeButtonIcon = "arrow"))),
                returnUrl = "app://xpayment.${getApplication<Application>().packageName}",
                redirectPolicy = SettingsRedirectPolicy(
                    redirectConditions = "any",
                    delay = 5,
                    statusForManualRedirection = "any",
                    redirectButtonCaption = "Back to the Game"
                )
            )
        )

Exemplo de uso dos parâmetros closeButton e closeButtonIcon na WebView e Trusted Web Activity:

Este artigo foi útil?
Obrigado!
Podemos melhorar alguma coisa? Mensagem
Que pena ouvir isso
Explique porque este artigo não foi útil para você. Mensagem
Obrigado pelo seu feedback!
Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.
Última atualização: 5 de Setembro de 2024

Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.

Relatar um problema
Nós sempre avaliamos nossos conteúdos. Seu feedback nos ajuda a melhorá-los.
Forneça um e-mail para que possamos responder
Obrigado pelo seu feedback!