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:
Adicione a Cloud Function ao projeto Firebase
- Inicialize seu projeto Firebase.
- 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.
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.
- js
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();
});
- 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:
- Inicie o Android Studio.
- Adicione o módulo xsolla-googleplay-sdk ao seu projeto.
- 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
):
- kotlin
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
- 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?
Avalie esta página
Não quero responder
Obrigado pelo seu feedback!
Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.