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âmetro | Descrição |
|---|---|
preAuthId | Opcional. 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 |
metadata | Dados do app que seguem até o gateway. Veja Configuração |
Para criar uma pré-autorização, use
createPayment(type = PRE_AUTHORIZE, ...).
Fluxo de callbacks:
onStartGetCard()— aguardando cartãoonPreAuthTransactionsAvailable(transactions, ..., confirmPreAuth)— o app chamaconfirmPreAuth(indice, novoValor):novoValor = nullcaptura o valor original;indice = nullcancelaonTransactionCompleted(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ção | Callback |
|---|---|
| Nenhuma pré-autorização para o cartão lido | onAppError(SdkErrorCode.NO_TRANSACTIONS_FOUND, ...) |
O preAuthId informado não pertence ao cartão lido | onAppError(SdkErrorCode.PRE_AUTH_NOT_FOUND_FOR_CARD, ...) |
| Falha ao buscar as pré-autorizações | onAppError(SdkErrorCode.GATEWAY_NETWORK_ERROR, ...) |
Veja Callbacks — Pré-Autorização para implementação detalhada.