Integrar la tienda en el juego

Cuando haya creado y configurado los productos (objetos virtuales, monedas virtuales, lotes y claves) en su Cuenta del editor, añada una In-Game Store a su juego:

  1. Implemente la visualización del catálogo de artículos.
  2. Implemente la lógica de venta de artículos.

Visualización del catálogo de artículos

Nota
Para llamar a la API de Xsolla, puede utilizar los métodos del SDK prediseñados para motores y plataformas de juegos:

Implementar una visualización del catálogo de artículos a través de las llamadas In-Game Store API:

TareaAPI
Para visualizar una lista completa de los artículos virtuales añadidos a su TiendaObtener lista de artículos virtuales
Para mostrar una lista de grupos de artículos virtuales disponibles para la venta en el lado del clienteObtener lista de grupos de artículos
Para obtener una lista de las monedas virtuales disponibles para la venta en su Tienda en el lado del clienteObtener la lista de monedas virtuales
Para visualizar una lista completa de los paquetes de monedas virtuales añadidos a su Tienda en el lado del clienteObtener la lista de paquetes de monedas virtuales
Para visualizar una lista completa de los lotes añadidos a su TiendaObtener lista de lotes
Nota
Los métodos de obtención de catálogo devuelven los artículos que se muestran en la tienda en el momento de la solicitud. Para obtener información sobre los artículos cuyo periodo de visualización aún no ha comenzado o ya ha finalizado, transmita el parámetro show_inactive_time_limited_items con un valor de 1 al solicitar el catálogo.

Vender artículos

Puede vender artículos de las siguientes formas:

  1. Compra rápida de un artículo. En este caso, puede vender un código de artículo (SKU) en cualquier cantidad. (por ejemplo, 100 pociones idénticas o una cantidad personalizada de moneda virtual).
  2. Compra de una cesta. En este caso, el jugador puede prellenar una cesta y luego añadir o quitar artículos, o cambiar sus cantidades.

Compra rápida

  1. Llame a la API Create order with specified item. Se transmitirá un token a la respuesta para abrir la interfaz de pago.
  2. Abra la interfaz de pago utilizando el token de pago recibido.
Nota
La información sobre el descuento (personalizado o ligado a la compra) solo estará disponible para el usuario en la interfaz de pago. No está previsto el uso de códigos promocionales.
Nota
Para llamar a la API de Xsolla, puede utilizar los métodos del SDK prediseñados para motores y plataformas de juegos:

Compra con cesta

Implementar la lógica:
  1. Para establecer una cesta y obtener el token:
  2. Para abrir la interfaz de pago.

Establecer y comprar una cesta en el cliente

Implemente por sus medios la lógica de añadir y eliminar artículos. También debe tener en cuenta que antes de hace una llamada API para configurar una cesta, no tendrá información sobre qué promociones se aplicarán a la compra. Esto significa que no se conocerá el coste total ni los detalles de los artículos de bonificación añadidos.

  1. Después de que el jugador haya llenado una cesta, invoque la API Fill cart with items. La información actual sobre los artículos seleccionados (precios antes y después de descuentos, artículos de bonificación) se transmitirá a la respuesta.
  2. Llame a la API Create order with all items from current cart. El ID del pedido y el token de pago se transmitirán a la respuesta. El pedido creado recibirá el estado de pedido New.
  3. Abra la interfaz de pago.
Nota
Para llamar a la API de Xsolla, puede utilizar los métodos del SDK prediseñados para motores y plataformas de juegos:

Establecer y comprar una cesta en el servidor

Esta variante puede tardar más en configurar la cesta, ya que cada cambio en la cesta debe ir acompañado de llamadas API.

Realice los siguientes pasos:

  1. Modifique la cesta:

Nota
Si desea obtener el estado actual de la cesta, llame a la API Get current user’s cart.
  1. Llame a la API Create order with all items from the current cart. El ID del pedido y el token de pago se transmitirán a la respuesta. El pedido creado recibirá un estado de pedido New.
  2. Abra la interfaz de pago.

Abrir la interfaz de pago

Para pagar artículos, abra la interfaz de pago. Se transmitirá un token para abrir la interfaz de pago a la respuesta API Create order with all items from current cart.

Implemente la apertura de la interfaz de pago de una de las siguientes formas:

Probar el proceso de pago

Puede probar el flujo de pagos en el modo Aislador de proceso (Sandbox). Puede utilizar una tarjeta bancaria de prueba y cualquier cuenta.

Nota

Tras realizar el primer pago real, entra en vigor una estricta política de pagos en modo sandbox. Un pago realizado en modo sandbox solo está disponible para los usuarios especificados en Cuenta del editor en la sección Company settings > Users.

