Conseils relatifs à la signature des fournisseurs tiers

Découvrez comment créer des signatures de fournisseurs de services de paiement tiers.

Pour générer une signature réussie, suivez les instructions décrites dans RÉF. 9421 spécification. Notez qu'Amazon applique certains aspects de la génération de signature aux TPP qui effectuent des requêtes SP-API. Ils sont documentés dans les sections suivantes.

Composants de signature

RFC 9421 décrit le processus de communication des composants de message HTTP qui sont signés dans une demande. Vous devez inclure les éléments de message suivants lorsque vous générez une signature.

📘

Remarque

Le fait de ne pas inclure les composants suivants entraîne un échec de vérification de signature. Vous pouvez ajouter ces composants dans n'importe quel ordre.

Champs HTTP (en-têtes de message)

En-têteDescription
x-amz-access-tokenLe jeton d'accès LWA utilisé pour effectuer la demande.
x-amzn-content-digestLe condensé SHA-256 de la charge utile de la requête. Pour les requêtes sans charge utile, créez le condensé sha-256 sur un vide ficelle.

Pour plus d'informations, reportez-vous à Champs HTTP.

Composants dérivés

ComponentDescription
@methodMéthode HTTP de la requête. La valeur doit être en majuscules (par exemple GET, POST).
@queryLa chaîne de requête normalisée qui est définie par le URI et comprend les principaux ? personnage.
Si la demande ne contient pas de requête, vous devez renseigner la valeur du composant avec ? lorsque vous créez la base de signatures mentionnée dans RÉF. 9421.
La valeur doit être dérivée une fois que vous avez effectué tous les encodages nécessaires, tels que le codage en centiles. Toute autre modification que vous apportez à queryString, qui ne sont pas inclus lors de la création de la signature, entraînent l'échec de la signature.

Pour plus d'informations, reportez-vous à Composants dérivés.

Paramètres de signature

ParamètreDescription
createdHorodatage de l'époque en secondes.
Si le created epoch indique qu'il y a plus de cinq minutes au moment où la demande est reçue, la signature est considérée comme expirée et l'appel est refusé.
algAlgorithme que vous utilisez pour signer la base de signatures.
La valeur de alg doit être PS512. Pour plus de détails, reportez-vous à Algorithme de signature.

Pour plus d'informations, reportez-vous à Paramètres de signature.

🚧

Attention

Toutes les valeurs d'en-tête de demande font la distinction entre majuscules et minuscules. En cas de non-concordance des majuscules, la vérification de votre signature échoue.

Étiquette de signature

La RFC 9421 autorise plusieurs signatures dans le même en-tête (pour lever l'ambiguïté, utilisez étiquettes de signature). SP-API n'utilise qu'une seule signature, identifiée par le x-amzn-psd2 étiquette de signature. Vous devez l'utiliser dans Signature et Signature-Input en-têtes pour identifier les informations relatives à PSD2.

Algorithme de signature

Une signature est générée sur la chaîne de base de signature créée lorsque vous complétez étapes de la RFC 9421. Après avoir généré la chaîne de base de votre signature, vous devez utiliser la clé privée associée à votre certificat NCA électronique pour signer la demande avec PS512 algorithme. Cet algorithme est le seul actuellement pris en charge pour les requêtes SP-API.

Le certificat associé à la clé privée que vous avez utilisée dans la signature doit être transmis en tant qu'en-tête (x-amzn-psd2-certificate) dans votre demande SP-API. Le certificat doit être Au format PEM chaîne en encodage Base64 commençant par -----BEGIN CERTIFICATE----- et se termine par -----END CERTIFICATE-----.

Si vous utilisez des caractères non autorisés dans le certificat, votre demande SP-API est refusée. Vous devez utiliser uniquement des certificats destinés à signer des requêtes HTTP émises par des fournisseurs de services de confiance qualifiés (QTSP).

🚧

Attention

Le certificat que vous utilisez doit être associé à l'identifiant d'organisation que vous avez fourni lors de votre inscription de développeur. En cas de non-concordance, votre demande est refusée.

Réponse d'erreur

Si la validation de la signature de votre demande échoue, vous obtenez une erreur 403 qui contient des informations supplémentaires dans le corps. Par exemple :

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

La liste suivante répertorie les valeurs possibles pour details champ :

Message d'erreurDescription
TPP certificate required but missing from requestLe x-amzn-psd2-certificate l'en-tête est manquant.
TPP certificate has invalid formatLe certificat fourni n'est pas au format PEM valide.
Content Digest header required but missing from requestL'en-tête de requête x-amzn-content-digest est manquant.
Invalid Content DigestLe résumé du contenu n'a pas pu être vérifié ou vous avez utilisé un algorithme non pris en charge. Seul le SHA-256 est pris en charge.
Signature-Input header required but not presentedLe Signature-Input l'en-tête de demande est manquant.
Signature-Input header is invalidLe Signature-Input la valeur de l'en-tête n'est pas conforme à la spécification RFC 9421.
Request PSD2 Signature is InvalidSignature non valide. Cela peut avoir plusieurs causes, comme l'utilisation d'une clé privée ou d'un certificat erroné, ou une faute de frappe.
Signature header is required but not presentedLe Signature l'en-tête de demande est manquant.

Exemple de signature

L'exemple suivant est une chaîne de base de signature qui contient tous les composants requis :

"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'associé Signature-Input l'en-tête est :

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

L'exemple suivant est un en-tête de signature qui possède Signature étiquette :

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

Cette page vous a-t-elle été utile ?