Codes Amazon sur demande Création Web

19. Exemple de requête CancelGiftCard HTTP POST avec données utiles JSON ................................. 19 .... building failed: sun.security.provider.certpath.
2MB taille 8 téléchargements 76 vues
Codes Amazon sur demande Création Web Spécifications techniques d'intégration FAQ et annexes

Le produit Codes Amazon sur demande (AGCOD) est un ensemble de systèmes conçus pour permettre aux partenaires et aux développeurs tiers de créer et de distribuer des codes de chèques-cadeaux Amazon en temps

1|Page

réel et sur demande. Voici quelques cas d'utilisation : l'insertion de codes dans des e-mails, l’émission de codes après la clôture d’une cagnotte ou suite à un échange de points au sein d’un programme fidélité, etc.

2|Page

Contenu FAQ.............................................................................................................................................................................. 5 Annexe 1 : Architecture du service de passerelle de haut niveau AGCOD ..................................... 10 Annexe 2 : Schémas de messages du service de passerelle AGCOD.................................................. 11 Annexe 3 : Processus de base d'une requête de création/annulation de chèque cadeau ........ 12 Annexe 4 : Echantillon de code et exemples de requêtes/réponses ................................................ 12 Echantillon de code .............................................................................................................................. 12 1.

Requête CreateGiftCard .................................................................................................................. 16 Exemple de requête HTTP POST CreateGiftCard avec données utiles JSON ................................. 16 Exemple de requête CreateGiftCard HTTP POST avec données utiles XML ................................. 17 Exemple de format de réponse CreateGiftCard ............................................................................... 18

2.

Requête CancelGiftCard .................................................................................................................. 19 Exemple de requête CancelGiftCard HTTP POST avec données utiles JSON ................................. 19 Exemple de requête CancelGiftCard HTTP POST avec données utiles XML.................................. 20 Exemple de format de réponse CancelGiftCard ............................................................................... 21

3.

