Multiseller
Configure o SDK em modo single-seller (seller fixo) ou multiseller (seller dinâmico em runtime) a partir da versão 2.3.0.
A partir da versão 2.3.0, o SDK suporta dois modos em relação ao seller da sessão: single-seller (seller fixo na configuração) e multiseller (seller definido em runtime a cada inicialização).
O seller é fixo nas credenciais do setConfig. O initialize não aceita outro seller.
O seller é informado em cada initialize e pode ser alterado em runtime, sem reiniciar o SDK.
O fluxo geral de configuração e inicialização está em Definir configurações do SDK e Inicialização.
setConfig e credenciais
Credentials aceita seller opcional (String?). Em Kotlin você pode omitir o argumento, passar null ou string vazia / só espaços (tratada como ausência de seller na configuração).
| Modo | Valor de seller |
|---|---|
| Multiseller | null, omitir o parâmetro, ou "" / espaços |
| Single-seller | ID do seller recebido no onboarding |
val credentials = Credentials(
clientId = "{CLIENT-ID}",
clientSecret = "{CLIENT-SECRET}",
marketplace = "{MARKETPLACE-ID}",
seller = null, // ou omita para multiseller
accessKey = "{ACCESS-KEY}",
)initialize(seller = ...)
O método initialize aceita o parâmetro opcional seller (String?):
fun initialize(
seller: String? = null,
onSuccess: InitializeCallback,
onError: ErrorCallback,
onEvent: EventCallback,
)O seller é obrigatório (valor não vazio após trim). Sem isso, o SDK retorna erro 1023.
Cada initialize com outro seller válido atualiza a sessão para aquele seller (token/sessão são renovados conforme a lógica interna do SDK).
Tabela de combinações
| Modo | seller no setConfig | seller no initialize | Resultado |
|---|---|---|---|
| Multiseller | null ou vazio | omitido, null ou vazio | ❌ Erro 1023 — seller not provided on initialization. |
| Multiseller | null ou vazio | preenchido | ✅ Válido. O seller da sessão é o informado no initialize. Novas chamadas com outro id atualizam o seller. |
| Single-seller | preenchido | omitido, null ou vazio | ✅ Válido. O seller da sessão é o do setConfig. |
| Single-seller | preenchido | igual ao do setConfig | ✅ Válido. |
| Single-seller | preenchido | diferente do setConfig | ❌ Erro 1024 — seller cannot be changed in initialize when already set in setConfig. Use novo setConfig para outro seller. |
Consulte a Tabela de Erros para detalhes sobre os códigos 1023 e 1024.
Exemplo completo — Multiseller
// 1. Configure o SDK sem seller fixo
val credentials = Credentials(
clientId = "{CLIENT-ID}",
clientSecret = "{CLIENT-SECRET}",
marketplace = "{MARKETPLACE-ID}",
seller = null, // multiseller: seller será definido no initialize
accessKey = "{ACCESS-KEY}",
)
TapOnPhone.setConfig(
ConfigParameters(
context = context.applicationContext,
credentials = credentials,
sdkConfig = SdkConfig(),
),
)
// 2. Inicialize com o seller desejado
TapOnPhone.initialize(
seller = "{SELLER-ID}",
onSuccess = { status -> /* sessão pronta para o seller */ },
onError = { error -> /* trate o erro (ex: 1023, 1024) */ },
onEvent = { event -> /* eventos de inicialização */ },
)
// 3. Para trocar de seller, basta chamar initialize novamente
TapOnPhone.initialize(
seller = "{OUTRO-SELLER-ID}",
onSuccess = { status -> /* sessão atualizada */ },
onError = { error -> /* … */ },
onEvent = { event -> /* … */ },
)Em modo multiseller, trocar de seller não exige novo
setConfignem reiniciar o SDK — basta uma nova chamada ainitializecom o novo seller.
Updated 5 days ago
