Inventário. Itens de tempo limitado
Como funciona
O item de tempo limitado é um bônus premium que é uma compra única. Portanto, o usuário precisa comprá-lo novamente quando ele expirar.
Principais características:
- O item de tempo limitado pode ser vendido por um número ilimitado de vezes.
- Quando o usuário compra o item novamente, o número de itens no inventário não muda, mas o tempo antes do item expirar aumenta.
- Você pode configurar a validade do item em sua Conta de Distribuidor.
Restrições:
- Você pode gerenciar os itens por tempo limitado apenas do lado do jogo servido.
Quem pode usar
- Parceiros que integraram a In-Game Store e desejam configurar um novo tipo de item — itens de tempo limitado.
- Parceiros que desejam vender
Season Pass ,Battle Pass , ou diferentes tipos de itens que dão aos usuários vantagens ou conteúdos adicionais (por exemplo, itens de jogo ou tarefas) por um período limitado de tempo.
Como obtê-lo
Pré-requisitos
Se você ainda não integrou a Xsolla Store, faça o seguinte:
- Crie sua Conta de Distribuidor Xsolla.
- Vá para Projetos e clique no botão Create project.
- Adicione o Project name e clique em Create.
- Conecte a Store ao seu projeto.
- Conecte o módulo Virtual Items.
Fluxo de integração
- Crie um grupo de itens.
- Crie itens:
- Ao criar um novo item, escolha Time-limited items no menu Item property.
- Especifique a validade.
- Implemente a obtenção de itens de tempo limitado no catálogo.
- Implemente a obtenção de itens de tempo limitado em um inventário.
- Implemente métodos para a compra de itens de tempo limitado.
Obtendo itens de tempo limitado no catálogo
Implemente o método de API Get virtual items list para mostrar a lista completa de itens virtuais adicionados à sua loja.
EXEMPLO
- 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://store.xsolla.com/api/v2/project/44056/items/virtual_items?locale=en");
xhr.send(data);
//RESPONSE
"items": [
{
"attributes": [],
"description": "Conquer your foes with vindication using the Basic Blaster! ",
"groups": [
"all",
"featured",
"Xsolla",
"weapons"
],
"image_url": "https://cdn.xsolla.net/img/misc/images/0c59a7698d4f66c1008b27ee752089b7.png",
"is_free": false,
"name": "Xsolla Basic Blaster 1",
"order": 1,
"price": {
"amount": "0.9950000000000000",
"amount_without_discount": "1.9900000000000000",
"currency": "USD"
},
"sku": "gun_1",
"type": "virtual_good"
Obtendo itens de tempo limitado no inventário
Use o métodoCompra de itens de tempo limitado
Após a primeira compra, o item de tempo limitado é adicionado ao inventário.
Após a segunda e futuras compras:
- Se o item de tempo limitado estiver ativo, a validade do item será somada com o tempo restante.
- Se o item de tempo limitado não estiver ativo, a validade do item será o tempo padrão.
Implemente os seguintes métodos para comprar itens de tempo limitado.
Obter carrinho
Implemente o método de API Get cart by ID ou Get current user’s cart para comprar itens virtuais. O Cart ID do carrinho será usado para adicionar/remover itens.
EXEMPLO
- 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://store.xsolla.com/api/v2/project/44056/cart/custom_id?locale=en¤cy=USD");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");
xhr.send(data);
//RESPONSE
{
"cart_id": "custom_id",
"is_free": true,
"items": [],
"price": null
}
Criar pedido com todos os itens
- Implemente um dos métodos API:
- Create order with all items from particular cart se você tem o ID do carrinho.
- Create order with all items from current cart se você tem o carrinho atual.
O pedido criado receberá um status de pedido New.
- Para abrir a interface do usuário de pagamento em uma nova janela, use o seguinte link:
https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN
, ondeACCESS_TOKEN
é o token recebido quando o pedido foi criado. - Para testar o processo de pagamento:
- Use o seguinte URL:
https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN
. - Defina o parâmetro sandbox como true na solicitação.
- Use a lista de cartões bancários de teste.
- Use o seguinte URL:
EXEMPLO
- js
var data = JSON.stringify({
"currency": "USD",
"locale": "en",
"sandbox": false
});
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://store.xsolla.com/api/v2/project/44056/payment/cart/custom_id");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");
xhr.send(data);
//RESPONSE
{
"order_id": 641,
"token": "f4puMEFFDZcx9nv5HoNHIkPe9qghvBQo"
}
Obter pedido
Implemente o método de API Get order para determinar se a compra já foi processada. Os seguintes status de pedido são possíveis:- Novo — o pedido foi criado, mas não foi pago
- Pago — o pedido foi pago
- Cancelado — o pedido foi cancelado
- Concluído — o pedido foi pago e o item foi adicionado ao inventário
- 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://store.xsolla.com/api/v2/project/44056/order/656");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");
xhr.send(data);
//RESPONSE
{
"content": {
"is_free": false,
"items": [
{
"is_free": false,
"price": {
"amount": "0.9950",
"amount_without_discount": "1.9900",
"currency": "USD"
},
"quantity": 123,
"sku": "gun_1"
}
],
"price": {
"amount": "122.3850",
"amount_without_discount": "122.3850",
"currency": "USD"
}
},
"order_id": 656,
"status": "new"
}
Gerenciamento de itens de tempo limitado do lado do servidor
Concessão
O servidor do jogo pode conceder o item de tempo limitado aos usuários por meio do método de concessão.
A validade do item de tempo limitado será calculado da mesma forma que durante a compra do item de tempo limitado.
Revogação
O servidor do jogo pode revogar o item do usuário através do método de revogação. Revogar o item significa que ele será completamente excluído do inventário do usuá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.