Como configurar o inventário multiplataforma
Como funciona
O Iinventário multiplataforma permite que os desenvolvedores de jogos sincronizem um inventário de usuário dentro de um jogo em diferentes plataformas (Steam, EGS, PlayStation, Xbox, etc.), gerenciem o inventário e o saldo de usuários e coletem dados sobre eles.
As etapas a seguir garantem a sincronização:
- O jogador vincula suas contas de plataforma à conta principal que é usada para identificar o jogador em diferentes plataformas.
- A Xsolla fornece o mecanismo para vincular contas de plataforma à conta principal e gerenciar a sincronização de inventário entre plataformas.
A solução inclui os seguintes componentes:
- cliente de jogo
- servidor de jogos
- aplicativo da web com uma interface de vinculação de conta
- Xsolla Login para fornecer a conta principal e um mecanismo de vinculação
- Xsolla Player Inventory para armazenar o inventário do usuário
Fluxo do usuário
Para vincular uma conta de plataforma (Steam ou EGS) à conta principal, você precisa implementar a identificação do usuário no jogo usando a conta Xsolla Login ou o algoritmo para vincular contas em plataformas de console de jogos.
O algoritmo para vincular a conta do console de jogo à conta principal é o seguinte:
- O jogador entra no jogo na plataforma do console de jogos pela primeira vez.
- O jogo mostra a mensagem que oferece vincular a conta da plataforma à conta principal.
- Se o jogador confirmar a ação:
- Ele é redirecionado para o aplicativo secundário (por exemplo, o site do jogo ou aplicativo móvel), onde ele pode autenticar ou criar a conta principal.
- Após a autenticação bem-sucedida no aplicativo, o jogador recebe um código alfanumérico para vincular as contas.
- O jogador retorna para a versão de console do jogo e insere o código.
- O link das contas principal e da plataforma e o console de jogos mostram a mensagem de confirmação.
- O inventário do jogador na plataforma sincroniza com o inventário vinculado à conta principal.
Quem pode usar
Desenvolvedores de jogos que planejam um lançamento multiplataforma de seu jogo e querem estabelecer uma base fiel de jogadores, dando aos jogadores acesso a suas compras e recompensas em qualquer plataforma.
Como obtê-lo
Para conectar um inventário de plataforma cruzada:
- Conecte o Player Inventory. Implemente a autenticação de acesso básica para trabalhar com os métodos de servidor e a autenticação Xsolla Login com base no protocolo OAuth 2.0 para trabalhar com os métodos de cliente. A autenticação baseada no protocolo OAuth 2.0 também é necessária para acessar os métodos da Login API e implementar os métodos de vinculação de conta.
- Implemente a interface de vinculação de conta, incluindo:
- autenticação baseada em servidor de jogo e gerenciamento de inventário
- autenticação com base no cliente de jogo e gerenciamento de inventário
- métodos de vinculação de conta
Interface de vinculação de conta
A interface de vinculação de conta deve fornecer as seguintes habilidades:
- capacidade de mostrar uma mensagem oferecendo vincular uma conta de plataforma à conta principal
- capacidade de concordar ou recusar vincular as contas
- capacidade de enviar o código para vincular as contas se o usuário concordar em vinculá-las
- capacidade de exibir o URL para o aplicativo móvel ou da web que é usado para vincular as contas
O mecanismo para autenticar usuários na conta principal é o seguinte:
- Integre o widget de Login com o aplicativo.
- Um JWT é passado para o aplicativo quando o usuário se autentica por meio do widget. Implemente a capacidade de passar um JWT do aplicativo para o método para obter o código de vinculação e exibir o código na interface do aplicativo.
- Implemente a autenticação através do JWT no lado do servidor do jogo.
- Implemente a passagem de um token,
user_id
na plataforma do console, e o ID da plataforma para o método de vinculação à conta principal quando o usuário entrar na versão console do jogo e enviar o código para vincular as contas.
Autenticação no servidor do jogo
Para acessar os métodos da Login API para gerenciar o inventário do jogador no servidor do jogo, você precisa configurar a autenticação OAuth 2.0 e obter um token de acesso ao servidor.client_id
e client_secret
, entre em contato com seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.- php
<?php
$uri = 'https://login.xsolla.com/api/oauth2/token';
$body = [
'grant_type' => 'client_credentials',
'client_id' => 1,
'client_secret' => 'client_secret'
];
$headers = [
'Content-type: application/x-www-form-urlencoded'
];
$request = curl_init($uri);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_POSTFIELDS, http_build_query($body));
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($request);
print_r($response);
Resposta:
- php
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"token_type":"bearer",
"expires_in":3600,
"scope": ""
}
Gerenciamento do inventário do jogador no servidor do jogo
Os métodos de gerenciamento de inventário incluem os seguintes métodos de servidor:
É necessário passar o user_id
do usuário na plataforma e o ID da plataforma para esses métodos.
Autenticação no cliente do jogo
Implemente o método de API Auth by custom ID para gerenciar o inventário do jogador no cliente do jogo. Passe os seguintes parâmetros na solicitação:
server_custom_id
— identificador de usuário exclusivo no jogosocial_profile.user_id
— identificador de usuário exclusivo na plataforma
Solicitação:
- php
<?php
$uri = 'https://login.xsolla.com/api/users/login/server_custom_id';
$queryParams = [
'publisher_project_id' => 44056
];
$queryParamsString = '?' . http_build_query($queryParams);
$body = '
{
"server_custom_id": "1234567890asdfghjkl",
"social_profile": {
"platform": "xbox_live",
"user_id": "4352354"
}
}
';
$headers = [
'Content-type: application/json',
'x-server-authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
];
$request = curl_init($uri . $queryParamsString);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $body);
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($request);
Resposta:
- php
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
Gerenciamento do inventário do jogador no cliente do jogo
Os métodos de gerenciamento de inventário incluem os seguintes métodos de cliente:
Para gerenciar o inventário do jogador em plataformas de console:
- Implemente a passagem do ID da plataforma aos métodos de cliente para armazenar o saldo de moeda premium nas plataformas de distribuição de console de acordo com os regulamentos das plataformas de console.
- Implemente as seguintes etapas no servidor do jogo para gerenciar o inventário do usuário no cliente do console:
- O jogo recebe um token de acesso ao servidor para tokenização do usuário.
- O jogo recebe o JWT do usuário pelo
user_id
na plataforma e o ID da plataforma. - O jogo passa o JWT para os métodos de cliente especificados.
Métodos de vinculação de conta
Obtenção do código de vinculação
Implemente o método de API Create code for linking accounts para obter o código de vinculação e passá-lo para o usuário.
Solicitação:
- js
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://login.xsolla.com/api/users/account/code");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");
xhr.send(data);
Resposta:
- js
{
"code": "123456"
}
Vinculação à conta principal
Implemente o método de API Link accounts by code, onde:
code
— código de vinculaçãopublisher_project_id
— ID do projeto da Conta de Distribuidoruser_id
— identificador de usuário na plataforma
Certifique-se de concluir as seguintes etapas antes de chamar o método:
- Implementar a interface para exibir o código de vinculação da conta e o formulário para inserir o código recebido.
- Implementar o método para obter um token de acesso ao servidor.
- Implementar o método para obter o código de vinculação.
- php
<?php
$uri = 'https://login.xsolla.com/api/users/account/link';
$body = '
{
"code": "234155",
"platform": "xbox_live",
"publisher_project_id": "12423354",
"user_id": "4352354"
}
';
$headers = [
'Content-type: application/x-www-form-urlencoded',
'x-server-authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
];
$request = curl_init($uri);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $body);
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($request);
Resposta:
- php
204 OK
Lista de plataformas
Plataforma | ID da plataforma | Comentário |
---|---|---|
PlayStation Network | playstation_network | - |
Xbox Live | xbox_live | - |
PC Autônomo | pc_standalone | - |
Nintendo eShop | nintendo_shop | - |
Google Play | google_play | - |
Apple Store | app_store_ios | - |
Android Autônomo | android_standalone | O jogo é publicado individualmente fora das lojas. |
iOS Autônomo | ios_standalone | O jogo é publicado individualmente fora das lojas. |
Android Outros | android_other | O jogo é publicado em uma loja alternativa no PlayMarket. |
iOS Outros | ios_other | O jogo é publicado em uma loja alternativa na AppStore. |
PC Outros | pc_other | - |
Xsolla | xsolla | - |
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.