Descripción general
La API de Xsolla incluye:
- Pay Station API: interfaz de de pago y métodos de tokenización.
- IGS&BB API: métodos para trabajar con los módulos In-Game Store y Buy Button.
- Subscriptions API: métodos para suscripciones.
- Publisher Account API: métodos para trabajar con proyectos y usuarios de Cuenta del editor, informes y tickets de asistencia.
- Login API: métodos para la autenticación de usuarios utilizando su propia interfaz (consulte la guía de integración).
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, Publisher Account API, Subscriptions APIhttps://login.xsolla.com/api
- Login APIhttps://store.xsolla.com/api
- IGS&BB API
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.
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
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.Autenticación
La API de Xsolla usa la autenticación HTTP básica. Todas las solicitudes a la API debe contener el encabezadoAuthorization: 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. Vaya a Cuenta del editor para localizar estos parámetros:- Merchant ID se muestra:
- 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>
.
- Clave de API se muestra en la Cuenta del editor solo una vez cuando se crea y debe almacenarse en su servidor. Puede crear una nueva clave en la siguiente sección:
- Company settings > API keys
- 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.
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ón | Método HTTP | Descripción |
---|---|---|
Crear | POST | Crea y guarda una entidad del tipo especificado. |
Lista | GET | Devuelve 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. |
Recuperar | GET | Proporciona detalles sobre la entidad con el ID especificado. |
Sustituir | PUT | Modifica todos los campos de la entidad con el ID especificado. |
Actualizar | PATCH | Modifica los campos especificados de la entidad con el ID especificado. |
Eliminar | DELETE | Elimina 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
422
.
Todas las respuestas de error de API proporcionan un objeto JSON con los siguientes campos:Nombre | Tipo | Descripción |
---|---|---|
http_status_code | integer | Código HTTP. |
mensaje | string | Un 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_message | string | Descripción del error más detallada. |
request_id | string | ID único de solicitud que podría utilizarse para solucionar problemas. |
- http
{
"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 estado429
.
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&BB 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.
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:- Abra Cuenta del editor.
- Vaya a la sección Company settings > API keys o Project settings > API keys.
- Haga clic en Create API key.
- 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.
- Haga clic en Create.
- En la ventana que se abre, haga clic en Copy API key y guarde la clave API creada en su lado.
- 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.
Eliminar una clave API
Para eliminar una clave API:- Abra Cuenta del editor.
- Vaya a la sección Company settings > API keyso Project settings > API keys.
- En la fila de la clave API, haga clic en el icono de la papelera y confirme la acción.
- 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
- Cree una nueva clave de API.
- Cambie su aplicación para que use la nueva clave de API.
- 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?
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.