Primeros pasos

Descripción general

La API de Xsolla incluye:

La API de Xsolla utiliza la arquitectura REST. La API tiene varias URL predecibles y orientadas a recursos, y usa códigos de respuesta HTTP para indicar errores de API. La API siempre responde en el formato JSON, incluso en caso de errores.

La API utiliza funciones HTTP integradas, como la autenticación HTTP y los verbos HTTP, que pueden ser interpretados por clientes HTTP estándar. También admite el uso compartido de recursos con orígenes cruzados, lo cual permite acceder a ella de forma segura desde una aplicación web cliente.

La API de Xsolla usa las siguientes cadenas de puntos finales:
  • https://api.xsolla.com - Pay Station API, Subscriptions API
  • https://login.xsolla.com/api - Login API
  • https://store.xsolla.com/api - IGS API
La mayoría de las cadenas de puntos finales incluyen el parámetro merchant_id. Esto indica que la aplicación solicitante se ejecuta en su nombre.

Solicitudes y respuestas

Las solicitudes a la API de Xsolla deben:
  • enviarse a través de HTTPS,
  • utilizar TLS 1.2 o superior,
  • contener parámetros de autenticación,
  • contener un encabezado adicional: Content-Type: application/json para solicitudes PUT y POST.
Copy
Full screen
Small screen
    Authorization: Basic <your_authorization_basic_key>
    Content-Type: application/json
    

    Por defecto, todas las solicitudes devuelven una respuesta con datos en JSON en el cuerpo y Content-Type: application/json en el encabezado.

    Cambios en la API

    Xsolla puede cambiar la funcionalidad de la API de la siguiente manera:
    • Agregar nuevos recursos de API
    • Agregar parámetros de solicitud opcionales
    • Agregar nuevas propiedades a las respuestas de API existentes
    • Agregar nuevos valores para los parámetros existentes con valores enumerables
    • Agregar nuevos tipos de webhook y parámetros de JSON
    • Agregar encabezados de solicitud HTTP opcionales
    • Rechazar cualquier solicitud en la que los parámetros válidos contengan valores no válidos
    • Rechazar solicitudes formadas erróneamente que fueron aceptadas previamente debido a un análisis tolerante, si se cambia la lógica de análisis
    • Agregar, cambiar o eliminar funciones no documentadas en cualquier momento
    Su cliente debe seguir funcionando independientemente de estos cambios. Por ejemplo, los nuevos parámetros de JSON que el cliente no reconozca no deberían impedir su funcionamiento normal.

    Control de versiones

    Todos los métodos API de Xsolla admiten el control de versiones. Publicaremos una nueva versión cada vez que haya cambios incompatibles con la versión actual. La versión se identifica por “v1”/“v2”/etc. después del prefijo “/merchant” en la URL. Si es la primera vez que trabaja con la API, utilice la última versión. Si omite la versión, usaremos la primera versión por defecto.
    Nota
    No olvide que solo podemos garantizar la integridad de la API dentro de la misma versión.

    Autenticación

    La API de Xsolla utiliza los siguientes tipos de autenticación:
    • Autenticación de acceso básica. Estas solicitudes a la API deben contener el encabezado Authorization: Basic <your_authorization_basic_key<, en el cual <your_authorization_basic_key> es el par ID de comerciante:clave de API, codificado según el estándar Base64. Acceda a Cuenta del editor para localizar estos parámetros:
      • El ID de comerciante se muestra:
        • en la sección Configuración de la empresa > Empresa.
        • en la URL de la barra de direcciones del navegador en cualquier página de Cuenta del editor. La URL tiene el siguiente formato: https:​//publisher.xsolla.com/<merchant ID>/<Publisher Account section>.
      • La clave de API se muestra en Cuenta del editor una sola vez cuando se crea y debe almacenarse en su servidor. Puede crear una nueva clave en la siguiente sección:
        • Configuración de la empresa > Claves API
        • Configuración del proyecto > Claves API
    • Autenticación mediante JWT de usuario. Estas solicitudes a la API deben contener el encabezado Authorization: Bearer <user_JWT>, en el que <user_JWT> es el token del usuario.
    • Autenticación mediante el JWT del servidor. Estos métodos API deben contener el encabezado X-SERVER-AUTHORIZATION: <server_JWT>, en el que <server_JWT> es el token del servidor.
    • Sin autenticación.
    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.

    Si una llamada API que necesita no contiene el parámetro de ruta project_id, use la clave de API que sea válida en todos los proyectos de la empresa para establecer la autorización.

    Llamadas API por modelo de interacción

    A la hora de integrar productos de Xsolla mediante la API Xsolla, es conveniente usar las llamadas API conforme a su uso previsto:
    • Llamadas API del lado del cliente: llamadas API para la interacción entre la parte cliente de la aplicación del socio y el servidor de Xsolla. Las acciones del usuario en el lado cliente inician el proceso de solicitud de estas llamadas API. Ejemplo de llamadas API del lado del cliente: obtención de una lista de artículos, autenticación de usuario, obtención de un token de pago en el lado del cliente.
    • Llamadas API del lado del servidor: llamadas API para iniciar la interacción entre el servidor del socio y el servidor de Xsolla, las cuales están destinadas a las siguientes tareas:
      • Implementación del flujo de usuario.
        Las acciones del usuario en el lado del cliente desencadenan la invocación de la llamada API del lado cliente del socio y, después, se invoca la llamada API del lado del servidor Xsolla en el servidor del socio. Ejemplos de llamadas API del servidor para implementar el flujo de usuario: actualizar los atributos de usuario en el servidor, obtención de un token de pago en el lado del servidor.
      • Tareas administrativas o de configuración de productos de Xsolla realizadas por el socio.
        Las acciones del usuario en el lado del cliente no pueden iniciar una llamada a estos métodos. Ejemplos de llamadas API del servidor de administración: creación y edición de un artículo o una promoción.
    Una integración adecuadamente configurada ayuda a evitar los errores más comunes:
    Lado del clienteLado del servidor
    Para la implementación del flujo de usuario.Para tareas administrativas
    InteracciónCliente a servidor.
    La solicitud se envía desde el cliente del juego directamente al servidor de Xsolla.
    Servidor a servidor.
    La solicitud se envía desde el cliente del juego al servidor del juego y, luego, desde al servidor del juego al servidor de Xsolla.
    Servidor a servidor.
    La solicitud se envía desde el servidor del sistema del socio al servidor de Xsolla.
    AutenticaciónJSON Web Token (JWT) del usuario o sin autenticación.Autenticación de acceso básica o JWT del servidor .Autenticación de acceso básica
    Límites de frecuenciaPuede soportar cargas elevadas.Puede soportar cargas elevadas.Diseñadas para el uso exclusivo de los socios, por lo que estas llamadas API tienen requisitos de bajo rendimiento y estrictos límites de frecuencia.
    Acceso de usuarioLas llamadas API se usan en el lado del cliente para que los datos puedan mostrarse con rapidez al usuario. Por ejemplo, un catálogo de artículos o los atributos de usuario: el número de compras o el nivel conseguido en el juego.
    Todos los datos son de libre acceso en el código del cliente.
    No utilice estas llamadas API para operar con datos que no deberían estar disponibles para que el usuario los edite. Por ejemplo, para actualizar los atributos de usuario.
    Las llamadas API se usan para la interacción entre servidores, por lo que el usuario no puede acceder a los datos.
    Utilice estas llamadas API para operar con datos que el usuario no pueda modificar.
    Las llamadas API no se utilizan para implementar el flujo del usuario.
    Determinación del país y de la monedaEl país y la moneda vienen determinados por la dirección IP del cliente desde la cual se envía la solicitud.
    Por lo tanto, es esencial usar estas llamadas API en el lado del cliente y no en el del servidor.
    El país y la moneda vienen determinados por la dirección IP del servidor desde la cual se envía la solicitud.

    Por lo tanto, es importante transmitir los datos de país/moneda del usuario en el encabezado o parámetro de acuerdo con la descripción presente en la llamada API utilizada.
    Las llamadas API no se utilizan para implementar el flujo del usuario.

    Puede determinar si una llamada API es del lado del cliente o del lado del servidor por el esquema de autenticación:

    • Lado del cliente: se invocan sin autenticación o con el encabezado Authorization header: Bearer <user_JWT>, en el cual <user_JWT> es el token de usuario.
    • Las llamadas API del servidor para implementar el flujo de usuario - se invocan con el encabezado:
      • X-SERVER-AUTHORIZATION: <server_JWT>, en el cual <server_JWT> - es el token del servidor.
      • Authorization: Basic <your_authorization_basic_key>, en el cual el par <your_authorization_basic_key>-project_id:api_key, codificado según el estándar Base64.
    • Llamadas API del lado del servidor para tareas administrativas - se invocan con el encabezado Authorization: Basic <your_authorization_basic_key>, en el cual el par<your_authorization_basic_key>-project_id:api_key, codificado según el estándar Base64.

    Ejemplo de llamadas API del lado del servidor con autenticación en el lado del servidor:

    Ejemplo de llamadas API del lado cliente con autenticación en el lado cliente:

    En función de sus requisitos, puede elegir cómo establecer la integración a la hora de implementar el flujo del usuario: con llamadas API del lado del servidor o del lado del cliente. Las llamadas API administrativas del servidor no deben usarse para implementar el flujo del usuario.

    Ejemplo de implementación del flujo de usuario utilizando llamadas API del lado cliente:

    1. El usuario ejecuta acciones en el lado cliente. Por ejemplo: llena la cesta o hace una compra de artículos.
    2. El cliente del juego envía una solicitud con datos al servidor de Xsolla.
    3. El servidor de Xsolla envía una respuesta al cliente del juego.
    4. El cliente del juego muestra el resultado al usuario.

    En este flujo se usa la autenticación a través de un JWT de usuario.

    Ejemplo de implementación de un flujo de usuario utilizando llamadas API del lado del servidor:

    1. El usuario ejecuta acciones en el lado cliente. Por ejemplo: llena la cesta o hace una compra de artículos.
    2. El cliente del juego envía una solicitud al servidor del juego.
    3. Si es preciso, el socio implementa un procesamiento de datos adicional en el servidor del juego.
    4. El servidor del juego envía una solicitud al servidor de Xsolla.
    5. El servidor de Xsolla envía una respuesta al servidor del juego.
    6. El servidor del juego procesa los datos y envía una respuesta al cliente del juego.
    7. El cliente del juego muestra el resultado al usuario.

    En este flujo, se emplea la autenticación de acceso básica o un token de servidor.

    Flujo de interacción cuando se usan llamadas API de administración del lado del servidor:

    1. El socio envía una solicitud desde el cliente o el servidor de su aplicación al servidor de Xsolla.
    2. El servidor de Xsolla devuelve una respuesta con el resultado del procesamiento de la solicitud.
    En este flujo se emplea la autenticación de acceso básica.

    Tipos de puntos finales

    El tipo de un punto final indica qué tipo de datos gestiona y qué acción realiza sobre ellos. Las acciones más comunes son:
    AcciónMétodo HTTPDescripción
    CrearPOSTCrea y guarda una entidad del tipo especificado.
    ListaGETDevuelve una lista de entidades que coinciden con la consulta. Para obtener detalles sobre una entidad, primero averigüe su ID usando el correspondiente punto final de Lista y, después, proporcione este ID al correspondiente punto final de recuperación.
    RecuperarGETProporciona detalles sobre la entidad con el ID especificado.
    SustituirPUTModifica todos los campos de la entidad con el ID especificado.
    ActualizarPATCHModifica los campos especificados de la entidad con el ID especificado.
    EliminarDELETEElimina la entidad con el ID especificado.

    Formato de fecha

    Todas las fechas se especifican como cadenas según ISO 8601. Puede especificar cadenas de fechas, ya sea en UTC (p. ej., 2013-01-15T00:00:00Z), o indicando el desfase horario de UTC (p. ej., 2013-01-15T00:00:00-08:00 para ocho horas por detrás de UTC). En este último caso, asegúrese de tener en cuenta el horario de verano, si procede.

    Paginación

    Los puntos finales de lista pueden realizar la paginación de los resultados que devuelven. Esto significa que, en lugar de devolver todos los resultados en una única respuesta, estos puntos finales podrían devolver algunos de los resultados, junto con un encabezado de respuesta que enlace con el siguiente conjunto de resultados. Para ello se utilizan los parámetros offset (desplazamiento) y limit (límite).

    Gestión de errores

    Lista de errores HTTP admitidos:
    • 200, 201, 204 - Ningún error
    • 400 Bad Request: suele indicar que falta un parámetro obligatorio. Consulte el cuerpo de la respuesta para obtener más información
    • 401 Unauthorized: no se proporcionó una clave de API válida
    • 402 Request Failed: error de solicitud aunque los parámetros son válidos
    • 403 Forbidden: sin autorización. Consulte el cuerpo de la respuesta para obtener más información
    • 404 Not Found: el elemento solicitado no existe
    • 409, 422: parámetros de solicitud no válidos
    • 412 Precondition Failed: el proyecto aún no ha sido activado (utilizado en el método Crear token)
    • 415 Unsupported Media Type: falta Content-Type: application/json en el encabezado HTTP
    • Errores de servidor 500, 502, 503 y 504: Se ha producido un error
    Xsolla emplea códigos de respuesta HTTP convencionales para indicar si la solicitud API fue fue aceptada. En general, 2xx indica aceptación, 4xx indica un error en la información suministrada (p. ej., falta un parámetro requerido, autorización fallida, etc.) y 5xx indica un problema con los servidores de Xsolla. Pero no todos los errores coinciden perfectamente con los códigos de respuesta HTTP. Por ejemplo, si una solicitud era válida pero no se puedo procesar, la API devolverá el código de error 422. Todas las respuestas de error de API proporcionan un objeto JSON con los siguientes campos:
    NombreTipoDescripción
    http_status_codeintegerCódigo HTTP.
    mensajestringUn mensaje legible para seres humanos en el que se describe el error. Este mensaje siempre está en inglés. No confíe en este valor para asignarlo a un error concreto, ya que podría cambiar en el futuro.
    extended_messagestringDescripción del error más detallada.
    request_idstringID único de solicitud que podría utilizarse para solucionar problemas.
    Copy
    Full screen
    Small screen
    {
        "http_status_code": 500,
        "message": "Internal Server Error",
        "extended_message": null,
        "request_id": "6445b85"
    }
    

    Límites de frecuencia

    Información general

    Para evitar la sobrecarga de los sistemas de Xsolla y protegerlos de las ráfagas de tráfico entrante, Xsolla limita el número de solicitudes recibidas por Xsolla API durante un periodo especificado. Si se excede el límite, la API de Xsolla devuelve una respuesta HTTP con el código de estado 429. Los límites varían según el método, el proyecto y otros factores. Los límites actuales se actualizan periódicamente para asegurar el funcionamiento estable e ininterrumpido de los sistemas de Xsolla. En algunos casos, se pueden ajustar los límites especificados previa solicitud. Puede contactar con su gestor del éxito del cliente o enviar un correo electrónico a csm@xsolla.com para enviar una solicitud.

    Causas habituales de superación de los límites de frecuencia

    • Un aumento repentino del tráfico en el lado del socio como consecuencia de:
      • rebajas de temporada
      • inicio de pruebas cerradas y abiertas
    • Aumento repentino del tráfico a raíz de ataques DDoS en el lado del socio.
    • Una integración mal configurada, por ejemplo:
      • usar los métodos de la subsección Admin que no están destinados a un uso frecuente en lugar de los métodos de la subsección Catálogo
      • llamada frecuente del método Obtener pedido para obtener el estado de un pedido y la lista de artículos que lo componen. Por ejemplo: 1 por segundo cuando el retraso recomendado entre solicitudes debería ser de 3 segundos
    • Lanzar un número excesivamente elevado de solicitudes en un periodo determinado. Por ejemplo: más de 200 llamadas por segundo al método Obtener lista de artículos virtuales para mostrar un catálogo de artículos.

    Gestión de los límites de frecuencia

    Para evitar errores causados por los límites de frecuencia, le recomendamos que:
    • Haga un seguimiento de los códigos de estado 429 y crea un mecanismo de reintento. Puede utilizar el patrón de reintentos con un retroceso fijo o exponencial entre reintentos en vez de reintentos continuos.
    • Optimice el código para obtener solo los datos requeridos. Asegúrese de realizar sólo las solicitudes que requiere su aplicación y evite las llamadas API innecesarias. Si utiliza la API IGS API, puede usar la API WebSocket para reducir el número de llamadas.
    • Almacene en caché los datos que su aplicación usa con frecuencia. Puede mantener los datos estáticos en su lado y reducir el número de solicitudes a la API externa.
    • Evite los ataques DDoS que pueden dañar su API.
    • Ajuste la frecuencia de sus solicitudes para lograr una distribución más uniforme. Si el error 429 se produce con regularidad, considere la opción de incluir un proceso en su código que regule la frecuencia de sus solicitudes y permita que se distribuyan de forma más uniforme.

    Claves API

    Una clave API es una clave única que se usa para el cifrado de datos de usuarios y la autenticación de solicitudes API. En Cuenta del editor, puede crear claves API para todos los proyectos de la empresa y para un proyecto individual.

    Nota
    Las claves API que son válidas en todos los proyectos de la empresa no se muestran en las páginas de proyectos individuales.
    Aviso

    Puede trabajar con claves API (consultar la lista, crear y eliminar) si tiene uno de los siguientes roles:

    • desarrollador
    • propietario

    Solamente el propietario de un proyecto puede cambiar los roles en Cuenta del editor en la sección Company settings > Users.

    Crear clave de API

    Para crear una clave de API:
    1. Abra Cuenta del editor.
    2. Vaya a la sección Company settings > API keys o Project settings > API keys.
    3. Haga clic en Create API key.
    4. Rellene los campos:
      • Key name que se mostrará en la lista de claves. Establezca un nombre que le permita identificar fácilmente la clave.
      • Key type: permanente o temporal.
      • Expiration date: solo para una clave temporal. Después de la fecha de expiración, la clave deja de ser válida y es necesario crear una nueva.
      • Project en el que la clave es válida (el campo no se muestra cuando se crea una clave de API en la página del proyecto). Todos los proyectos están seleccionados por defecto.
    5. Haga clic en Create.
    6. En la ventana que se abre, haga clic en Copy API key y guarde la clave API creada en su lado.
    Nota
    Si crea una clave de API en la página del proyecto, la clave solo será válida en este proyecto concreto.
    Aviso

    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.

    Si una llamada API que necesita no contiene el parámetro de ruta project_id, use la clave de API que sea válida en todos los proyectos de la empresa para establecer la autorización.

    Eliminar una clave API

    Para eliminar una clave API:
    1. Abra Cuenta del editor.
    2. Vaya a la sección Company settings > API keyso Project settings > API keys.
    3. En la fila de la clave API, haga clic en el icono de la papelera y confirme la acción.
    Al eliminar una clave de API se deja de:
    • recibir pagos en los proyectos en los que se utilizó esta clave de API
    • llamando a métodos API que utilizaron esta clave de API
    Para evitarlo:
    1. Cree una nueva clave de API.
    2. Cambie su aplicación para que use la nueva clave de API.
    3. Elimine la clave de API inicial.

    Webhooks

    Los webhooks le permiten recibir notificaciones instantáneas de eventos configurados en el lado de Xsolla. Puede establecer webhooks de procesamiento para automatizar su aplicación. Consulte nuestra documentación para obtener la lista de webhooks disponibles y descripciones detalladas de cómo funcionan.

    ¿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: 18 de Noviembre de 2024

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