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:
Añadir Cloud Function al proyecto Firebase
- Inicialice su proyecto de Firebase.
- 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.
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.
- js
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();
});
- 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:
- Inicie Android Studio.
- Añada el módulo xsolla-googleplay-sdk a su proyecto.
- 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
):
- kotlin
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
- 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?
Valore esta página
Prefiero no responder
¡Gracias por tu mensaje!
¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.