Integre a loja ao jogo

Depois de criar e configurar bens (itens virtuais, moedas virtuais, conjuntos, chaves) em sua Conta de Distribuidor, adicione uma In-Game Store ao seu jogo:

  1. Implemente a exibição do catálogo de itens.
  2. Implemente a lógica de venda de itens.

Exibição do catálogo de itens

Observação
Para chamar a API Xsolla, você pode usar os métodos SDK prontos para engines e plataformas de jogos:

Implemente uma exibição do catálogo de itens por meio de chamadas da In-Game Store API:

TarefaAPI
Para exibir uma lista completa de itens virtuais adicionados à sua StoreObter lista de itens virtuais
Para exibir uma lista de grupos de itens virtuais disponíveis para venda no lado do clienteObter lista de grupos de itens
Para obter uma lista de moedas virtuais disponíveis para venda na sua Store no lado do clienteObter lista de moedas virtuais
Para exibir uma lista completa de pacotes de moedas virtuais adicionados à sua Store no lado do clienteObter lista de pacotes de moedas virtuais
Para exibir uma lista completa de pacotes adicionados à sua StoreObter lista de pacotes
Observação
Os métodos de obtenção de catálogo retornam os itens que estão disponíveis na loja no momento da solicitação. Para obter informações sobre itens cujo período de exibição ainda não começaram ou já expiraram, passe o parâmetro show_inactive_time_limited_items com um valor 1 ao solicitar o catálogo.

Venda de itens

Você pode vender itens das seguintes maneiras:

  1. Compra rápida de um item. Neste caso, você pode vender um SKU em qualquer quantidade (por exemplo, 100 poções idênticas ou uma quantia personalizada de moedas virtuais).
  2. Comprar um carrinho. Neste caso, o jogador pode pré-encher um carrinho, adicionar ou remover itens, ou alterar suas quantidades.

Compra rápida

  1. Chame a API Criar pedido com item especificado . Um token para abrir a interface de pagamento será passado para a resposta.
  2. Abra a interface de pagamento usando o token de pagamento recebido.
Observação
As informações sobre o desconto (personalizadas ou relacionadas à compra) estarão disponíveis para o usuário apenas na interface de pagamento. O uso de códigos promocionais não é suportado.
Observação
Para chamar a API Xsolla, você pode usar os métodos SDK prontos para engines e plataformas de jogos:

Compra no carrinho

Implemente a lógica:
  1. Para configurar um carrinho e obter o token:
    • No cliente — se você quiser implementar o carrinho em seu aplicativo por conta própria.
    • No servidor — se você quiser usar a solução da Xsolla (Chamadas de In-Game Store API) para gerenciar o carrinho.
  2. Para abrir a interface de pagamento.

Configure e compre um carrinho no cliente

Implemente a lógica de adicionar e remover itens por si mesmo. Você também precisa considerar que, antes de chamar a API para configurar um carrinho, você não terá informações sobre quais promoções serão aplicadas à compra. Isso significa que o custo total e os detalhes dos itens de bônus adicionados não serão conhecidos.

  1. Depois que o jogador tiver preenchido um carrinho, chame a API Preencher o carrinho com itens. As informações atuais sobre os itens selecionados (preços antes e depois dos descontos, itens bônus) serão passadas para a resposta.
  2. Chame a API Criar pedido com todos os itens do carrinho atual. O ID do pedido e o token de pagamento serão passados para a resposta. O pedido criado receberá um status de pedido New.
  3. Abra a interface de pagamento.
Observação
Para chamar a API Xsolla, você pode usar os métodos SDK prontos para engines e plataformas de jogos:

Configure e compre um carrinho no servidor

Essa variante pode levar mais tempo para configurar o carrinho, já que cada alteração no carrinho deve ser acompanhada por chamadas de API.

Conclua as seguintes etapas:

  1. Alterar o carrinho:

Observação
Se você quiser obter o status atual do carrinho, chame a API Obter o carrinho do usuário atual.
  1. Chame a API Create order with all items from the current cart. O ID do pedido e o token de pagamento serão passados para a resposta. O pedido criado receberá um status de New.
  2. Abra a interface de pagamento.

Abertura da interface de pagamento

Para itens pagos, abra a interface de pagamento. Um token para abrir a interface de pagamento será passado para a resposta API Criar pedido com todos os itens do carrinho atual.

Implemente a abertura da interface de pagamento de uma das seguintes maneiras:

Teste do processo de pagamento

Você pode testar o fluxo de pagamento no modo Sandbox. Você pode usar um cartão bancário de teste e qualquer conta.

Observação

Depois que o primeiro pagamento real é feito, uma política rigorosa de pagamento sandbox entra em vigor. Os pagamentos feitos no modo sandbox estão disponíveis apenas para usuários especificados na Conta de Distribuidor > Company settings > Users.

