5 - Otimizar pagamento
Use initialize e activateSession para antecipar etapas opcionais do SDK iOS e acelerar o fluxo de pagamento.
Use TapOnPhone.initialize(...) e TapOnPhone.activateSession(...) para antecipar etapas opcionais do SDK iOS e reduzir o tempo percebido no início do pagamento.
Os dois métodos desta página são opcionais. Se você não chamá-los, o SDK poderá inicializar e criar a sessão automaticamente durante a primeira transação.
Antes de começar
- Adicione o SDK ao seu projeto conforme descrito em Primeiros Passos.
- Configure o SDK com as credenciais fornecidas antes de chamar os métodos desta página.
- Se você estiver no modo multiseller, revise a configuração de seller antes de inicializar o SDK.
Fluxo recomendado
- Chame
TapOnPhone.initialize(...)para preparar o SDK antes da primeira venda. - Chame
TapOnPhone.activateSession(...)para antecipar a criação da sessão de pagamento. - Inicie a transação normalmente quando o cliente estiver pronto para pagar.
1. Inicialize o SDK
Use TapOnPhone.initialize(...) quando quiser deixar o SDK pronto antes da primeira transação. O método aceita closures para tratar sucesso, erro e eventos da aplicação.
onSuccess: executa quando a inicialização termina com sucesso.onError: executa quando ocorre erro na inicialização.onEvent: entrega eventos emitidos pelo SDK durante o processo.
TapOnPhone.initialize(
onSuccess: { [weak self] in
guard let self else { return }
print("SDK initialized successfully")
},
onError: { [weak self] error in
guard let self else { return }
let initError = error.error as! TapOnPhoneError
print("SDK start error - code: ", initError.code.rawValue)
print("name: ", initError.code.description)
print("message: ", initError.message)
},
onEvent: { ApplicationEvent in
print("ApplicationEvent: \(ApplicationEvent)")
}
)Saída esperada em caso de sucesso
SDK initialized successfullySaída esperada em caso de erro
SDK start error - code: <código>
name: <nome do erro>
message: <mensagem do erro>Optional: Multiseller
No modo multiseller, disponível a partir da versão 3.4.9, você deve informar o seller em TapOnPhone.initialize(sellerId:) quando o seller estiver nil ou vazio no setConfig.
Use esse formato quando a definição do seller acontecer em runtime.
2. Crie a sessão antecipadamente
Use TapOnPhone.activateSession(...) para criar a sessão antes do pagamento. Esse método é opcional e pode ajudar a acelerar o fluxo quando você já sabe qual tipo de pagamento será iniciado.
Chame
TapOnPhone.activateSession(...)somente depois deTapOnPhone.initialize(...).
TapOnPhone.activateSession(
paymentType: .credit, // ou .debit
onSuccess: { [weak self] _ in
guard let self else { return }
print("Success creating session!")
},
onError: { [weak self] error in
guard let self else { return }
print("Session error - code: ", error.code.rawValue)
print("name: ", error.code.description)
print("message: ", error.message)
},
onEvent: { ApplicationEvent in
print("ApplicationEvent: \(ApplicationEvent)")
}
)Saída esperada em caso de sucesso
Success creating session!Saída esperada em caso de erro
Session error - code: <código>
name: <nome do erro>
message: <mensagem do erro>Optional: Quando usar esses métodos
Use a inicialização e a criação de sessão antecipadas quando você quiser reduzir o tempo percebido pelo cliente no começo da cobrança.
Esse fluxo é útil principalmente nestes cenários:
- quando o operador abre a tela de pagamento antes de aproximar o cartão;
- quando o tipo de pagamento já é conhecido com antecedência, como
creditoudebit; - quando você quer separar a preparação do SDK da execução da venda.
Optional: Se você não chamar os métodos
Você não precisa chamar esses métodos para que o pagamento funcione. Nesse caso, o SDK executará a inicialização e a criação da sessão automaticamente durante a primeira transação, se necessário.
Essa abordagem reduz a quantidade de chamadas no seu fluxo, mas pode aumentar o tempo percebido no início do pagamento.
Optional: Eventos disponíveis
Tanto initialize quanto activateSession aceitam onEvent para expor eventos da aplicação durante a execução.
Para consultar a lista de eventos disponíveis e o comportamento esperado em cada etapa, veja a documentação específica de eventos do SDK.
Resumo
| Método | Obrigatório | Quando usar |
|---|---|---|
TapOnPhone.initialize(...) | Não | Quando você quiser preparar o SDK antes da primeira transação |
TapOnPhone.activateSession(...) | Não | Quando você quiser criar a sessão antes do pagamento |
Se o seu app já sabe que uma cobrança vai começar, chamar esses métodos antes da transação ajuda a deixar o pagamento mais rápido e previsível.
Updated 4 days ago
