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:
- Implemente la visualización del catálogo de artículos.
- Implemente la lógica de venta de artículos.
Visualización del catálogo de artículos
Implementar una visualización del catálogo de artículos a través de las llamadas In-Game Store API:
Tarea | API |
---|---|
Para visualizar una lista completa de los artículos virtuales añadidos a su Tienda | Obtener lista de artículos virtuales |
Para mostrar una lista de grupos de artículos virtuales disponibles para la venta en el lado del cliente | Obtener 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 cliente | Obtener 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 cliente | Obtener la lista de paquetes de monedas virtuales |
Para visualizar una lista completa de los lotes añadidos a su Tienda | Obtener lista de lotes |
1
al solicitar el catálogo.Vender artículos
Puede vender artículos de las siguientes formas:
- 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).
- 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
- Llame a la API Crear pedido con un artículo especificado. Se transmitirá un token a la respuesta para abrir la interfaz de pago.
- Abra la interfaz de pago utilizando el token de pago recibido.
Compra con cesta
Implementar la lógica:- Para establecer una cesta y obtener el token:
- En el cliente - si desea implementar la cesta en su aplicación por su cuenta.
- En el servidor - si desea utilizar la solución de Xsolla (llamadas In-Game Store API) para gestionar la cesta.
- 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.
- Después de que el jugador haya llenado una cesta, invoque la API Llenar la cesta con artículos. 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.
- Llame a la API Crear pedido con todos los artículos de la cesta actual. El ID del pedido y el token de pago se transmitirán a la respuesta. El pedido creado recibirá el estado de pedido New.
- Abra la interfaz de pago.
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:
- Modifique la cesta:
- Para añadir un artículo o modificar la cantidad de artículos, llame a la API Actualizar artículo de la cesta por ID de la cesta.
- Para eliminar un artículo, llame a la API Eliminar artículo de la cesta por ID de la cesta.
- Llame a la API Crear pedido con todos los artículos de la cesta actual. El ID del pedido y el token de pago se transmitirán a la respuesta. El pedido creado recibirá un estado de pedido New.
- 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 Crear pedido con todos los artículos de la cesta actual.
Implemente la apertura de la interfaz de pago de una de las siguientes formas:
- En una ventana nueva. Para abrir la interfaz de pago en una nueva ventana del navegador, utilice el enlace:
https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN
, en el cualACCESS_TOKEN
es el token recibido al crear el pedido. - A través de widget. Utilice el script Xsolla PayStation Widget (el archivo README contiene las instrucciones).
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.
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.
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:
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: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.
Dé los siguientes pasos:
- Para permitir que el servidor de Websocket de Xsolla y su cliente identifiquen los mensajes de estado del pedido, cree una conexión:
- javascript
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
- Para recibir nuevos mensajes sobre el estado del pedido, suscríbase a los eventos mediante la función
client.on
:
- javascript
client.on('publication', (ctx) => {
//handle the status
});
- Desencadenar el establecimiento de una conexión real:
- javascript
client.connect()
- Para recibir el historial de cambios en los estados del pedido, conecte el método del historial de la API.
- javascript
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:
- javascript
{
order_id: 59614241,
status: 'new'
}
Están disponibles los siguientes estados de pedido:
New
— pedido creado pero no pagadoPaid
— pedido pagadoDone
— pedido entregado (todos los recibos enviados, entregas realizadas por parte de Xsolla, plataformas externas, etc.)Canceled
— pedido cancelado y pago reembolsado a un usuario
Recomendaciones de uso de Websocket:
- El tiempo de espera máximo de una respuesta mediante websocket es de 5 minutos.
- La conexión debería establecerse al abrir la interfaz de pago.
- La conexión debería interrumpirse cuando se reciba el estado final del pedido, ya sea
Canceled
oDone
. - Si se agota la vida útil del websocket o si hay cualquier problema con la conexión, recurra al 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 Obtener pedido.
NotaSe 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.Última actualización: 8 de Noviembre de 2024¿Te ha resultado útil este artículo?¡Gracias por tu mensaje!Nos ayudará a mejorar tu experiencia.¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.