Comprar moedas e itens virtuais com moedas reais só é possível após a assinatura de um contrato de licença com a Xsolla. Para fazer isso, na Conta de Distribuidor, vá para a seção Agreements & Taxes > Agreements, preencha o formulário de contrato e aguarde a confirmação. Pode levar até 3 dias úteis para revisar o contrato.

Para ativar/desativar o modo sandbox, você precisa alterar o valor do parâmetro sandbox na solicitação para a compra rápida e compra de um carrinho. O modo sandbox está desativado por padrão.

Obtenção do status do pedido do usuário

Você pode usar as seguintes maneiras de obter um status de pedido do usuário:

  1. No lado do servidor via webhooks.
  2. No lado do cliente via WebSocket API ou IGS API.

Obtenha o status do pedido do usuário no lado do servidor por meio de webhooks

Depois de configurar webhooks em seu servidor, você pode usá-los para obter os dados e o status do pedido.

Obtenha o status do pedido do usuário no lado do cliente via WebSocket API ou IGS API

Se você não tiver nenhum servidor ou implementar a lógica para processamento de compras no lado do cliente, você poderá usar as seguintes maneiras:
  1. WebSocket API.
  2. Short-polling.

Obtenção de status de pedido no lado do cliente usando WebSocket API

A solução utiliza websockets para obter diversos status do pedido sem obter informações detalhadas sobre ele. Esse método é preferível: apenas uma conexão é criada entre o cliente (por exemplo, seu site ou aplicativo móvel) e o servidor Xsolla, e portanto não há carga adicional no cliente ou no servidor.

Observação
Se você não tiver seu próprio servidor para lidar com webhooks, ou se você usar a lógica de processamento de compra do lado do cliente, você poderá usar o WebSocket API utilizando o Centrifuge SDK.

Conclua as seguintes etapas:

  1. Para permitir que o servidor de websocket Xsolla e o seu cliente identifiquem mensagens de status de pedido, crie uma conexão:

Copy
Full screen
Small screen
const client = new Centrifuge(
connectionURL,
{
data: {
  user_external_id: user_external_id,
  auth: auth,
  project_id: project_id
}
}
)
connectionURL - wss://ws-store.xsolla.com/connection/websocket
auth - user JWT token
  1. Para receber novas mensagens sobre status de pedidos, inscreva-se em eventos usando a função client.on:
Copy
Full screen
Small screen
client.on('publication', (ctx) => {
   //handle the status
});
  1. Acione o estabelecimento de uma conexão:
Copy
Full screen
Small screen
client.connect()
  1. Para receber o histórico de alterações nos status de pedidos, conecte o método API de histórico.
Copy
Full screen
Small screen
client.on('subscribed', function (ctx) {
   client.history(ctx.channel, { limit: -1, since: { offset: 0 }, reverse: false }).then(function (resp) {
resp.publications.forEach((ctx) => {
   /handle the status
});

   }, function (err) {
       //handle the status
   });
});

Exemplo de corpo de mensagem:

Copy
Full screen
Small screen
{
order_id: 59614241,
status: 'new'
}

Os seguintes status de pedido são possíveis:

  • New — o pedido foi criado mas não pago
  • Paid — o pedido foi pago
  • Done — o pedido foi entregue (todos os recibos enviados, entregas feitas do lado da Xsolla, plataformas externas, etc.)
  • Canceled — o pedido é cancelado e o pagamento reembolsado a um usuário

Recomendações de uso de websocket:

  • O tempo máximo de espera por uma resposta via websocket é de 5 minutos.
  • A conexão deve ser estabelecida ao abrir a interface de pagamento.
  • A conexão deve ser abortada quando o status final do pedido for recebido, seja ele Canceled ou Done.
  • Se o tempo de vida útil do websocket expirar, ou se houver qualquer problema com a conexão, utilize short-polling.

    Short-polling

    Para obter informações detalhadas sobre itens no pedido depois de alternar para o status, chame a API Obter pedido.

    Observação
    Uma pesquisa periódica de status do pedido é usada — uma solicitação HTTP simples que recebe o status do pedido e informações sobre o pedido. O atraso recomendado entre as solicitações é de 3 segundos.
    Este artigo foi útil?
    Obrigado!
    Podemos melhorar alguma coisa? Mensagem
    Que pena ouvir isso
    Explique porque este artigo não foi útil para você. Mensagem
    Obrigado pelo seu feedback!
    Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.
    Última atualização: 8 de Novembro de 2024

    Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.

Relatar um problema
Nós sempre avaliamos nossos conteúdos. Seu feedback nos ajuda a melhorá-los.
Forneça um e-mail para que possamos responder
Obrigado pelo seu feedback!