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:
- Implemente a exibição do catálogo de itens.
- Implemente a lógica de venda de itens.
Exibição do catálogo de itens
Implemente uma exibição do catálogo de itens por meio de chamadas da In-Game Store API:
Tarefa | API |
---|---|
Para exibir uma lista completa de itens virtuais adicionados à sua Store | Obter lista de itens virtuais |
Para exibir uma lista de grupos de itens virtuais disponíveis para venda no lado do cliente | Obter lista de grupos de itens |
Para obter uma lista de moedas virtuais disponíveis para venda na sua Store no lado do cliente | Obter lista de moedas virtuais |
Para exibir uma lista completa de pacotes de moedas virtuais adicionados à sua Store no lado do cliente | Obter lista de pacotes de moedas virtuais |
Para exibir uma lista completa de pacotes adicionados à sua Store | Obter lista de pacotes |
1
ao solicitar o catálogo.Venda de itens
Você pode vender itens das seguintes maneiras:
- 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).
- Comprar um carrinho. Neste caso, o jogador pode pré-encher um carrinho, adicionar ou remover itens, ou alterar suas quantidades.
Compra rápida
- Chame a API Create order with specified item . Um token para abrir a interface de pagamento será passado para a resposta.
- Abra a interface de pagamento usando o token de pagamento recebido.
Compra no carrinho
Implemente a lógica:- 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.
- 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.
- Depois que o jogador tiver preenchido um carrinho, chame a API Fill cart with items. As informações atuais sobre os itens selecionados (preços antes e depois dos descontos, itens bônus) serão passadas para a resposta.
- Chame a API Create order with all items from current cart. O ID do pedido e o token de pagamento serão passados para a resposta. O pedido criado receberá um status de pedido New.
- Abra a interface de pagamento.
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:
- Alterar o carrinho:
- Para adicionar um item ou alterar a quantidade do item, chame a API Update cart item by card ID.
- Para remover um item, chame a API Delete cart item by card ID.
- 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.
- 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 Create order with all items from current cart.
Implemente a abertura da interface de pagamento de uma das seguintes maneiras:
- Em uma nova janela. Para abrir a interface de pagamento em uma nova janela do navegador, use o link:
https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN
, ondeACCESS_TOKEN
é o token recebido quando o pedido foi criado. - Via widget. Use o script Xsolla PayStation Widget (o arquivo README contém instruções).
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.
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.
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:
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: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.
Conclua as seguintes etapas:
- Para permitir que o servidor de websocket Xsolla e o seu cliente identifiquem mensagens de status de pedido, crie uma conexão:
- javascript
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
- Para receber novas mensagens sobre status de pedidos, inscreva-se em eventos usando a função
client.on
:
- javascript
client.on('publication', (ctx) => {
//handle the status
});
- Acione o estabelecimento de uma conexão:
- javascript
client.connect()
- Para receber o histórico de alterações nos status de pedidos, conecte o método API de histórico.
- javascript
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:
- javascript
{
order_id: 59614241,
status: 'new'
}
Os seguintes status de pedido são possíveis:
New
— o pedido foi criado mas não pagoPaid
— o pedido foi pagoDone
— 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
O tempo necessário para uma resposta via websocket é de 5 minutos. Depois disso ou se houver algum problema com o websocket, recomenda-se usar short-polling.
Short-polling
Para obter informações detalhadas sobre itens no pedido depois de alternar para o status, chame a API get order.
Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.