Hub per sviluppatoriStato dell'APISupporto

Guida alla firma del fornitore terzo

Scopri come creare firme di fornitori di servizi di pagamento di terze parti.

Per generare una firma corretta, segui le istruzioni documentate nella CODICE RFC 9421 specificazione. Tieni presente che ci sono aspetti della generazione di firme che Amazon applica ai TPP che effettuano richieste SP-API. Questi sono documentati nelle seguenti sezioni.

Componenti firmati

CODICE RFC 9421 descrive il processo di comunicazione dei componenti del messaggio HTTP firmati in una richiesta. È necessario includere i seguenti componenti del messaggio quando si genera una firma.

📘

Nota

La mancata inclusione dei seguenti componenti comporta un errore di verifica della firma. È possibile aggiungere questi componenti in qualsiasi ordine.

Campi HTTP (intestazioni dei messaggi)

IntestazioneDescrizione
x-amz-access-tokenIl token di accesso LWA utilizzato per effettuare la richiesta.
x-amzn-content-digestIl digest sha-256 del payload della richiesta. Per le richieste senza payload, crea il digest sha-256 su un vuoto corda.

Per ulteriori informazioni, fare riferimento a Campi HTTP.

Componenti derivati

ComponentDescrizione
@methodIl metodo HTTP della richiesta. Il valore deve essere in maiuscolo (ad esempio GET, POST).
@queryLa stringa di query normalizzata definita da URI e include i principali ? personaggio.
Se la richiesta non contiene una query, è necessario compilare il valore del componente con ? quando crei la base delle firme menzionata in CODICE RFC 9421.
Il valore deve essere derivato dopo aver eseguito tutte le codifiche necessarie, ad esempio Percentile-Encoding. Eventuali ulteriori modifiche apportate a queryString, che non sono inclusi nella creazione della firma, causano l'errore della firma.

Per ulteriori informazioni, fare riferimento a Componenti derivati.

Parametri della firma

ParametroDescrizione
createdUn timestamp dell'epoca in secondi.
Se created epoch indica un tempo superiore a cinque minuti al momento della ricezione della richiesta, la firma è considerata scaduta e la chiamata viene negata.
algUn algoritmo utilizzato per firmare la base della firma.
Il valore per alg deve essere PS512. Per ulteriori dettagli, fare riferimento a Algoritmo di firma.

Per ulteriori informazioni, fare riferimento a Parametri della firma.

🚧

Attenzione

Tutti i valori dell'intestazione della richiesta sono sensibili alle maiuscole. In caso di mancata corrispondenza tra maiuscole e minuscole, la verifica della firma ha esito negativo.

Etichetta firmata

RFC 9421 consente più firme all'interno della stessa intestazione (per disambiguare, utilizzare etichette con firma). SP-API utilizza solo una firma, identificata dal x-amzn-psd2 etichetta firmata. È necessario utilizzarlo in Signature e Signature-Input intestazioni per identificare le informazioni relative alla PSD2.

Algoritmo di firma

Una firma viene generata sulla stringa di base della firma creata quando si completa passaggi in RFC 9421. Dopo aver generato la stringa di base della firma, è necessario utilizzare la chiave privata associata al certificato NCA elettronico per firmare la richiesta con PS512 algoritmo. Questo algoritmo è l'unico attualmente supportato per le richieste SP-API.

Il certificato associato alla chiave privata utilizzata nella firma deve essere passato come intestazione (x-amzn-psd2-certificate) nella tua richiesta SP-API. Il certificato deve essere un Formato PEM stringa in codifica Base64 che inizia con -----BEGIN CERTIFICATE----- e termina con -----END CERTIFICATE-----.

Se si utilizzano caratteri non consentiti nel certificato, la richiesta SP-API viene rifiutata. È necessario utilizzare solo certificati destinati a firmare le richieste HTTP emesse da Qualified Trust Service Provider (QTSP).

🚧

Attenzione

Il certificato utilizzato deve essere associato all'identificativo dell'organizzazione fornito nella registrazione dello sviluppatore. In caso di mancata corrispondenza, la richiesta viene respinta.

Risposta all'errore

Se la convalida della firma della richiesta non riesce, viene visualizzato un errore 403 che contiene informazioni aggiuntive nel corpo. Ad esempio:

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

Di seguito è riportato un elenco di valori possibili per details campo:

Messaggio di erroreDescrizione
TPP certificate required but missing from requestLe x-amzn-psd2-certificate l'intestazione è mancante.
TPP certificate has invalid formatIl certificato fornito non è in formato PEM valido.
Content Digest header required but missing from requestManca l'intestazione della richiesta x-amzn-content-digest.
Invalid Content DigestIl content digest non può essere verificato oppure hai utilizzato un algoritmo non supportato. È supportato solo SHA-256.
Signature-Input header required but not presentedLe Signature-Input manca l'intestazione della richiesta.
Signature-Input header is invalidLe Signature-Input il valore dell'intestazione non è conforme alla specifica RFC 9421.
Request PSD2 Signature is InvalidFirma non valida. Ciò può avere diverse cause, ad esempio l'uso della chiave privata o del certificato errati o un errore di battitura.
Signature header is required but not presentedLe Signature manca l'intestazione della richiesta.

Firma di esempio

L'esempio seguente è una stringa di base della firma che contiene tutti i componenti richiesti:

"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";

L'associato Signature-Input l'intestazione è:

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

L'esempio seguente è un'intestazione della firma con Signature etichetta:

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

Questa pagina ti è stata utile?