Requête Get Gift Card Activity Page (Page de récupération de l'activité des chèques cadeaux) .. 23 Exemple de requête HTTP POST GetGiftCardActivityPage avec données utiles JSON ................. 23 Exemple de requête HTTP POST GetGiftCardActivityPage avec données utiles XML ................. 24 Exemple de format de réponse GetGiftCardActivityPage ............................................................... 25

4.

Exemples de test ............................................................................................................................. 29 Test renvoyant SUCCESS avec ID de requête « F0000 »................................................................. 29 Test renvoyant FAILURE avec ID de requête « F2005 »................................................................. 30

5.

Exemple de signature V4 avec réponse connue ............................................................................. 32

Annexe 5 : Requête CardStatus ...................................................................................................................... 33

3|Page

Annexe 6 : Configuration d'un compte entreprise Amazon Payments (non applicable en dehors des Etats-Unis) ...................................................................................................................................... 34 Annexe 7 : Endpoints Sandbox et Production .......................................................................................... 35 Annexe 8 : Contrôle du débit .......................................................................................................................... 35 Annexe 9 : Traitement des erreurs .............................................................................................................. 36 Annexe 10 : Codes d'erreur ............................................................................................................................. 37

4|Page

FAQ Q.1

Lorsque j'exécute l'échantillon de code, j'obtiens l'erreur suivante : « javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target ».

A.1

Cette erreur peut provenir du fait que vous ne disposez pas du certificat CA « VeriSign Class 3 Public Primary Certificate Authority – G5 » et/ou « Verisign Class 3 Secure Server CA – G3 » (voir capture d'écran ci-dessous) dans votre keystore Java. Celui-ci est l'autorité de certification CA racine/intermédiaire du certificat SSL utilisé au niveau de tous nos endpoints.

Ce certificat devrait être automatiquement indiqué lorsque vous installez JRE/JDK sur la machine sur laquelle Eclipse (ou tout autre IDE) est installée. Utilisez l'outil de clé Java intégré (uniquement disponible dans JDK, et non dans JRE) pour importer le certificat dans le keystore Java ou exécutez l'échantillon de code sur une autre machine disposant du certificat CA signé racine/intermédiaire. L'importation du certification CA n'est pas traitée dans le cadre de l'assistance sur AGCOD. Pour plus d'informations, reportez-vous aux liens ci-dessous. Consultez également la documentation Java/Eclipse pour plus d'informations sur les méthodes suivantes.

5|Page

Méthode 1 : cette méthode peut être complexe mais elle s'avère efficace pour résoudre le problème. http://javarevisited.blogspot.com/2012/03/add-list-certficates-java-keystore.html http://wiki.eclipse.org/Generating_a_Private_Key_and_a_Keystore

Méthode 2 : cette méthode est généralement plus facile. Vous pouvez également importer le certificat dans le keystore Java à l'aide d'un outil de clé d'appel de plug-in Eclipse (http://keytool.sourceforge.net/installing.html ou http://sourceforge.net/projects/keytool/?source=pdlp) Une fois le plug-in installé, configurez l'emplacement du keystore (celui-ci peut varier selon votre système d'exploitation). Le mot de passe par défaut du keystore est « Changeit » (sans guillemets). Q.2

J'obtiens l'erreur suivante : « The security token included in the request is invalid. ».

A.2

Cette erreur peut être due à une clé d'accès non valide. Vérifiez que votre clé d'accès est correcte et qu'elle s'applique au bon environnement (environnement sandbox ou de production) et confirmez les paramètres régionaux de l'endpoint utilisé.

Q.3

J'obtiens l'erreur suivante : « The String-to-Sign should have been 'AWS4-HMACSHA256/…./us-east-1/AGCODService/aws4_request….. » .

A.3

Cette erreur peut être due à une clé d'accès non valide. Vérifiez que votre clé d'accès est correcte et qu'elle s'applique au bon environnement (environnement sandbox ou de production) et confirmez les paramètres régionaux de l'endpoint utilisé. Veillez en outre à mettre en préfixe le qualificateur de clé « AWS4 » à la clé secrète lors de la construction de la clé de signature dérivée (kSecret) (voir http://docs.aws.amazon.com/general/latest/gr/sigv4calculate-signature.html).

Q.4

J'obtiens l'erreur « F500 ».

A.4

Contactez [email protected] ; n'oubliez pas d'inclure votre ID partenaire pour aider nos développeurs à identifier votre compte. Dans vos communications, fournissez autant que possible les informations ci-dessous (si applicable).    

La paire requête/réponse complète de votre appel à la passerelle AGCOD. L'URL complète de l'endpoint utilisé (y compris l'URL du serveur) pour effectuer la requête. La chaîne de signature utilisée dans la requête, si elle n'est pas déjà indiquée dans la paire requête/réponse ci-dessus. La signature correspondant à la chaîne de signature utilisée, si elle n'est pas déjà indiquée dans la paire requête/réponse ci-dessus. 6|Page

     

L'heure approximative (ainsi que le fuseau horaire) de votre requête (fuseau horaire configuré sur la machine ayant émis la requête). Le langage de programmation utilisé. Tous les changements récents effectués de votre côté (programmation et infrastructure). Capture d'écran de l'erreur. Adresse e-mail et numéro de téléphone du contact technique du partenaire. Fuseau horaire du partenaire.

Q.5

J'obtiens l'erreur suivante : « Missing Authentication Token ».

A.5

Cette erreur peut être due à un endpoint incorrect (ex. https://agcod-v2.amazon.com au lieu de https://agocd-v2-gamma.amazon.com ou de l'endpoint approprié pour vos paramètres régionaux). Vérifiez que l'endpoint utilisé est correct et qu'il correspond à l'environnement utilisé (environnement sandbox ou de production) et aux paramètres régionaux.

Q.6

J'obtiens l'erreur suivante : « HTTP Status 400 - There was an error while processing the request. The request does not match any of the supported protocols ».

A.6

Cette erreur est souvent due à une requête envoyée au mauvais endpoint. Vérifiez que vous utilisez le bon endpoint.

Q.7

Quelles informations sur l'API dois-je conserver comme référence ultérieure ?

A.7

Vous devez conserver au moins l'ID creationRequestId, le montant et la devise de l'API CreateGiftCard pour d'éventuelles opérations ultérieures telles que CancelGiftCard. Sans ces informations, vous ne serez pas en mesure d'effectuer l'appel CancelGiftCard pour le même ID gcCreationRequestId si les paramètres requis mentionnés ci-dessus ne sont pas fournis.

Q.8

Je ne réussis pas à faire fonctionner la signature.

A.8

Référez-vous aux erreurs de code courantes suivantes : http://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html Les erreurs de code les plus courantes sont : 

L'utilisation des données à la place de la clé lors du calcul des clés intermédiaires. Le résultat du calcul de l'étape précédente est la clé et non les données. Consultez soigneusement vos primitives cryptographiques dans la documentation pour vous assurer que vous placez les paramètres dans le bon ordre.



L'oubli d'ajouter la chaîne « AWS » devant la clé pour la première étape. Il est possible d'implémenter la dérivation de clé à l'aide d'un « for loop » ou d'un itérateur. Si c'est le cas, n'oubliez pas d'inclure la chaîne « AWS » à la première itération seulement.

7|Page



L'oubli d'utiliser l'option asBytes pour la fonction JavaScript HMAC.Crypto. Si vous n'utilisez pas l'option asBytes, l'implémentation HMAC effectue un codage hexadécimal supplémentaire par défaut.



Assurez-vous que la chaîne de demande de votre requête est correctement triée et codée, que les noms d'en-tête ont été convertis en caractères minuscules et que les entêtes ont été triés par code de caractère (http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html).

Q.9

La passerelle AGCOD prend-t-elle en charge GET ?

A.9

Non. Seul POST est pris en charge.

Q.10

J'obtiens l'erreur suivante : « Request Id Must Start With Partner Name ». J'ai pourtant bien vérifié que j'utilise le nom de partenaire correct.

A.10

L'ID de partenaire est sensible à la casse. Vérifiez également que l'endpoint ou le paramètre régional est correct (sandbox ou production et NA ou EU)

Q.11

La passerelle AGCOD prend-t-elle en charge SOAP ou Query ?

A.11

Non. Elle prend uniquement en charge les requêtes RESTfull.

Q.12

Existe-t-il une limite de temps pour l'acceptation d'une requête CancelGiftCard () après l'envoi d'une requête CreateGiftCard() ?

A.12

Il n'existe actuellement aucune limite de temps ; les restrictions sont liées à l'usage, c'est-à-dire qu'une requête de création ne peut pas être émise après qu'une transaction d'utilisation a été traitée pour le chèque cadeau (par exemple si le chèque-cadeau a déjà été utilisé par le client final). En outre, un chèque-cadeau ne peut pas être annulé après sa date d'expiration (aux EtatsUnis, les chèques-cadeau n'ont pas de date d'expiration, mais peuvent en avoir une dans d'autres régions). Demandez à votre chargé de compte si une date d'expiration s'applique à votre région.

Q.13

Que se passe-t-il si le compte ne contient pas les fonds suffisants pour couvrir une requête ?

A.13

Si les fonds ne sont pas suffisants, la passerelle AGCOD renvoie une erreur F300 et n'active pas le chèque cadeau. Il est important de prévoir avec précision vos volumes de chèques cadeau et de conserver des fonds de réserve pour les demandes imprévues. Demandez à votre chargé de compte de vous aider à déterminer la meilleure approche.

Q.14

Lorsque je tente de créer un chèque cadeau, j'obtiens l'erreur suivante : « F300 Issuance Cap Exceeded »

A.14

Ceci peut être dû au fait que le plafond de délivrance a été dépassé pour les partenaires si aucune condition n'a changé du côté partenaire. Si vous recevez cette erreur en production, elle est probablement liée au dépassement du montant disponible dans votre compte. Contactez votre chargé de compte pour en savoir plus. Si vous recevez cette erreur dans 8|Page

sandbox, contactez-nous à l'adresse [email protected] pour obtenir de l'assistance. Q.15

Lorsque je crée un chèque-cadeau, j'obtiens l'erreur suivante : « Max Amount Exceeded »

A.15

Assurez-vous que le montant du chèque-cadeau que vous activez ne dépasse pas la limite maximale de 2 000 $ définie par la législation aux Etats-Unis (cette limite peut être différente dans d'autres pays).

Pays

US

CA

UK

DE

FR

IT

ES

CN

JP

Dénomination

0,01 2 000 $

0,01 5 000 $

0,01 5 000 £

0,01 5 000 €

0,01 5 000 €

0,01 5 000 €

0,01 5 000 €

11 000 ¥ RMB

1500 000 ¥ JPY

Q.16

La passerelle AGCOD fournit-elle une réponse/Comment dois-je spécifier le format de la requête au format JSON ou XML à l'aide de l'échantillon de code Java ?

A.16

Oui. Sélectionnez le format correspondant (XML ou JSON) en insérant un commentaire sur la ligne du format non voulu.

Q.17

L'algorithme de signature ou la référence à la version dans aws.amazon.fr diffèrent des informations données dans ce document. Lesquels dois-je utiliser ?

A.17

Les informations de ce document font autorité. Certaines informations AWS ne s'appliquent pas à la passerelle AGCOD.

Q.18

J'obtiens l'erreur suivante : « F200 Invalid Request ».

A.18

Ceci est souvent dû à un appel de création de chèque-cadeau AGCOD (à l'aide d'un ID CreationRequestID utilisé précédemment) idempotent, contenant un montant différent que la requête initiale.

Q.19

J'obtiens l'erreur suivante : « Credential should be scoped to a valid region, not 'us-east-1' ».

A.19

Consultez l'Annexe 6 pour connaître l'endpoint/la région utilisé dans votre code.

Q.20

J'obtiens beaucoup d'erreurs F500/F200, mais je n'arrive pas à savoir d'où vient le problème. Que se passe-t-il ?

A.20

Les erreurs F500 sont généralement causées par un dépassement de délai côté Amazon. Si vous recevez ces erreurs régulièrement, contactez-nous à l'adresse [email protected]. Les erreurs F200 sont généralement dues à une requête contenant des informations non valides. Si les informations envoyées ont été vérifiées et semblent correctes, contactez-nous à l'adresse [email protected] pour obtenir une assistance.

9|Page

Annexe 1 : Architecture du service de passerelle de haut niveau AGCOD

10 | P a g e

Annexe 2 : Schémas de messages du service de passerelle AGCOD

11 | P a g e

Annexe 3 : Processus de base d'une requête de création/annulation de chèque cadeau

Annexe 4 : Echantillon de code et exemples de requêtes/réponses Echantillon de code Pour vous aider à mettre en œuvre votre solution, nous fournissons un échantillon de code (Java , C#, Python, Ruby, PHP, HTML) contenant les principales fonctions API AGCOD. Cet échantillon de code n'inclut pas un traitement des erreurs et n'est pas destiné à la mise en production ; utilisez-le seulement en guise d'exemple. REMARQUE : ignorez toutes les références au traitement des certificats X.509 mentionnées sur le site Web AWS d'Amazon. Nos systèmes ne requièrent plus les certificats X.509 pour l'authentification. Vos clés de sécurité et la signature calculée sont suffisantes. L'échantillon de code illustre la fonctionnalité API seulement ; il ne contient aucune logique de traitement des erreurs introduites par l'utilisateur ou le système. De plus, la clé secrète, la clé d'accès et 12 | P a g e

l'ID partenaire sont compris dans le code source et peuvent être compromis si une erreur n'est pas résolue. Ceci peut résulter en un comportement imprévu du programme.

13 | P a g e

Remplacez les paramètres suivants par vos propres valeurs avant d'effectuer un test partnerId : Acme1 currencyCode : USD pour US, EUR pour EU, JPY pour JP, CNY pour CN, CAD pour CA agcodAccessKey : AKIAJE2RAAV7RP2WROKA (non valide ; donné en exemple seulement) agcodSecretKey : Vgjd4AjpU0Sm6IYNDjRRX9nZOA+VPxwaF5K43G9K (non valide ; donné en exemple seulement) region : us-east-1 (varie selon le lieu et l'environnement ; voir régions et endpoints) endpoint : (varie selon le lieu et l'environnement ; voir régions et endpoints) C# : l'App.config de l'échantillon de code contient tous les paramètres spécifiques

Paramètres Java //Paramètres d'utilisateur et d'instance private static final String accessKeyID = ""; // Votre key d’accès private static final String accessSecretKey = ""; // Votre clé secrète //Paramètres utiles private static final String partnerID = ""; private static final String requestID = ""; private static final String currencyCode = ""; // USD pour US, EUR pour EU, JPY pour JP, CNY pour CN, CAD pour CA //Paramètres utiles supplémentaires pour CancelGiftCard private static final String gcId = ""; // ID du chèque cadeau utilisé dans un appel Create effectué précédemment

14 | P a g e

Paramètres Python

Paramètres Ruby

15 | P a g e

Remarque : les exemples ci-dessous ont été créés avec un compte Amazon test ; les partenaires doivent utiliser leurs propres identifiants d'accès (accessKeyID, partnerID, requestID).

1. Requête CreateGiftCard Exemple de requête HTTP POST CreateGiftCard avec données utiles JSON PAYLOAD: {"creationRequestId": "AwssbTSpecTest001", "partnerId": "Awssb", "value": {"currencyCode": "USD", "amount": 1.00}} HASHED PAYLOAD: 6193dc333ef1db9edae1f17989c71ce5f1939706a79be5bb924fc2e92bc23961 CANONICAL REQUEST: POST /CreateGiftCard accept:application/json content-type:application/json host:agcod-v2-gamma.amazon.com x-amz-date:20130910T222620Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard accept;content-type;host;x-amz-date;x-amz-target 6193dc333ef1db9edae1f17989c71ce5f1939706a79be5bb924fc2e92bc23961 HASHED CANONICAL REQUEST: 447277eb7144a2280508b8bf047706381beb832306a5b28ee0bb69a00b9bde0d STRING TO SIGN: AWS4-HMAC-SHA256 20130910T222620Z 20130910/us-east-1/AGCODService/aws4_request 447277eb7144a2280508b8bf047706381beb832306a5b28ee0bb69a00b9bde0d DERIVED SIGNING KEY: 48428b0d3bd97f08fbefc9d675975d7d914788ee3bc509ae27decf874f16921b SIGNATURE: 66872de215ae457cd978a49be377caf7cd3b5ab2914785339c2b8242e3631a71 ENDPOINT: agcod-v2-gamma.amazon.com SIGNED REQUEST POST /CreateGiftCard HTTP/1.1 accept:application/json content-type:application/json host:agcod-v2-gamma.amazon.com x-amz-date:20130910T222620Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard

16 | P a g e

Authorization:AWS4-HMAC-SHA256 Credential=AKIAJBYCL67O6NJUNYBQ/20130910/useast-1/AGCODService/aws4_request, SignedHeaders=accept;content-type;host;xamz-date;x-amz-target, Signature=66872de215ae457cd978a49be377caf7cd3b5ab2914785339c2b8242e3631a71 {"creationRequestId": "AwssbTSpecTest001", "partnerId": "Awssb", "value": {"currencyCode": "USD", "amount": 1.00}}

Exemple de requête CreateGiftCard HTTP POST avec données utiles XML PAYLOAD: AwssbTSpecTest001AwssbUSD 1.00 HASHED PAYLOAD: e0d405956e60622bee7a1161b179f7b77149cd0e43f389b0baad8ea9fc8503e0 CANONICAL REQUEST: POST /CreateGiftCard accept:application/x-www-form-urlencoded; charset=UTF-8 content-type:application/x-www-form-urlencoded; charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20130910T221949Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard accept;content-type;host;x-amz-date;x-amz-target e0d405956e60622bee7a1161b179f7b77149cd0e43f389b0baad8ea9fc8503e0 HASHED CANONICAL REQUEST: 4378e45d89236494f3321d3690cf624f0e3fe91d22bdf1bf0a0a6cde85fd86eb STRING TO SIGN: AWS4-HMAC-SHA256 20130910T221949Z 20130910/us-east-1/AGCODService/aws4_request 4378e45d89236494f3321d3690cf624f0e3fe91d22bdf1bf0a0a6cde85fd86eb DERIVED SIGNING KEY: 48428b0d3bd97f08fbefc9d675975d7d914788ee3bc509ae27decf874f16921b SIGNATURE: 6dce900ea3557473ee750dfe11489dc667366ffc8823541fadf13934e5d64790 ENDPOINT: agcod-v2-gamma.amazon.com SIGNED REQUEST POST /CreateGiftCard HTTP/1.1 accept:application/x-www-form-urlencoded; charset=UTF-8 content-type:application/x-www-form-urlencoded; charset=UTF-8 host:agcod-v2-gamma.amazon.com

17 | P a g e

x-amz-date:20130910T221949Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard Authorization:AWS4-HMAC-SHA256 Credential=AKIAJBYCL67O6NJUNYBQ/20130910/useast-1/AGCODService/aws4_request, SignedHeaders=accept;content-type;host;xamz-date;x-amz-target, Signature=6dce900ea3557473ee750dfe11489dc667366ffc8823541fadf13934e5d64790 AwssbTSpecTest001AwssbUSD 1.00

Exemple de format de réponse CreateGiftCard JSON {"cardInfo":{"cardNumber":null,"cardStatus":"RefundedToPurchaser","expirationDate":null," value":{"amount":1.0,"currencyCode":"USD"}},"creationRequestId":"AwssbTSpecTest001","gcCl aimCode":"Z7NV-LBBG3975MU","gcExpirationDate":null,"gcId":"A2GCN9BRX5QS76","status":"SUCCESS"}

XML RESPONSE : AwssbTSpecTest001 1.0 USD Fulfilled SUCCESS A2GCN9BRX5QS76 Z7NV-LBBG39-75MU

Paramètres requis Notez que la valeur de devise (USD, GBP, EUR, JPY, CNY) peut varier selon vos paramètres régionaux 1

HTTP Request Method=POST

2

Canonical URI=/CreateGiftCard

3

Canonical Query String=’’ (empty string)

18 | P a g e

4

Canonical Headers= accept:application/json content-type:application/json host:agcod-v2-gamma.amazon.com x-amz-date:20130910T222620Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard or content-type:application/x-www-form-urlencoded; charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20130910T221949Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard

5

SignedHeaders=content-type;host;x-amz-date;x-amz-target

6

Algorithm= AWS4-HMAC-SHA256

7

Request Date=20130910T221949Z

8

CredentialScope=20130910/us-east-1/AGCODService/aws4_request

9

Service Name=AGCODService

10

Creation Request Id= AwssbTSpecTest001

11

Host= agcod-v2-gamma.amazon.com (utilisez l'endpoint applicable)

12

Region Name=us-east-1 (utilisez l'endpoint applicable)

13

Partner Id=Awssb (use your own Partner ID)

14

Amount=1

15

Currency Code=USD

2. Requête CancelGiftCard Exemple de requête CancelGiftCard HTTP POST avec données utiles JSON PAYLOAD: {"creationRequestId": "AwssbTSpecTest001", "partnerId": "Awssb", "gcId": "A2GCN9BRX5QS76"} HASHED PAYLOAD: 7492d98f807281c82b8abef76b75398d72bf4265c8a7ea1726b5cbee0a39be9d

19 | P a g e

CANONICAL REQUEST: POST /CancelGiftCard accept:application/json content-type:application/json host:agcod-v2-gamma.amazon.com x-amz-date:20130910T222545Z x-amz-target:com.amazonaws.agcod.AGCODService.CancelGiftCard accept;content-type;host;x-amz-date;x-amz-target 7492d98f807281c82b8abef76b75398d72bf4265c8a7ea1726b5cbee0a39be9d HASHED CANONICAL REQUEST: 0488271c96d8657cd9b4dade4a2e6f357b4fa1c4666d4a14f3c02cbe2d6d6a9b STRING TO SIGN: AWS4-HMAC-SHA256 20130910T222545Z 20130910/us-east-1/AGCODService/aws4_request 0488271c96d8657cd9b4dade4a2e6f357b4fa1c4666d4a14f3c02cbe2d6d6a9b DERIVED SIGNING KEY: 48428b0d3bd97f08fbefc9d675975d7d914788ee3bc509ae27decf874f16921b SIGNATURE: 7c27005003a87310297d588749efdd5203deabed8610fafe8ba8e82f0e759949 ENDPOINT: agcod-v2-gamma.amazon.com SIGNED REQUEST POST /CancelGiftCard HTTP/1.1 accept:application/json content-type:application/json host:agcod-v2-gamma.amazon.com x-amz-date:20130910T222545Z x-amz-target:com.amazonaws.agcod.AGCODService.CancelGiftCard Authorization:AWS4-HMAC-SHA256 Credential=AKIAJBYCL67O6NJUNYBQ/20130910/useast-1/AGCODService/aws4_request, SignedHeaders=accept;content-type;host;xamz-date;x-amz-target, Signature=7c27005003a87310297d588749efdd5203deabed8610fafe8ba8e82f0e759949 {"creationRequestId": "AwssbTSpecTest001", "partnerId": "Awssb", "gcId": "A2GCN9BRX5QS76"}

Exemple de requête CancelGiftCard HTTP POST avec données utiles XML PAYLOAD: AwssbTSpecTest001AwssbA2GCN9BRX5QS76

20 | P a g e

HASHED PAYLOAD: bea0ab33efe45db874d639de92b3b286353c7f2d494e20889d70f02d9574316d CANONICAL REQUEST: POST /CancelGiftCard accept:application/x-www-form-urlencoded; charset=UTF-8 content-type:application/x-www-form-urlencoded; charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20130910T222449Z x-amz-target:com.amazonaws.agcod.AGCODService.CancelGiftCard accept;content-type;host;x-amz-date;x-amz-target bea0ab33efe45db874d639de92b3b286353c7f2d494e20889d70f02d9574316d HASHED CANONICAL REQUEST: 8b9e30824d9aaf2539caa2e56519475185fda4850f138db66b7fe4c223618e11 STRING TO SIGN: AWS4-HMAC-SHA256 20130910T222449Z 20130910/us-east-1/AGCODService/aws4_request 8b9e30824d9aaf2539caa2e56519475185fda4850f138db66b7fe4c223618e11 DERIVED SIGNING KEY: 48428b0d3bd97f08fbefc9d675975d7d914788ee3bc509ae27decf874f16921b SIGNATURE: 0bef87e8b01aec57fca532e79a5819fcc55d3c02cfafcdf08495ed4a26d0cd87 ENDPOINT: agcod-v2-gamma.amazon.com SIGNED REQUEST POST /CancelGiftCard HTTP/1.1 accept:application/x-www-form-urlencoded; charset=UTF-8 content-type:application/x-www-form-urlencoded; charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20130910T222449Z x-amz-target:com.amazonaws.agcod.AGCODService.CancelGiftCard Authorization:AWS4-HMAC-SHA256 Credential=AKIAJBYCL67O6NJUNYBQ/20130910/useast-1/AGCODService/aws4_request, SignedHeaders=accept;content-type;host;xamz-date;x-amz-target, Signature=0bef87e8b01aec57fca532e79a5819fcc55d3c02cfafcdf08495ed4a26d0cd87 AwssbTSpecTest001AwssbA2GCN9BRX5QS76

Exemple de format de réponse CancelGiftCard JSON

21 | P a g e

{"creationRequestId":"AwssbTSpecTest001","gcId":"A2GCN9BRX5QS76","status":"SUCCESS"}

XML AwssbTSpecTest001 SUCCESS A2GCN9BRX5QS76

Paramètres requis Notez que la valeur de devise (USD, GBP, EUR, JPY, CNY) peut varier selon vos paramètres régionaux 1

HTTP Request Method=POST

2

Canonical URI=/CancelGiftCard

3

Canonical Query String=’’ (empty string)

4

Canonical Headers= accept:application/json content-type:application/json host:agcod-v2-gamma.amazon.com x-amz-date:20130910T222545Z x-amz-target:com.amazonaws.agcod.AGCODService.CancelGiftCard or accept:application/x-www-form-urlencoded; charset=UTF-8 content-type:application/x-www-form-urlencoded; charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20130910T222449Z x-amz-target:com.amazonaws.agcod.AGCODService.CancelGiftCard

5

SignedHeaders=content-type;host;x-amz-date;x-amz-target

6

Algorithm= AWS4-HMAC-SHA256

7

Request Date=20130910T222449Z

8

CredentialScope=20130910/us-east-1/AGCODService/aws4_request

9

Service Name=AGCODService

10

Creation Request Id= AwssbTSpecTest001

22 | P a g e

11

Host= agcod-v2-gamma.amazon.com (utilisez l'endpoint applicable)

12

Region Name=us-east-1 (utilisez l'endpoint applicable)

13

Partner Id=Awssb (use your own Partner ID)

3. Requête Get Gift Card Activity Page (Page de récupération de l'activité des chèques cadeaux) Exemple de requête HTTP POST GetGiftCardActivityPage avec données utiles JSON PAYLOAD: { "requestId": "AwssbGetGCAPTest001", "partnerId": "Awssb", "utcStartDate": "2015-08-12T00:00:00Z", "utcEndDate": "2015-08-14T00:00:00Z", "pageIndex": 0, "pageSize": 200, "showNoOps": "true" } HASED PAYLOAD: d695dfd48d1a24a432944c300195b88289c2e5b08b51dcc94f2f5c970be9537c CANONICAL REQUEST: POST /GetGiftCardActivityPage accept:application/json host:agcod-v2-gamma.amazon.com x-amz-date:20150813T185911Z x-amz-target:com.amazonaws.agcod.AGCODService.GetGiftCardActivityPage accept;host;x-amz-date;x-amz-target d695dfd48d1a24a432944c300195b88289c2e5b08b51dcc94f2f5c970be9537c HASHED CANONICAL REQUEST: 84beb4cdd987711a97e0d16aefa628242a311e420d45ac0934376ceddf6c3c56 STRING TO SIGN: AWS4-HMAC-SHA256 20150813T185911Z 20150813/us-east-1/AGCODService/aws4_request 84beb4cdd987711a97e0d16aefa628242a311e420d45ac0934376ceddf6c3c56 DERIVED SIGNING KEY: d3865217232a7551b34bec959eb925e09b9dda1f21247d72627f5ed83e0f1c5e SIGNATURE: 81b04b1e06872fd108955e2d72f96f4bebfc00d3c1b9710a71b7a40b091e8fa5 SIGNED REQUEST: POST /GetGiftCardActivityPage HTTP/1.1

23 | P a g e

accept:application/json host:agcod-v2-gamma.amazon.com x-amz-date:20150813T185911Z x-amz-target:com.amazonaws.agcod.AGCODService.GetGiftCardActivityPage Authorization: AWS4-HMAC-SHA256 Credential=AKIAJBYCL67O6NJUNYBQ/20150813/useast-1/AGCODService/aws4_request, SignedHeaders=accept;host;x-amz-date;x-amztarget, Signature=81b04b1e06872fd108955e2d72f96f4bebfc00d3c1b9710a71b7a40b091e8fa5 { "requestId": "AwssbGetGCAPTest001", "partnerId": "Awssb", "utcStartDate": "2015-08-12T00:00:00Z", "utcEndDate": "2015-08-14T00:00:00Z", "pageIndex": 0, "pageSize": 200, "showNoOps": "true" }

Exemple de requête HTTP POST GetGiftCardActivityPage avec données utiles XML PAYLOAD: AwssbGetGCAPTest001Awssb2015-0812T00:00:00Z2015-0814T00:00:00Z0200true HASED PAYLOAD: a2dabf6010db209b2c3c18b3cb7cd302e73b49dca6831b2c53cc600cd9d7d5fe CANONICAL REQUEST: POST /GetGiftCardActivityPage accept:charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20150813T190248Z x-amz-target:com.amazonaws.agcod.AGCODService.GetGiftCardActivityPage accept;host;x-amz-date;x-amz-target a2dabf6010db209b2c3c18b3cb7cd302e73b49dca6831b2c53cc600cd9d7d5fe HASHED CANONICAL REQUEST: 5962eba9a045d676cc13f1b299e8d684c66a8be2aa39ecddb680cda9dfad5a2a STRING TO SIGN: AWS4-HMAC-SHA256 20150813T190248Z 20150813/us-east-1/AGCODService/aws4_request 5962eba9a045d676cc13f1b299e8d684c66a8be2aa39ecddb680cda9dfad5a2a DERIVED SIGNING KEY: d3865217232a7551b34bec959eb925e09b9dda1f21247d72627f5ed83e0f1c5e SIGNATURE:

24 | P a g e

01458579fc637edc45f1d94482691ff924e189d0e289e99857619a195d6df2fb SIGNED REQUEST: POST /GetGiftCardActivityPage HTTP/1.1 accept:charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20150813T190248Z x-amz-target:com.amazonaws.agcod.AGCODService.GetGiftCardActivityPage Authorization: AWS4-HMAC-SHA256 Credential=AKIAJBYCL67O6NJUNYBQ/20150813/useast-1/AGCODService/aws4_request, SignedHeaders=accept;host;x-amz-date;x-amztarget, Signature=01458579fc637edc45f1d94482691ff924e189d0e289e99857619a195d6df2fb AwssbGetGCAPTest001Awssb2015-0812T00:00:00Z2015-0814T00:00:00Z0200true

Exemple de format de réponse GetGiftCardActivityPage JSON {"cardActivityList":[{"activityStatus":"Success","activityTime":"Thu Aug 13 18:46:21 UTC 2015","activityType":"GCCreation","cardNumber":null,"cardValue":{"amount":10.0,"currencyC ode":"USD"},"failureCode":null,"gcId":"A3Q7TCFUJ5LS5Q","isRealOp":"false","partnerId":"Aw ssb","requestId":"Awssb0829140906AM"},{"activityStatus":"Success","activityTime":"Thu Aug 13 18:46:41 UTC 2015","activityType":"GCCreation","cardNumber":null,"cardValue":{"amount":10.0,"currencyC ode":"USD"},"failureCode":null,"gcId":"A1AR2XOII0L9DE","isRealOp":"false","partnerId":"Aw ssb","requestId":"Awssb0829141507PM"},{"activityStatus":"Success","activityTime":"Thu Aug 13 18:47:05 UTC 2015","activityType":"GCCreation","cardNumber":null,"cardValue":{"amount":10.0,"currencyC ode":"USD"},"failureCode":null,"gcId":"A1CRLBZ838H2PT","isRealOp":"false","partnerId":"Aw ssb","requestId":"Awssb0829141556PM"},{"activityStatus":"Failed","activityTime":"Thu Aug 13 18:48:39 UTC 2015","activityType":"GCCancellation","cardNumber":null,"cardValue":null,"failureCode":"G eneralError","gcId":"A1CRLBZ838H2PT","isRealOp":"false","partnerId":"Awssb","requestId":" Awssb0829141556PM"},{"activityStatus":"Failed","activityTime":"Thu Aug 13 18:49:06 UTC 2015","activityType":"GCCancellation","cardNumber":null,"cardValue":null,"failureCode":"G eneralError","gcId":"A1CRLBZ838H2PT","isRealOp":"false","partnerId":"Awssb","requestId":" Awssb0829141556PM"},{"activityStatus":"Failed","activityTime":"Thu Aug 13 18:49:31 UTC 2015","activityType":"GCCancellation","cardNumber":null,"cardValue":null,"failureCode":"G eneralError","gcId":"A1CRLBZ838H2PT","isRealOp":"false","partnerId":"Awssb","requestId":" Awssb0829141556PM"},{"activityStatus":"Failed","activityTime":"Thu Aug 13 18:50:10 UTC 2015","activityType":"GCCancellation","cardNumber":null,"cardValue":null,"failureCode":"G eneralError","gcId":"A1CRLBZ838H2PT","isRealOp":"false","partnerId":"Awssb","requestId":" Awssb0829141556PM"},{"activityStatus":"Success","activityTime":"Thu Aug 13 18:50:37 UTC 2015","activityType":"GCCreation","cardNumber":null,"cardValue":{"amount":1.23,"currencyC ode":"USD"},"failureCode":null,"gcId":"AHHB14UYBGXXM","isRealOp":"true","partnerId":"Awss b","requestId":"Awssb0813151150AM"},{"activityStatus":"Failed","activityTime":"Thu Aug 13 18:50:38 UTC 2015","activityType":"GCCancellation","cardNumber":null,"cardValue":null,"failureCode":"G eneralError","gcId":"A1CRLBZ838H2PT","isRealOp":"false","partnerId":"Awssb","requestId":" Awssb0829141556PM"},{"activityStatus":"Success","activityTime":"Thu Aug 13 18:50:53 UTC

25 | P a g e

2015","activityType":"GCCancellation","cardNumber":null,"cardValue":null,"failureCode":nu ll,"gcId":"AHHB14UYBGXXM","isRealOp":"true","partnerId":"Awssb","requestId":"Awssb0813151 150AM"}],"pageIndex":0,"requestId":"AwssbGetGCAPTest001","status":"SUCCESS","totalNumberO fTransactionsInRequestedTimeFrame":10}

XML 10 0 AwssbGetGCAPTest001 Awssb0829140906AM A3Q7TCFUJ5LS5Q Success Thu Aug 13 18:46:21 UTC 2015 false Awssb GCCreation USD 10.0 Awssb0829141507PM A1AR2XOII0L9DE Success Thu Aug 13 18:46:41 UTC 2015 false Awssb GCCreation USD 10.0 Awssb0829141556PM A1CRLBZ838H2PT Success Thu Aug 13 18:47:05 UTC 2015 false Awssb GCCreation USD 10.0 GeneralError

26 | P a g e

Awssb0829141556PM A1CRLBZ838H2PT Failed Thu Aug 13 18:48:39 UTC 2015 false Awssb GCCancellation GeneralError Awssb0829141556PM A1CRLBZ838H2PT Failed Thu Aug 13 18:49:06 UTC 2015 false Awssb GCCancellation GeneralError Awssb0829141556PM A1CRLBZ838H2PT Failed Thu Aug 13 18:49:31 UTC 2015 false Awssb GCCancellation GeneralError Awssb0829141556PM A1CRLBZ838H2PT Failed Thu Aug 13 18:50:10 UTC 2015 false Awssb GCCancellation Awssb0813151150AM AHHB14UYBGXXM Success Thu Aug 13 18:50:37 UTC 2015 true Awssb GCCreation USD 1.23 GeneralError Awssb0829141556PM A1CRLBZ838H2PT Failed

27 | P a g e

Thu Aug 13 18:50:38 UTC 2015 false Awssb GCCancellation Awssb0813151150AM AHHB14UYBGXXM Success Thu Aug 13 18:50:53 UTC 2015 true Awssb GCCancellation SUCCESS

Paramètres requis

Notez que la valeur de devise (USD, GBP, EUR, JPY, CNY) peut varier selon vos paramètres régionaux 1

HTTP Request Method=POST

2

Canonical URI=/GetGiftCardActivityPage

3

Canonical Query String=’’ (empty string)

4

Canonical Headers= accept:application/json content-type:application/json host: agcod-v2-gamma.amazon.com x-amz-date: 20150813T190248Z x-amztarget:com.amazonaws.agcod.AGCODService.GetGiftCardActivityPage or accept:application/x-www-form-urlencoded; charset=UTF-8 content-type:application/x-www-form-urlencoded; charset=UTF-8 host: agcod-v2-gamma.amazon.com x-amz-date: 20150813T190248Z x-amztarget:com.amazonaws.agcod.AGCODService.GetGiftCardActivityPage

5

SignedHeaders=content-type;host;x-amz-date;x-amz-target

28 | P a g e

6

Algorithm= AWS4-HMAC-SHA256

7

Request Date= 20150813T190248Z

8

CredentialScope=20150813/us-east-1/AGCODService/aws4_request

9

Service Name=AGCODService

10

Host= agcod-v2-gamma.amazon.com (utilisez l'endpoint applicable)

11

Region Name=us-east-1 (utilisez l'endpoint applicable)

12

Partner Id=Awssb (use your own Partner ID)

13

KeyId=1

14

pageIndex=0 (starting page number)

15

pageSize=200 (# of transactions displayed per page)

16

utcStartDate= 2015-08-12T00:00:00Z

17

utcEndDate= 2015-08-14T00:00:00Z

18

showNoOps=true

4. Exemples de test Test renvoyant SUCCESS avec ID de requête « F0000 » PAYLOAD: F0000Awssbphonybucks3.14159 HASHED PAYLOAD: 7ea6c536e7586fb525f49aaeb4fd3c6971a696f125da6447d12d29a1973fb004 CANONICAL REQUEST: POST /CreateGiftCard accept:charset=UTF-8 content-type:charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20140205T170041Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard accept;content-type;host;x-amz-date;x-amz-target 7ea6c536e7586fb525f49aaeb4fd3c6971a696f125da6447d12d29a1973fb004

29 | P a g e

HASHED CANONICAL REQUEST: 0d1c6d7d24f929697e7eae8edae3405d8185c93ccbef2ca5bd098eaa10be42fb STRING TO SIGN: AWS4-HMAC-SHA256 20140205T170041Z 20140205/us-east-1/AGCODService/aws4_request 0d1c6d7d24f929697e7eae8edae3405d8185c93ccbef2ca5bd098eaa10be42fb DERIVED SIGNING KEY: 07ef165a0531f64ac7ba835805728d63c296be4d0012a226454795f74644aa02 SIGNATURE: bf772d6fd53ae30f0439e6362e7a9b9dd570893d5db66950d6bbcb72a0a08da3 ENDPOINT: agcod-v2-gamma.amazon.com SIGNED REQUEST POST /CreateGiftCard HTTP/1.1 accept:charset=UTF-8 content-type:charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20140205T170041Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard Authorization:AWS4-HMAC-SHA256 Credential=AKIAJBYCL67O6NJUNYBQ/20140205/useast-1/AGCODService/aws4_request, SignedHeaders=accept;content-type;host;xamz-date;x-amz-target, Signature=bf772d6fd53ae30f0439e6362e7a9b9dd570893d5db66950d6bbcb72a0a08da3 F0000Awssbphonybucks3.14159

F0000 -3.14159 phonybucks Created SUCCESS ABC123ZYX987 ZYXW-VUTS-RQPO

Test renvoyant FAILURE avec ID de requête « F2005 » PAYLOAD:

30 | P a g e

F2005AwssbUSD3.14159 HASHED PAYLOAD: a425f0a78f494a56033e3ddf07c592bd97060eed8d337d30ed3965ddce235699 CANONICAL REQUEST: POST /CreateGiftCard accept:charset=UTF-8 content-type:charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20140205T170938Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard accept;content-type;host;x-amz-date;x-amz-target a425f0a78f494a56033e3ddf07c592bd97060eed8d337d30ed3965ddce235699 HASHED CANONICAL REQUEST: 3c313ac758bd441cfae841705c1449ef3c47267c355a547665d6c3afe05e4cd3 STRING TO SIGN: AWS4-HMAC-SHA256 20140205T170938Z 20140205/us-east-1/AGCODService/aws4_request 3c313ac758bd441cfae841705c1449ef3c47267c355a547665d6c3afe05e4cd3 DERIVED SIGNING KEY: 07ef165a0531f64ac7ba835805728d63c296be4d0012a226454795f74644aa02 SIGNATURE: f00fea4fa7812f7910c90e6ffb9e973c45b80ce9f1e05228a1fdde1d87cde075 ENDPOINT: agcod-v2-gamma.amazon.com SIGNED REQUEST POST /CreateGiftCard HTTP/1.1 accept:charset=UTF-8 content-type:charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20140205T170938Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard Authorization:AWS4-HMAC-SHA256 Credential=AKIAJBYCL67O6NJUNYBQ/20140205/useast-1/AGCODService/aws4_request, SignedHeaders=accept;content-type;host;xamz-date;x-amz-target, Signature=f00fea4fa7812f7910c90e6ffb9e973c45b80ce9f1e05228a1fdde1d87cde075 F2005AwssbUSD3.14159

REPONSE :

31 | P a g e

Currency Code can't be null or empty InvalidCurrencyCodeInput F200 FAILURE

5. Exemple de signature V4 avec réponse connue Pour vous aider dans le processus de développement, nous avons inclus ci-dessous un exemple de test comprenant des clés d'accès/clés secrètes fictives pour générer un test à réponse connue aux différents stades de la signature. Pour plus de détails sur l'exécution de chaque phase de la signature, cliquez ici (support visuel). Paramètres utilisés

PartnerID : Test creationRequestId : Test001 AGCOD Access Key : fake-access-key AGCOD Secret Key : fake-secret-key Timestamp : 20140205T171524Z kSecret : 4157533466616b652d7365637265742d6b6579 kDate : 41b8dd5e0d1716ba90401d46b58b12d500accdd2ea9c2b22a2d275946c9d978e kRegion : 7b47360ce7afbe1b839e0b0e55834df99979a5414bc7f846b17c9374d230d45d kService : 68136b0a64b2d01c8934370288b46500243645e468f521503e0d1fa73526d409 kSigning : 27cb9f5b991c2933f5faae716e99bd50c66a45811b1424128269312bdd570dff

PAYLOAD: Test001TestUSD10 HASHED PAYLOAD: 50bf24a091a7463bb4a2661f93a7299c94774bc81f9fddf02af2925922b869dc CANONICAL REQUEST: POST /CreateGiftCard accept:charset=UTF-8 content-type:charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20140205T171524Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard

32 | P a g e

accept;content-type;host;x-amz-date;x-amz-target 50bf24a091a7463bb4a2661f93a7299c94774bc81f9fddf02af2925922b869dc HASHED CANONICAL REQUEST: 7d9f2765e4f23e85d3dce4ae264dac4f784c152f3746aff45ac7f3afd7fad649 STRING TO SIGN: AWS4-HMAC-SHA256 20140205T171524Z 20140205/us-east-1/AGCODService/aws4_request 7d9f2765e4f23e85d3dce4ae264dac4f784c152f3746aff45ac7f3afd7fad649 DERIVED SIGNING KEY: 27cb9f5b991c2933f5faae716e99bd50c66a45811b1424128269312bdd570dff SIGNATURE: e32110cf663ed86460621dff12bb1139afe29d015584d208df09f149fa1b69d1 ENDPOINT: agcod-v2-gamma.amazon.com SIGNED REQUEST POST /CreateGiftCard HTTP/1.1 accept:charset=UTF-8 content-type:charset=UTF-8 host:agcod-v2-gamma.amazon.com x-amz-date:20140205T171524Z x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard Authorization:AWS4-HMAC-SHA256 Credential=fake-aws-key/20140205/us-east1/AGCODService/aws4_request, SignedHeaders=accept;content-type;host;x-amzdate;x-amz-target, Signature=e32110cf663ed86460621dff12bb1139afe29d015584d208df09f149fa1b69d1 Test001TestUSD10

Annexe 5 : Requête CardStatus L'API de chèque-cadeau renvoie l'état courant du code de chèque cadeau dans la réponse à la requête CREATE. Fulfilled : le code a été créé KR2G-W4CQNJ-WQS8 USD 1.0 33 | P a g e

Fulfilled A2BN7W2SGEZFFE Awssb-ABR-09 SUCCESS

RefundedToPurchaser : le code a été annulé et remboursé KR2G-W4CQNJ-WQS8 USD 1.0 RefundedToPurchaser A2BN7W2SGEZFFE Awssb-ABR-09 SUCCESS Expired : le code n'a pas été utilisé avant la date d'expiration. Notez que les codes n'ont pas de date d'expiration aux Etats-Unis et au Canada. G22G-WACQNJ-27S8 JPY 1.0 Expired A2BWWZ1SGEZF2F Awssb-ABR-10 SUCCESS

Annexe 6 : Configuration d'un compte entreprise Amazon Payments (non applicable en dehors des Etats-Unis) 34 | P a g e

Reportez-vous au document suivant pour connaître la procédure détaillée de configuration d'un compte entreprise Amazon Payments dans notre environnement de production. Lorsque vous avez terminé cette procédure, nous devons effectuer quelques étapes en arrière-plan de notre côté pour terminer la configuration. Celles-ci requièrent généralement 3 à 5 jours ouvrés.

Annexe 7 : Endpoints Sandbox et Production Sandbox Pour US/CA (NA) : https://agcod-v2-gamma.amazon.com (utilisez la région us-east-1) Pour IT/ES/DE/FR/UK (EU) : https://agcod-v2-eu-gamma.amazon.com (utilisez la région eu-west-1) Pour JP (FE) : https://agcod-v2-fe-gamma.amazon.com (utilisez la région us-west-2)

Production Pour US/CA (NA) : https://agcod-v2.amazon.com (utilisez la région us-east-1) Pour IT/ES/DE/FR/UK (EU) : https://agcod-v2-eu.amazon.com (utilisez la région eu-west-1) Pour JP (FE) : https://agcod-v2-fe.amazon.com (utilisez la région us-west-2)

Annexe 8 : Contrôle du débit AGCOD règle/réduit les requêtes entrantes pour empêcher toute utilisation inappropriée du système. Le débit de requêtes ne peut pas dépasser 10 requêtes par seconde et par partenaire, quel que soit le type de transaction, à l'exception de GetGiftCardActivityPage, dont le taux maximal est d'une requête par minute. API

Contrôle du débit (nombre de requêtes)

GetGiftCardActivityPage CreateGiftCard (uniquement

1 par minute 10 par seconde

applicable si vous utilisez des API de création Web)

CancelGiftCard (uniquement

10 par seconde

applicable si vous utilisez des API de création Web)

ActivateGiftCard (uniquement

10 par seconde

applicable si vous utilisez des API d'activation Web)

DeactivateGiftCard (uniquement

10 par seconde

applicable si vous utilisez des API d'activation Web)

35 | P a g e

ActivationStatusCheck

10 par seconde

(uniquement applicable si vous utilisez des API d'activation Web)

Annexe 9 : Traitement des erreurs Chaque réponse envoyée par la passerelle AGCOD est associée à un élément Status qui décrit l'état d'avancement d'une opération particulière ; il existe trois valeurs statusCode : SUCCESS/FAILURE/RESEND.

(i) statusCode : SUCCESS Le statusCode SUCCESS est renvoyé lorsque l'opération réussit.

(ii) statusCode : FAILURE Le statusCode FAILURE est renvoyé lorsque la requête ne peut pas être honorée par la passerelle AGCOD, cet état peut inclure des données de requête non valides ou une erreur de modèle de traitement qui doivent être corrigées par le partenaire. Le champ errorCode contient dans ce cas des informations supplémentaires sur l'erreur.

(iii) statusCode : RESEND Le statusCode RESEND est renvoyé en cas d'erreur système temporaire ou récupérable pouvant être résolue par le partenaire lors d'une nouvelle tentative de requête. Le champ errorCode contient dans ce cas des informations supplémentaires sur l'erreur. L'erreur RESEND ne doit pas être interprétée comme un échec de la requête. Elle indique simplement que l'état de l'opération n'a pas pu être déterminé au moment de l'envoi. Dans ces cas de figure, le partenaire retente généralement la requête avec les mêmes données que la requête initiale jusqu'à ce qu'il obtienne une réponse d'état définie (SUCCESS ou FAILURE). Il est recommandé au partenaire de limiter les nouvelles tentatives de requête pour éviter d'inonder la passerelle AGCOD. Nous recommandons une approche simple comme un modèle de retrait exponentiel.

(iv) Codes d'erreur Nous utilisons la convention de codes F2XX pour indiquer les erreurs provenant du partenaire et F1XX pour les erreurs provenant d'Amazon. Nous avons inclus des ID de requête erronés fictifs pour simuler certaines réponses d'erreur aux appels Create/Cancel. Lors de la simulation d'une réponse d'erreur, l'ID doit être copié dans le champ creationRequestId, de la même façon que pour un ID de requête normal. Les valeurs transmises aux autres champs sont reprises dans la réponse. Pour simuler une réponse de réussite, la valeur F1000 36 | P a g e

peut être utilisée comme ID de requête d'erreur fictif. Reportez-vous à la section Exemples de tests pour plus d'informations et à l'annexe 9 pour voir les codes d'erreur.

Annexe 10 : Codes d'erreur

Catégorie d'erreur

Explication

F100 [erreurs système]

SimpleAmountIsNull ErrorCode : F100 ErrorType : GeneralError Message : General Error Mock Error Request ID : F1000 AmountIsNull ErrorCode : F100 ErrorType : GeneralError Message : General Error Mock Error Request ID : F1000 CurrencyCodeIsNull ErrorCode : F100 ErrorType : GeneralError Message : General Error Mock Error Request ID : F1000 GcLocked ErrorCode : F100 ErrorType : GeneralError Message : General Error Mock Error Request ID : F1000 EmptyCardInfoList ErrorCode : F100 ErrorType : GeneralError Message : General Error Mock Error Request ID : F1000 RequestError ErrorCode : F100 ErrorType : GeneralError Message : General Error Mock Error Request ID : F1000 InvalidRequestInput ErrorCode : F200 ErrorType : InvalidRequestInput Message : Request body is null Mock Error Request ID : F2000 InvalidCardNumberInput

F200 [erreurs de saisie du partenaire]

37 | P a g e

Catégorie d'erreur

Explication ErrorCode : F200 ErrorType : InvalidCardNumberInput Message : Card number can't be null or empty Mock Error Request ID : F2001 InvalidPartnerIdInput ErrorCode : F200 ErrorType : InvalidPartnerIdInput Message : Partner Id can't be null or empty Mock Error Request ID : F2002 InvalidAmountInput ErrorCode : F200 ErrorType : InvalidAmountInput Message : Amount can't be null Mock Error Request ID : F2003 InvalidAmountValue ErrorCode : F200 ErrorType : InvalidAmountValue Message : Amount must be larger than 0 Mock Error Request ID : F2004 InvalidCurrencyCodeInput ErrorCode : F200 ErrorType : InvalidCurrencyCodeInput Message : Currency Code can't be null or empty Mock Error Request ID : F2005 InvalidRequestIdInput ErrorCode : F200 ErrorType : InvalidRequestIdInput Message : Request Id can’t be null or empty Mock Error Request ID : F2006 CardNumberNotFound ErrorCode : F200 ErrorType : CardNumberNotFound Message : Card Number Not Found Mock Error Request ID : F2007 RequestedDenominationMismatch ErrorCode : F200 ErrorType : PreDenominationMismatch Message : Pre Denomination Mismatch – The Card was created with a different denomination Mock Error Request ID : F2008 CardActivatedWithDifferentDenomination ErrorCode : F200 ErrorType : CardAlreadyActivatedWithDifferentDenomination 38 | P a g e

Catégorie d'erreur

Explication Message : The card was already activated with a different denomination Mock Error Request ID : F2009 CardActivatedWithDifferentRequestId ErrorCode : F200 ErrorType : CardAlreadyActivatedWithDifferentRequestId Message : The card was already activated with a different request id Mock Error Request ID : F2010 ActivationNotAllowed ErrorCode : F200 ErrorType : InvalidCardStatusForActivation Message : Current card status is not valid for activation Mock Error Request ID : F2011 DeactivationNotAllowed ErrorCode : F200 ErrorType : InvalidCardStatusForDeactivation Message : Current card status is not valid for deactivation Mock Error Request ID : F2012 ActivationRequestIdAlreadyBeenUsed ErrorCode : F200 ErrorType : ActivationRequestIdAlreadyBeenUsed Message : Activation RequestId Already Been Used Mock Error Request ID : F2013 NegativeOrZeroAmount ErrorCode : F200 ErrorType : NegativeOrZeroAmount Message : Negative Or Zero Amount Mock Error Request ID : F2014 MaxAmountExceeded ErrorCode : F200 ErrorType : MaxAmountExceeded Message : Max Amount Exceeded Mock Error Request ID : F2015 CurrencyCodeMismatch ErrorCode : F200 ErrorType : CurrencyCodeMismatch Message : Currency Code Mismatch Mock Error Request ID : F2016 FractionalAmountNotAllowed ErrorCode : F200 ErrorType : FractionalAmountNotAllowed 39 | P a g e

Catégorie d'erreur

Explication Message : Fractional Amount Not Allowed Mock Error Request ID : F2017 NonExistingActivationRequestId ErrorCode : F200 ErrorType : NonExistingActivationRequestId Message : No matching activation request ID Mock Error Request ID : F2018 WrongActivationRequestId ErrorCode : F200 ErrorType : WrongActivationRequestId Message : Wrong Activation RequestId Mock Error Request ID : F2019 GcRTPNotAllowed ErrorCode : F200 ErrorType : GeneralError Message : GeneralError Mock Error Request ID : F2020 RequestIdTooLong ErrorCode : F200 ErrorType : RequestIdTooLong Message : Request Id Too Long, Max allowed length is 19 Mock Error Request ID : F2021 RequestIdMustStartWithPartnerName ErrorCode : F200 ErrorType : RequestIdMustStartWithPartnerName Message : Request Id Must Start With Partner Name Mock Error Request ID : F2022 CardNumberTooShort ErrorCode : F200 ErrorType : InvalidCardNumber Message : Invalid Card Number Mock Error Request ID : F2023 CardNumberCheckSumError ErrorCode : F200 ErrorType : InvalidCardNumber Message : Invalid Card Number Mock Error Request ID : F2023 InvalidGCIdInput ErrorCode : F200 ErrorType : InvalidGCIdInput Message : GC Id can't be null or empty Mock Error Request ID : F2024 InvalidRequest 40 | P a g e

Catégorie d'erreur

Explication ErrorCode : F200 ErrorType : InvalidRequest Message : GC Id can't be null or empty Mock Error Request ID : F2025 MaxPageSizeExceeded ErrorCode : F200 ErrorType : MaxPageSizeExceeded Message : Max Page Size Exceeded Mock Error Request ID : F2026 InvalidPageSize ErrorCode : F200 ErrorType : InvalidPageSize Message : Invalid Page Size Mock Error Request ID : F2027 InvalidPageIndex ErrorCode : F200 ErrorType : InvalidPageIndex Message : Invalid Page Index Mock Error Request ID : F2028 InvalidStartDate ErrorCode : F200 ErrorType : InvalidStartDate Message : Invalid Start Date Mock Error Request ID : F2029 InvalidEndDate ErrorCode : F200 ErrorType : InvalidEndDate Message : Invalid End Date Mock Error Request ID : F2030 StartDateAfterEndDate ErrorCode : F200 ErrorType : StartDateAfterEndDate Message : Start Date After End Date Mock Error Request ID : F2031 InvalidDateFormat ErrorCode : F200 ErrorType : InvalidDateFormat Message : Invalid Date Format Mock Error Request ID : F2032 ExternalReferenceTooLong ErrorCode -- F200 ErrorType -- ExternalReferenceTooLong Message -- External Reference is too long Mock Error Request ID – F2042 CancelRequestArrivedAfterTimeLimit 41 | P a g e

Catégorie d'erreur

F300 [erreurs liés au compte, à l'accès et à l'intégration du partenaire]

Explication ErrorCode -- F200 ErrorType -- CancelRequestArrivedAfterTimeLimit Message -- Cancellation cannot be processed as too much time has elapsed since creation Mock Error Request ID – F2047 ProgramIdNotPresent ErrorCode – F200 ErrorType – ProgramIdNotPresent Message – Program Id is not present Mock Error Request ID – F2048 InvalidPartnerId ErrorCode : F300 ErrorType : InvalidPartnerId Message : Invalid Partner Id Mock Error Request ID : F3000 InvalidAccessKey ErrorCode : F300 ErrorType : InvalidAccessKey Message : Invalid Access Key Mock Error Request ID : F3001 AccessDenied ErrorCode : F300 ErrorType : AccessDenied Message : Access Denied Mock Error Request ID : F3002 InsufficientFunds ErrorCode : F300 ErrorType : InsufficientFunds Message : Insufficient Funds Mock Error Request ID : F3003 IssuanceCapExceeded ErrorCode : F300 ErrorType : IssuanceCapExceeded Message : Issuance Cap Exceeded Mock Error Request ID : F3004 GeneralError ErrorCode : F300 ErrorType : GeneralError Message : General Error Mock Error Request ID : F3005 AccountHasProblems ErrorCode : F300 ErrorType : GeneralError Message : General Error Mock Error Request ID : F3005 42 | P a g e

Catégorie d'erreur

Explication OrderNotFound ErrorCode : F300 ErrorType : GeneralError Message : General Error Mock Error Request ID : F3005 WrongGcOrderSource ErrorCode : F300 ErrorType : GeneralError Message : General Error Mock Error Request ID : F3005 WrongGcOrderType ErrorCode : F300 ErrorType : GeneralError Message : General Error Mock Error Request ID : F3005 GcOrderBelongToOtherCustomer ErrorCode : F300 ErrorType : GeneralError Message : General Error Mock Error Request ID : F3005 OperationNotPermitted ErrorCode : F300 ErrorType : OperationNotPermitted Message : Operation Not Permitted Mock Error Request ID : F3006 BadInput ErrorCode : F300 ErrorType : BadInput Message : Bad Input Data Mock Error Request ID : F3007 APIGetGiftCardActivityPageIsDisabled ErrorCode : F300 ErrorType : GeneralError Message : GeneralError Mock Error Request ID : F3008 ActiveContractNotFound ErrorCode : F300 ErrorType : ActiveContractNotFound Message : Active Contract Not Found Mock Error Request ID : F3009 InvalidProgramId ErrorCode – F300 ErrorType – InvalidProgramId Message – Program Id does not exist in Amazon system 43 | P a g e

Catégorie d'erreur

F400 [erreurs RESEND]

F500 : [erreur inconnue]

Explication Mock Error Request ID – F3010 ProgramIsNotApproved ErrorCode - F300 ErrorType – InvalidProgramId Message – Program is not approved Mock Error Request ID – F3011 SystemTemporarilyUnavailable ErrorCode : F400 ErrorType : SystemTemporarilyUnavailable Message : System Temporarily Unavailable Remarque : L'état de réponse serait ici RESEND et non FAILURE. Mock Error Request ID : F4000 UnknownError ErrorCode : F500 ErrorType : GeneralError Message : GeneralError Mock Error Request ID : F5000

44 | P a g e

Historique des révisions du document Date

Version

Changements

23/02/2015

1.01

Création du document

21/04/2015

1.02

Suppression des références au sandbox FPS

12/06/2015

1.03

Changements mineurs

12/01/2017

1.04

Add new F200 mock codes

07/03/2019

1.07

Updated access keys

19/07/2019

1.08

Add new F200 and F300 error codes

45 | P a g e