Inventario. Artículos de duración limitada
Cómo funciona
El artículo de duración limitada es una bonificación prémium que se compra una sola vez. Por lo tanto, el usuario tiene que volver a comprarlo cuando expire.
Características principales:
- El artículo de duración limitada puede venderse un número ilimitado de veces.
- Cuando el usuario vuelve a comprar el artículo, el número de artículos presentes en el inventario no cambia, pero aumenta el plazo de expiración del artículo.
- Puede configurar el plazo de expiración del artículo en su Cuenta del editor.
Restricciones:
- Sólo puede gestionar los artículos de duración limitada desde el lado del servidor del juego.
¿Quién puede utilizarlo?
- Socios que han integrado In-Game Store y desean establecer un nuevo tipo de artículo: artículos de duración limitada.
- Socios que desean vender
Season Pass ,Battle Pass , o diferentes tipos de artículos que proporcionan a los usuarios ventajas o contenido adicional (p. ej., artículos o tareas internos del juego) durante un periodo limitado.
Cómo conseguirlo
Requisitos previos
Si aún no ha integrado Xsolla Store, haga lo siguiente:
- Cree su cuenta de Cuenta del editorr.
- Vaya a Projects y haga clic en el botón Create project.
- Añada Project name y haga clic en Create.
- Conecte Store (Tienda) a su proyecto.
- Conecte el módulo Virtual Items.
Flujo de integración
- Crear un grupo de artículos.
- Crear artículos:
- Al crear un nuevo artículo, seleccione Time-limited items en el menú Item property.
- Defina el plazo de expiración.
- Implementar la obtención de artículos de duración limitada en el catálogo.
- Implementar métodos de compra de artículos de duración limitada.
Obtener artículos de duración limitada en el catálogo
Implemente el método API Obtener lista de artículos virtuales para mostrar la lista completa de artículos virtuales añadidos a su tienda.
EJEMPLO
- 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"
Comprar artículos de duración limitada
Tras la primera compra, el artículo de duración limitada se añade al inventario.
Después de la segunda compra y compras futuras:
- Si el artículo de duración limitada está activo, el plazo de expiración del artículo se agrega al tiempo restante.
- Si el artículo de duración limitada no está activo, el plazo de expiración del artículo está predeterminado.
Implemente los siguientes métodos para comprar artículos de duración limitada.
Obtener cesta
Implemente el método API Obtener cesta por el ID de la cesta o Obtener la cesta del usuario actual para comprar artículos virtuales. ID de la cesta se utilizará para añadir/eliminar artículos.
EJEMPLO
- 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
}
Crear pedido con todos los artículos
- Implemente uno de los métodos API:
- Crear pedido con todos los artículos de la cesta concreta si obtuvo la cesta mediante ID.
- Crear pedido con todos los artículos de la cesta actual si obtuvo la cesta actual.
El pedido creado recibirá un estado de pedido New.
- Para abrir la interfaz de pago en una nueva ventana, utilice el siguiente enlace:
https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN
, en el cualACCESS_TOKEN
es el token recibido al crear el pedido. - Para probar el proceso de pago:
- Utilice la siguiente URL:
https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN
. - Establezca el parámetro sandbox en true en la solicitud.
- Utilice la lista de tarjetas bancarias para pruebas.
- Utilice la siguiente URL:
EJEMPLO
- 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"
}
Obtener pedido
Implemente el método API Obtener pedido para determinar si la compra ya ha sido procesada. Son posibles los siguientes estados de pedido:- New: el pedido se ha creado pero no se ha pagado
- Paid: el pedido se ha pagado
- Cancelled: el pedido se ha cancelado
- Done: el pedido se ha pagado y el artículo se ha añadido al inventario.
- 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"
}
¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.