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).

Single-seller

O seller é fixo nas credenciais do setConfig. O initialize não aceita outro seller.

Multiseller

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).

ModoValor de seller
Multisellernull, omitir o parâmetro, ou "" / espaços
Single-sellerID 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

Modoseller no setConfigseller no initializeResultado
Multisellernull ou vazioomitido, null ou vazio❌ Erro 1023seller not provided on initialization.
Multisellernull ou vaziopreenchido✅ Válido. O seller da sessão é o informado no initialize. Novas chamadas com outro id atualizam o seller.
Single-sellerpreenchidoomitido, null ou vazio✅ Válido. O seller da sessão é o do setConfig.
Single-sellerpreenchidoigual ao do setConfig✅ Válido.
Single-sellerpreenchidodiferente do setConfig❌ Erro 1024seller 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 setConfig nem reiniciar o SDK — basta uma nova chamada a initialize com o novo seller.