Gerenciar Configurações do Dispositivo
Este guia explica como ajustar a configuração em tempo de execução do Get Smart SDK Payment Service utilizando o SettingsRepository. Você pode controlar elementos da experiência do usuário, como o pop-up nativo de resultado da transação e o idioma do serviço.
Pré-requisitos
Antes de modificar as configurações, certifique-se de que você:
- Importou a biblioteca
redsys-tpv-business-libem seu projeto. - Inicializou o TPV com sucesso usando
InitializationRepository.initTpv(). - Obteve uma instância de
SettingsRepository(via Dagger Hilt ou instanciação manual).
Controlando o Pop-up de Resultado da Transação
Por padrão, o Get Smart SDK Payment Service pode exibir uma mensagem pop-up nativa ao concluir uma transação. Você pode habilitar ou desabilitar esse comportamento para depender exclusivamente da interface do seu aplicativo para fornecer feedback.
- Acesse o Repositório: Use sua instância de
SettingsRepository. - Chame
updateShowTransactionResult: Passe um valor booleano para a função.true: O serviço mostra a mensagem de resultado nativa.false: O serviço oculta a mensagem, permitindo que você mostre a sua própria.
Exemplo de Código
suspend fun configureResultUi(showNativePopup: Boolean) {
// repository is an instance of SettingsRepository
val result = settingsRepository.updateShowTransactionResult(
showTransactionResult = showNativePopup
)
if (result is RepositoryResult.Success) {
// The boolean data confirms the new state
println("✅ UI Preference Updated: Native popup is now ${if (result.data) "enabled" else "disabled"}")
} else {
println("❌ Failed to update UI preference")
}
}Esta configuração se aplica a transações futuras executadas após a chamada do método.
Alterando o Idioma do Serviço
Você pode atualizar o idioma utilizado pela interface do Get Smart SDK Payment Service (ex: para mensagens do sistema ou telas de inserção de PIN).
- Acesse o Repositório: Use sua instância de
SettingsRepository. - Chame
updateLanguage: Passe um valor do enumLanguageIso6391.
Exemplo de Código
suspend fun setServiceLanguage(lang: LanguageIso6391) {
// repository is an instance of SettingsRepository
val result = settingsRepository.updateLanguage(
language = lang
)
if (result is RepositoryResult.Success) {
println("✅ Language Updated to ${lang.name}")
} else {
println("❌ Failed to update language")
}
}Resumo
- Use
updateShowTransactionResult(false)para suprimir as telas nativas de sucesso/erro. - Use
updateLanguage()para localizar a interface do serviço. - Ambos os métodos retornam um
RepositoryResult<Boolean>indicando o sucesso da operação.
Próximos Passos
- Tokenizar Credenciais de Cartão: Saiba como gerenciar tokens para pagamentos recorrentes.