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 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
- javascript
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"
Compra 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
- javascript
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
- javascript
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
- javascript
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"
}
Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.