Pular para o conteúdo principal

Checklist de onboarding

Em ordem. Cada passo destrava o próximo.

Antes de escrever código

  • Reúna os itens de repasse.O que você recebe
  • Confirme os seus escopos, especialmente bots:write, que é separado de battles:write e fácil de um host omitir.
  • Confirme os jogos liberados. Peça os valores de id, e não nomes de exibição; id é o que a API aceita.
  • Peça os valores das janelas de lobby. Você não pode mudá-los, e a sua UI precisa ser honesta sobre quanto tempo um lobby fica aberto.
  • Guarde a chave de API num gerenciador de segredos, não num repositório e não num arquivo de ambiente de front end.

Prepare o seu lado

  • Construa um proxy no servidor. Toda chamada ao SlotBattle passa pelo seu backend, e a chave de API nunca chega a um browser.
  • Suba um endpoint de webhook que verifique X-Slotbattle-Sign como HMAC-SHA256 sobre o corpo cru, com comparação de tempo constante. → Webhooks
  • Configure o webhook no console: URL e segredo juntos, já que meio preenchido é recusado na escrita.
  • Configure as suas credenciais de provedor, se o seu casino tem conta SoftSwiss própria. Senão as sessões de bot são emitidas sob o id de casino do host.
  • Torne o endpoint idempotente em battle_id + status. A entrega é ao menos uma vez.

Verifique a conexão

  • GET /games retorna uma lista não vazia
  • POST /battles retorna 201
  • A resposta da batalha inclui um ws_token. Se estiver ausente, o host não tem chave de assinatura
  • Uma conexão WebSocket ao ws_url recebe 101 Switching Protocols
  • Cancele a batalha de smoke test para ela não ficar na sua lista de lobbies

Construa a integração

  • Catálogo. Renderize GET /games. rtp: 0 significa que o jogo não tem perfil, e não um RTP de zero, e status: planned significa não pronto para vender.
  • Abrir uma batalha. Decida se vai informar creator_game_url. Omitir deixa o assento do criador incapaz de jogar, e a batalha não começa. → Ciclo de vida da batalha
  • Sentar jogadores. Trate 409 para jogador já em outra batalha ativa: uma batalha ativa por jogador, por casino.
  • Bots. Só o criador pode chamar, e se você nomeá-los precisa informar ao menos tantas entradas quantos assentos vazios.
  • Visualização ao vivo. Emita um token de viewer por espectador, conecte com o header de subprotocolo, e trate os oito tipos de evento públicos. → WebSocket
  • Liquidação. Pelo webhook, nunca por um frame de WebSocket.

Trate as bordas

  • 503 unavailable. A instância está no limite. Retente com backoff e jitter; esse é o único erro rotineiramente retentável.
  • Expiração de token. Tokens de viewer vivem 15 minutos. Reemita na reconexão e quando uma página ficar aberta mais que isso.
  • Não há replay no socket. Um espectador que entra no meio da batalha não vê nada do que já aconteceu. Renderize a partir de um snapshot buscado, depois aplique eventos.
  • Assentos com ok: false. Uma batalha completed pode conter assento falho. Cheque ok por assento antes de liquidar qualquer coisa.
  • battle.failed. A gravação quebrou ou uma janela expirou. Decida a sua política de estorno; o SlotBattle não tem nenhuma.
  • Criador que sai significa batalha cancelada. Garanta que a sua UI diga "cancelar", e não "sair", para o criador.

Antes de ir ao ar

  • O endpoint de webhook é alcançável a partir da instância, verificado com uma batalha real e não com um túnel local
  • A verificação de assinatura recusa um corpo adulterado, testado e não presumido
  • A liquidação é idempotente sob entrega duplicada
  • Um espectador que chega tarde renderiza um lobby correto
  • Nada loga game_url nem creator_game_url, que são URLs de sessão ao vivo
  • A chave de API não está em nenhum bundle de cliente. Dê grep por sbk_ nos assets construídos
  • Você sabe com quem falar quando aparecer um 500 failed to mint viewer token

Contínuo

  • Peça ao host o cronograma de atualização, já que deploys podem falhar batalhas em voo
  • Pergunte como você fica sabendo de rotações de chave de assinatura. Conduzidas direito elas são invisíveis; conduzidas sem janela elas derrubam a sua plateia
  • Monitore a sua própria taxa de sucesso de webhook. O host retenta, mas você deve perceber

Próximo