Implementación
Seguridad
Para garantizar la seguridad, Xsolla utiliza:
Nota
Xsolla genera las claves API y son únicas para cada proveedor.
Encabezados
Las solicitudes entrantes de Xsolla contienen los siguientes encabezados:
| Encabezado | Descripción | Obligatorio |
|---|---|---|
Request-Id | ID único de solicitud. | Sí. |
Content-Digest | Valores de suma de comprobación para el cuerpo de la solicitud. | Sí si hay un cuerpo de solicitud. |
Signature-Input | Parámetros utilizados para generar la firma. | Sí. |
Signature | Firma de solicitud. | Sí. |
Prefer | Datos adicionales, por ejemplo, environment=“sandbox”. | No. |
Nota
Debe incluir los mismos encabezados en los webhooks enviados a Xsolla.
Verificación de solicitudes entrantes
Cuando reciba solicitudes de Xsolla:
- Extraiga la clave secreta que corresponde al valor
keyiddel encabezadoSignature-Input. - Valide el intervalo de tiempo
created/expires. - Recupere el cuerpo de la solicitud.
- Reconstruya la cadena de firma según
Signature-Inputy verifique la firma utilizando HMAC-SHA256.
Copy
- http
1sig1=("@method" "@target-uri" "content-digest" "request-id");alg="hmac-sha256";created=1700000000;expires=1700000600;keyid="acc_123"
- Utilice
Request-Idpara buscar la solicitud en los registros.
Funcionalidad requerida
Para una correcta integración, debe implementar al menos los siguientes métodos API:
| Método | Ruta | Descripción |
|---|---|---|
| POST | /v1/payments | Crea un pago. Devuelve el objeto action. |
| PATCH | /v1/payments/{transaction_id} | Confirma el pago si se devuelve action.type=confirm. |
| GET | /v1/payments/{transaction_id} | Obtiene el estado actual del pago. |
payment.succeeded: pago realizado correctamentepayment.failed: pago fallidopayment.refunded: reembolso
Nota
Consulte la especificación para obtener una descripción detallada de los métodos API y los webhooks.
¿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.