La compra de moneda y artículos virtuales por moneda real solo es posible tras firmar un acuerdo de licencia con Xsolla. Para ello, en la Cuenta del editor, vaya a la sección Agreements & Taxes > Agreements, cumplimente el formulario de acuerdo y espere la confirmación. La revisión del acuerdo puede tardar hasta 3 días laborables.

Para habilitar/deshabilitar el modo sandbox, debe cambiar el valor del parámetro sandbox en la solicitud a fast purchase y purchase a cart. El modo aislador de proceso (Sandbox) está desactivado por defecto.

Obtener el estado del pedido del usuario

Puede utilizar las siguientes formas para obtener el estado del pedido de un usuario:

  1. En el lado del servidor mediante webhooks.
  2. En el lado del cliente mediante WebSocket API o IGS API.

Obtener el estado del pedido del usuario en el lado del servidor mediante webhooks

Cuando haya configurado los webhooks en su servidor, podrá utilizarlos para obtener los detalles y el estado del pedido.

Obtener el estado del pedido del usuario en el lado del cliente a través de WebSocket API o IGS API

Si no dispone de servidor o implementa la lógica para el procesamiento de compras en el lado del cliente, puede utilizar las siguientes formas:
  1. WebSocket API.
  2. Short-polling.

Obtener el estado de un pedido en el lado del cliente usando la API de WebSocket

La solución usa websockets para obtener los estados del pedido sin recuperar información detallada sobre este. Este método es preferente: solo se crea una conexión entre el cliente (por ejemplo, su sitio web o aplicación móvil) y el servidor de Xsolla, por lo que no hay carga adicional ni en el cliente ni en el servidor.

Nota
Si no tiene un servidor propio para gestionar los webhooks, o emplea una lógica de procesamiento de compra en el lado del cliente, puede usar la API de WebSocket mediante el SDK de Centrifuge.

Dé los siguientes pasos:

  1. Para permitir que el servidor de Websocket de Xsolla y su cliente identifiquen los mensajes de estado del pedido, cree una conexión:

Copy
Full screen
Small screen
const client = new Centrifuge(
connectionURL,
{
data: {
  user_external_id: user_external_id,
  auth: auth,
  project_id: project_id
}
}
)
connectionURL - wss://ws-store.xsolla.com/connection/websocket
auth - user JWT token
  1. Para recibir nuevos mensajes sobre el estado del pedido, suscríbase a los eventos mediante la función client.on:
Copy
Full screen
Small screen
client.on('publication', (ctx) => {
   //handle the status
});
  1. Desencadenar el establecimiento de una conexión real:
Copy
Full screen
Small screen
client.connect()
  1. Para recibir el historial de cambios en los estados del pedido, conecte el método del historial de la API.
Copy
Full screen
Small screen
client.on('subscribed', function (ctx) {
   client.history(ctx.channel, { limit: -1, since: { offset: 0 }, reverse: false }).then(function (resp) {
resp.publications.forEach((ctx) => {
   /handle the status
});

   }, function (err) {
       //handle the status
   });
});

Ejemplo de cuerpo de mensaje:

Copy
Full screen
Small screen
{
order_id: 59614241,
status: 'new'
}

Están disponibles los siguientes estados de pedido:

  • New — pedido creado pero no pagado
  • Paid — pedido pagado
  • Done — pedido entregado (todos los recibos enviados, entregas realizadas por parte de Xsolla, plataformas externas, etc.)
  • Canceled — pedido cancelado y pago reembolsado a un usuario

El tiempo necesario para una respuesta vía Websocket es de 5 minutos. Después de ese tiempo o si hay algún problema con el Websocket, se recomienda utilizar el sondeo corto.

Sondeo corto

Para obtener información detallada sobre los artículos del pedido después de cambiar el estado, llame a la API Get order.

Nota
Se utiliza un sondeo periódico del estado del pedido: una simple solicitud HTTP que recibe el estado del pedido e información sobre el mismo. El retardo recomendado entre solicitudes es de 3 segundos.
¿Te ha resultado útil este artículo?
¡Gracias!
¿Hay algo en lo que podamos mejorar? Mensaje
Lo sentimos
Por favor, cuéntanos por qué no te ha resultado útil este artículo. Mensaje
¡Gracias por tu mensaje!
Nos ayudará a mejorar tu experiencia.
Última actualización: 3 de Octubre de 2024

¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.

Informar de un problema
Nos esforzamos por ofrecer contenido de calidad. Tus comentarios nos ayudan a mejorar.
Déjanos tu correo electrónico para que te podamos responder
¡Gracias por tu mensaje!