Adicione itens ao inventário com base na solução Xsolla

A Xsolla fornece uma solução para a implementação do inventário do jogador com base no produto In-Game Store (Inventário do Jogador). Essa solução permite sincronizar todas as compras e recompensas premium do usuário entre as diversas plataformas.

Você pode adicionar itens comprados usando uma interface de pagamento terceirizada (por exemplo, Google Play In-App Purchase) no Inventário do Jogador.

Os itens são adicionados ao inventário quando a consulta do servidor API Grant items to users é chamada. Se você estiver usando o Firebase para o back-end do aplicativo, use a função de nuvem pronta:

  1. Adicione uma Cloud Function ao seu projeto Firebase.
  2. Implemente a lógica para chamar a função.

Adicione a Cloud Function ao projeto Firebase

  1. Inicialize seu projeto Firebase.
  2. Importe e configure a função para adicionar itens ao inventário onde:

    • <MerchantID>Merchant ID encontrado em Conta de Distribuidor:
      • Na seção Company settings > Company.
      • No URL na barra de endereços do navegador em qualquer página da Conta de Distribuidor. O URL tem o seguinte formato: https:​//publisher.xsolla.com/<merchant ID>/<Publisher Account section>.

    • <ProjectID>Project ID encontrado na Conta de Distribuidor:
      • Ao lado do nome do seu projeto.
      • Na seção Project Settings > Project ID.

    • <ApiKey>API key encontrada na Conta de Distribuidor na seção Company settings > API keys ou Project settings > API keys.
Aviso

Para obter mais informações sobre como trabalhar com chaves de API, consulte a Referência de API.

Principais recomendações:

  • Salve a chave de API gerada cuidadosamente. Você pode visualizar a chave de API na Conta de Distribuidor apenas uma vez, durante sua criação.
  • Mantenha sua chave de API em segredo. Ela fornece acesso à sua conta pessoal e aos seus projetos na Conta de Distribuidor.
  • A chave de API deve ser armazenada em seu servidor, e jamais em arquivos binários ou no frontend.

O código da função para adicionar itens ao inventário:
Copy
Full screen
Small screen
const merchantId = "<MerchantID>";
const projectId = "<ProjectID>";
const apiKey = "<ApiKey>";

exports.redeem = functions.https.onRequest((request, response) => {
  const sku = request.body.sku;
  const quantity = request.body.quantity;
  const userId = request.body.user_id;

  const authHeader = Buffer.from(`${merchantId}:${apiKey}`).toString("base64");

  const postData = JSON.stringify(
      [{
        "comment": "Purchased by Google Pay",
        "platform": "xsolla",
        "user": {
          "id": userId,
        },
        "items": [{
          "sku": sku,
          "quantity": quantity,
        }],
      }]
  );

  const options = {
    hostname: "store.xsolla.com",
    port: 443,
    path: `/api/v2/project/${projectId}/inventory/reward`,
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Content-Length": postData.length,
      "Authorization": `Basic ${authHeader}`,
    },
  };

  const req = https.request(options, (res) => {
    if (res.statusCode == 200) {
      response.status(200).send();
      return;
    }
    if (res.statusCode == 404) {
      response.status(404).send();
      return;
    }
    if (res.statusCode == 401) {
      response.status(401).send();
      return;
    }
    response.status(400).send();

    res.on("data", (d) => {
      process.stdout.write(d);
    });
  });
  req.on("error", (e) => {
    response.status(500).send(e.message);
  });

  req.write(postData);
  req.end();
});
  1. Implante a função em um ambiente de produção conforme este exemplo.

Chame a função do aplicativo

Para adicionar itens ao inventário, adicione a lógica para chamar a função do aplicativo, especifique redeem como o nome da função e passe os parâmetros sku, quantity, user_id para ele.

Algumas interfaces de faturamento (por exemplo, Google Play In-App Purchase) exigem o início da lógica para adicionar um item ao inventário no lado do cliente. Nesse caso, implemente um método do lado do cliente para chamar a função redeem.

Como exemplo de implementação para Android, você pode usar o módulo xsolla-googleplay-sdk que permite adicionar compras do Google Play In-App Purchases ao seu inventário.

Para aplicar o exemplo em seu projeto:

  1. Inicie o Android Studio.
  2. Adicione o módulo xsolla-googleplay-sdk ao seu projeto.
  3. Inicialize a biblioteca. Para fazer isso, adicione a seguinte linha ao código-fonte do projeto Android onde <your-deployment-host> é o host do URL da função da nuvem (por exemplo, https://us-central1-xsolla-sdk-demo.cloudfunctions.net):

Copy
Full screen
Small screen
InventoryAdmin.init("<your-deployment-host>")

O URL da função da nuvem é exibida na linha de comando do Firebase depois de executar a função em produção. Além disso, o URL da função está disponível no console do Firebase na seção Functions > Dashboard.

  1. Implemente a chamada do método InventoryAdmin.grantItemToUser (sku, userId, quantity, callback) de acordo com a lógica do aplicativo. O retorno de chamada retorna dados sobre o sucesso da adição do item ao inventário.
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.
Avalie esta página
Avalie esta página
Podemos melhorar alguma coisa?

Não quero responder

Obrigado pelo seu feedback!
Última atualização: 22 de Janeiro 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!