Pular para o conteúdo principal

Pré-Autorização

startPreAuthFlow()​

@RunAsync
fun startPreAuthFlow(preAuthId: String? = null, metadata: TransactionMetadata = TransactionMetadata.EMPTY)

Inicia o fluxo de captura de pré-autorização: captura o cartão, busca as pré-autorizações daquele cartão e chama onPreAuthTransactionsAvailable(...). O app seleciona e confirma a captura pela função recebida no callback.

ParâmetroDescrição
preAuthIdOpcional. id (do TransactionSummary) de uma pré-autorização específica. Se não estiver entre as pré-autorizações do cartão lido, o fluxo termina com onAppError(SdkErrorCode.PRE_AUTH_NOT_FOUND_FOR_CARD). null lista todas as do cartão
metadataDados do app que seguem até o gateway. Veja Configuração

Para criar uma pré-autorização, use createPayment(type = PRE_AUTHORIZE, ...).

Fluxo de callbacks:

  1. onStartGetCard() — aguardando cartão
  2. onPreAuthTransactionsAvailable(transactions, ..., confirmPreAuth) — o app chama confirmPreAuth(indice, novoValor): novoValor = null captura o valor original; indice = null cancela
  3. onTransactionCompleted(result) — resultado da captura

Se o cartão foi lido por aproximação, o SDK pede o cartão de novo depois da seleção, antes de capturar. A seleção tem 30 s.

Falhas (chegam por onAppError, diferente do estorno):

SituaçãoCallback
Nenhuma pré-autorização para o cartão lidoonAppError(SdkErrorCode.NO_TRANSACTIONS_FOUND, ...)
O preAuthId informado não pertence ao cartão lidoonAppError(SdkErrorCode.PRE_AUTH_NOT_FOUND_FOR_CARD, ...)
Falha ao buscar as pré-autorizaçõesonAppError(SdkErrorCode.GATEWAY_NETWORK_ERROR, ...)

Veja Callbacks — Pré-Autorização para implementação detalhada.

Nesta página