Añadir artículos al inventario basándose en la solución de Xsolla

Xsolla proporciona una solución para la implementación del inventario del jugador basada en el producto In-Game Store (inventario del jugado). Esta solución le permite sincronizar todas las compras y recompensas prémium de usuario entre las distintas plataformas.

Puede añadir artículos adquiridos mediante una interfaz de pago de terceros (p. ej., Google Play In-App Purchase) a inventario del jugador.

Los artículos se añaden al inventario cuando se invoca a la consulta del servidor de API Conceder artículos a los usuarios. Si utiliza Firebase para el back-end de la aplicación, utilice la función de nube prediseñada:

  1. Añada una función de nube a su proyecto de Firebase.
  2. Implemente la lógica para llamar a la función.

Añadir Cloud Function al proyecto Firebase

  1. Inicialice su proyecto de Firebase.
  2. Importe y configure la función para añadir artículos al inventario en el que:

    • <MerchantID>Merchant ID se encuentra en Cuenta del editor:
      • en la sección Company settings > Company.
      • En la URL de la barra de direcciones del navegador de cualquier página de Cuenta del editor. La URL tiene el siguiente formato: https:​//publisher.xsolla.com/<merchant ID>/<Publisher Account section>.

    • <ProjectID> - ID del proyecto que se encuentra en Cuenta del editor:
      • Junto al nombre de su proyecto.
      • En la sección Project Settings > Project ID.

    • <ApiKey> - clave de API que se encuentra en Cuenta del editor en la sección Company settings > API keys o Project settings > API keys.
Aviso

Para obtener más información sobre cómo trabajar con claves API, consulte la Referencia de la API.

Recomendaciones clave:

  • Guarde la clave de API generada en su servidor. Puede ver la clave de API en la Cuenta del editor solo una vez cuando se crea.
  • Mantenga su clave de API en secreto. Proporciona acceso a su cuenta personal y a sus proyectos en Cuenta del editor.
  • La clave de API debe almacenarse en su servidor y nunca en archivos binarios o en el front-end.

El código de la función para agregar artículos al inventario:
Copy
Full screen
Small screen
const merchantId = "<MerchantID>";
const projectId = "<ProjectID>";
const apiKey = "<ApiKey>";

exports.redeem = functions.https.onRequest((request, response) => {
  const sku = request.body.sku;
  const quantity = request.body.quantity;
  const userId = request.body.user_id;

  const authHeader = Buffer.from(`${merchantId}:${apiKey}`).toString("base64");

  const postData = JSON.stringify(
      [{
        "comment": "Purchased by Google Pay",
        "platform": "xsolla",
        "user": {
          "id": userId,
        },
        "items": [{
          "sku": sku,
          "quantity": quantity,
        }],
      }]
  );

  const options = {
    hostname: "store.xsolla.com",
    port: 443,
    path: `/api/v2/project/${projectId}/inventory/reward`,
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Content-Length": postData.length,
      "Authorization": `Basic ${authHeader}`,
    },
  };

  const req = https.request(options, (res) => {
    if (res.statusCode == 200) {
      response.status(200).send();
      return;
    }
    if (res.statusCode == 404) {
      response.status(404).send();
      return;
    }
    if (res.statusCode == 401) {
      response.status(401).send();
      return;
    }
    response.status(400).send();

    res.on("data", (d) => {
      process.stdout.write(d);
    });
  });
  req.on("error", (e) => {
    response.status(500).send(e.message);
  });

  req.write(postData);
  req.end();
});
  1. Implemente la función en un entorno de producción conforme a este ejemplo.

Llamar a la función desde la aplicación

Para agregar artículos al inventario, añada la lógica para llamar a la función desde la aplicación, especifique redeem como nombre de la función y transmítale los parámetros sku, quantity y user_id.

Algunas interfaces de facturación (p. ej., Google Play In-App Purchase) requieren inicializar la lógica para agregar un artículo al inventario en el lado del cliente. En este caso, implemente un método del lado del cliente para llamar a la función redeem.

Como ejemplo de implementación para Android, puede utilizar el módulo xsolla-googleplay-sdk que le permite añadir compras de Google Play In-App Purchases a su inventario.

Para aplicar el ejemplo en su proyecto:

  1. Inicie Android Studio.
  2. Añada el módulo xsolla-googleplay-sdk a su proyecto.
  3. Inicialice la biblioteca. Para ello, añada la siguiente línea al código fuente de su proyecto de Android en la que <your-deployment-host>es el host de la URL de la función de nube (Cloud Function) (p. ej., https://us-central1-xsolla-sdk-demo.cloudfunctions.net):

Copy
Full screen
Small screen
InventoryAdmin.init("<your-deployment-host>")

La URL de la función de nube se muestra en la línea de comandos de Firebase tras ejecutar la función en producción. Además, la URL de la función está disponible en Firebase Console en la sección Functions > Dashboard.

  1. Implemente la llamada del método InventoryAdmin.grantItemToUser (sku, userId, quantity, callback) según la lógica de la aplicación. La devolución de llamada devuelve datos sobre el éxito del artículo que se agrega al inventario.
¿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.
Valore esta página
Valore esta página
¿Hay algo en lo que podamos mejorar?

Prefiero no responder

¡Gracias por tu mensaje!
Última actualización: 22 de Enero 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!