Guía de firma de proveedores externos

Obtén información sobre cómo crear firmas de proveedores de pagos externos.

Para generar una firma correcta, siga las instrucciones que se documentan en el RFC 9421 especificación. Tenga en cuenta que hay aspectos de la generación de firmas que Amazon aplica a los TPP que realizan solicitudes de SP-API. Estos se documentan en las siguientes secciones.

Componentes de firma

RFC 9421 describe el proceso de comunicación de qué componentes de mensajes HTTP están firmados en una solicitud. Debe incluir los siguientes componentes del mensaje al generar una firma.

📘

Nota

Si no se incluyen los siguientes componentes, se produce un error en la verificación de la firma. Puede agregar estos componentes en cualquier orden.

Campos HTTP (encabezados de mensajes)

CabeceraDescripción
x-amz-access-tokenEl token de acceso LWA que se usa para realizar la solicitud.
x-amzn-content-digestEl resumen sha-256 de la carga útil de la solicitud. Para las solicitudes sin carga útil, crea el resumen sha-256 en un vacío cadena.

Para obtener información adicional, consulte Campos HTTP.

Componentes derivados

ComponentDescripción
@methodEl método HTTP de la solicitud. El valor debe estar en mayúsculas (por ejemplo GET, POST).
@queryLa cadena de consulta normalizada que se define en URI e incluye los principales ? personaje.
Si la solicitud no contiene ninguna consulta, debes rellenar el valor del componente con ? al crear la base de firmas mencionada en RFC 9421.
El valor debe derivarse después de realizar toda la codificación necesaria, como la codificación por percentiles. Cualquier otra modificación que realice en queryString, que no se incluyen al crear la firma, provocan un error de firma.

Para obtener información adicional, consulte Componentes derivados.

Parámetros de firma

ParámetroDescripción
createdUna marca de tiempo de época en segundos.
Si el created epoch indica que ha pasado más de cinco minutos desde que se recibe la solicitud, se considera que la firma ha caducado y se deniega la llamada.
algUn algoritmo que se usa para firmar la base de firmas.
El valor de alg debe ser PS512. Para obtener más información, consulte Algoritmo de firma.

Para obtener información adicional, consulte Parámetros de firma.

🚧

Advertencia

Todos los valores de los encabezados de solicitud distinguen entre mayúsculas y minúsculas. Si hay alguna discrepancia entre mayúsculas y minúsculas, se producirá un error en la verificación de la firma.

Etiqueta de firma

El RFC 9421 permite varias firmas dentro del mismo encabezado (para eliminar la ambigüedad, utilice etiquetas de firma). SP-API solo usa una firma, que se identifica con x-amzn-psd2 etiqueta de firma. Debe utilizarla en el Signature y Signature-Input encabezados para identificar la información relacionada con la PSD2.

Algoritmo de firma

Se genera una firma en la cadena base de firma que se crea al completar el pasos en el RFC 9421. Tras generar la cadena base de su firma, debe utilizar la clave privada asociada a su certificado electrónico de la NCA para firmar la solicitud con el PS512 algoritmo. Este algoritmo es el único que se admite actualmente para las solicitudes de SP-API.

El certificado asociado a la clave privada que utilizó en la firma debe pasarse como encabezado (x-amzn-psd2-certificate) en su solicitud de SP-API. El certificado debe ser un Con formato PEM cadena en codificación Base64 que comienza con -----BEGIN CERTIFICATE----- y termina con -----END CERTIFICATE-----.

Si utiliza caracteres no permitidos en el certificado, se denegará su solicitud de SP-API. Debe usar únicamente certificados destinados a firmar solicitudes HTTP emitidas por proveedores de servicios de confianza cualificados (QTSP).

🚧

Advertencia

El certificado que utilices debe estar asociado al identificador de la organización que proporcionaste en tu registro de desarrollador. Si no coincide, se denegará tu solicitud.

Respuesta de error

Si la validación de la firma de la solicitud falla, aparece un error 403 que contiene información adicional en el cuerpo. Por ejemplo:

{ "errors": [ { "code": "Unauthorized", "message": "Access to requested resource is denied.", "details": "Reason for error." } ] }

La siguiente es una lista de los valores posibles para details campo:

Mensaje de errorDescripción
TPP certificate required but missing from requestEl x-amzn-psd2-certificate falta el encabezado.
TPP certificate has invalid formatEl certificado proporcionado no tiene un formato PEM válido.
Content Digest header required but missing from requestFalta el encabezado de solicitud x-amzn-content-digest.
Invalid Content DigestNo se pudo verificar el resumen de contenido o utilizaste un algoritmo no compatible. Solo se admite SHA-256.
Signature-Input header required but not presentedEl Signature-Input falta el encabezado de la solicitud.
Signature-Input header is invalidEl Signature-Input el valor del encabezado no cumple con la especificación RFC 9421.
Request PSD2 Signature is InvalidFirma no válida. Esto puede deberse a varias causas, como el uso de una clave privada o un certificado incorrectos o a un error tipográfico.
Signature header is required but not presentedEl Signature falta el encabezado de la solicitud.

Ejemplo de firma

El siguiente ejemplo es una cadena base de firma que contiene todos los componentes necesarios:

"x-amz-access-token": Atza|IgEBIN... "x-amzn-content-digest": sha-256=:fadf3qr3TAFASEG3234gADA+krdzMzYayg4YFig=: "@method": POST "@query": ?key2=value2&key1=value1 "@signature-params": ("x-amz-access-token" "x-amzn-content-digest" "@method" "@query");created=1720137600;alg="PS512";

El asociado Signature-Input el encabezado es:

Signature-Input: x-amzn-psd2=("x-amz-access-token" "x-amzn-content-digest" "@method" "@query");created=1720137600;alg="PS512"

El siguiente ejemplo es un encabezado de firma que tiene Signature etiqueta:

Signature: x-amzn-psd2=:cyqStwls2k3Xs8SSzDvDhxWEc_P0dNxV5I6Tp... :

¿Te ha ayudado esta página?