Códigos de regalo bajo demanda de Amazon

Si ves que se dan con frecuencia, contacta ...... Para IT/ES/DE/FR/UK (EU): https://agcod-v2-eu-gamma.amazon.com (utiliz
2MB Größe 40 Downloads 98 Ansichten
Códigos de regalo bajo demanda de Amazon Creación web Especificación técnica de integración Preguntas frecuentes y apéndices

Los códigos de regalo bajo demanda de Amazon (AGCOD) son un conjunto de sistemas diseñado para permitir a nuestros clientes crear y distribuir códigos de regalo de Amazon en tiempo real bajo demanda. Entre los ejemplos, se incluyen: los casos de uso aplicables incluyen la inserción de códigos de regalo en tarjetas regalo electrónicas, reclamo publicitario del grupo, canje en tiempo real de códigos de regalo en programas de fidelidad (p. ej., programas de puntos), etc.

Contenido Apéndice 1: Arquitectura de servicio de puerta de enlace de AGCOD de alto nivel ...................... 9 Apéndice 2: Esquemas de mensajes del servicio de puerta de enlace de AGCOD ....................... 10 Apéndice 3: Flujo básico para solicitudes de creación/cancelación de tarjetas regalo............ 11 Apéndice 4: Código de muestra y solicitudes y respuestas de ejemplo .......................................... 11 Código de muestra ............................................................................................................................... 11 1.

Crear una tarjeta regalo .................................................................................................................. 15 Solicitud POST HTTP CreateGiftCard de muestra con carga JSON ................................................ 15 Solicitud POST HTTP CreateGiftCard de muestra con carga XML ................................................. 16 Formato de respuesta de CreateGiftCard de muestra .................................................................... 17

2.

Cancelar una tarjeta regalo ............................................................................................................. 18 Solicitud POST HTTP CancelGiftCard de muestra con carga JSON ................................................ 18 Solicitud POST HTTP CancelGiftCard de muestra con carga XML ................................................. 19 Formato de respuesta de CancelGiftCard de muestra .................................................................... 20

3.

Obtener la página de actividad de la tarjeta regalo ....................................................................... 21 Solicitud POST HTTP GetGiftCardActivity de muestra con carga JSON ........................................ 21 Solicitud POST HTTP GetGiftCardActivity de muestra con carga XML ......................................... 22 Formato de respuesta de GetGiftCardActivity de muestra ............................................................ 24

4.

Ejemplos de prueba simulados ....................................................................................................... 28 Prueba simulada de ÉXITO con requestId "F0000" ........................................................................ 28 Prueba simulada de FALLO con requestId "F2005" ....................................................................... 29

5.

Ejemplo de firma V4 con respuesta conocida................................................................................. 30

Apéndice 5: Estado de la tarjeta .................................................................................................................... 32 Apéndice 6: Configuración de una cuenta empresarial de Amazon Payments (no aplicable fuera de EE. UU.) .................................................................................................................................................. 33 Apéndice 7: Extremos de Sandbox y Producción .................................................................................... 33

Apéndice 8: Tasas de aumento ...................................................................................................................... 33 Apéndice 9: Gestión de errores ..................................................................................................................... 34 Apéndice 10: Códigos de error ...................................................................................................................... 35

Preguntas frecuentes

Q.1

Me aparece el error “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” cuando ejecuto el código de muestra.

A.1

Esto podría deberse a que no dispones del certificado de entidad emisora (CA) “VeriSign Class 3 Public Primary Certificate Authority – G5” o “Verisign Class 3 Secure Server CA – G3” (consulta la captura de pantalla siguiente), que es el firmante de CA original/intermediario del certificado SSL utilizado en nuestros extremos, en tu depósito de claves de Java.

El certificado se debería rellenar automáticamente al instalar JRE/JDK en el equipo en el que está instalado Eclipse (u otro IDE). Puedes utilizar la herramienta de claves de Java integrada (sólo disponible en JDK, no en JRE) para importar el certificado al depósito de claves de Java o ejecutar el código de muestra desde otro equipo con el certificado del firmante de CA original/intermediario instalado. La importación de certificados de CA queda fuera del alcance de la asistencia de AGCOD. Para más información, consulta los enlaces siguientes. Asimismo, consulta la documentación de Java/Eclipse si necesitas más ayuda sobre los métodos siguientes.

Método 1: este método puede resultar complicado, pero se ha demostrado que resuelve el problema. http://javarevisited.blogspot.com/2012/03/add-list-certficates-java-keystore.html http://wiki.eclipse.org/Generating_a_Private_Key_and_a_Keystore

Método 2: puede ser más sencillo. También puedes importar el certificado al depósito de claves de Java con una herramienta de claves de llamadas del complemento Eclipse http://keytool.sourceforge.net/installing.html o http://sourceforge.net/projects/keytool/?source=pdlp Una vez instalado el complemento, configura la ubicación del depósito de claves (la ubicación de tu depósito de claves podría variar según el SO o el emplazamiento de tu depósito). La contraseña predeterminada del depósito de claves es “Changeit” (sin las comillas). Q.2

Me aparece el error “ The security token included in the request is invalid.”.

A.2

Esto podría deberse a una clave de acceso a AWS no válida. Comprueba que la clave de acceso a AWS es correcta y que sirve para el entorno correcto (Sandbox o Producción), y confirma la configuración regional del extremo utilizado.

Q.3

Me aparece el error “The String-to-Sign should have been 'AWS4-HMAC-SHA256/…./us-east1/AGCODService/aws4_request…..'” .

A.3

Esto podría deberse a una clave de acceso a AWS no válida. Comprueba que la clave de acceso a AWS es correcta y que sirve para el entorno correcto (Sandbox o Producción), y confirma la configuración regional del extremo utilizado. Asimismo, asegúrate de usar el prefijo para el cualificador de claves “AWS4” para la clave secreta de AWS a la hora de generar una clave de firma derivada (kSecret) según la información de http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html.

Q.4

Me aparece el error “F500”.

A.4

Contacta con [email protected]; incluye tu identificador de cliente para que nuestros desarrolladores puedan identificar tu cuenta fácilmente. En tus comunicaciones, indica la mayor cantidad de información posible (cuando corresponda)      

Par de solicitud/respuesta completo de tu llamada a la puerta de enlace de AGCOD URL completa de extremo utilizada (incluida la URL del servidor) para realizar la solicitud El parámetro StringToSign utilizado en la solicitud, si no se encuentra en la solicitud/respuesta anterior La firma correspondiente del parámetro StringToSign, si no se encuentra en la solicitud/respuesta anterior Tiempo aproximado (con zona horaria) de tu solicitud (la zona horaria configurada en el equipo que emite la solicitud anterior) Lenguaje de programación utilizado

   

Cualquier cambio reciente (tanto de programación como de infraestructura) en tu extremo Captura de pantalla del error N.º de teléfono y correo electrónico de contacto técnico del cliente Zona horaria del cliente

Q.5

Me aparece el error “Missing Authentication Token”.

A.5

Esto podría deberse a que se ha especificado el extremo incorrecto (p. ej., https://agcodv2.amazon.com en lugar de https://agcod-v2-gamma.amazon.com o el extremo apropiado para tu configuración regional). Comprueba que el extremo es correcto y que sirve para el entorno adecuado (Sandbox o Producción) y la configuración regional.

Q.6

Me aparece el error “HTTP Status 400 - There was an error while processing the request. The request does not match any of the supported protocols.”?

A.6

A menudo, esto se debe a que se realiza una solicitud al extremo incorrecto. Comprueba que estás usando el extremo correcto.

Q.7

¿Qué información de la API es necesario conservar para futuras consultas?

A.7

Como mínimo, debe registrarse creationRequestId, importe, divisa, para la API CreateGiftCard para futuras operaciones como CancelGiftCard. Sin esta información, no podrás completar la llamada CancelGiftCard para el mismo gcCreationRequestId si no se proporcionan los parámetros indicados.

Q.8

No logro obtener la firma para trabajar.

A.8

Consulta los errores de codificación habituales aquí: http://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html Los errores de codificación habituales podrían ser: 

Cambiar por descuido la clave y los datos al calcular las claves intermedias. El resultado de la computación del paso anterior es la clave, no los datos. Comprueba atentamente la documentación de tus primitivas criptográficas para asegurarte de que colocas los parámetros en el orden correcto.



Olvidarte de anteponer la cadena "AWS" delante de la clave en el primer paso. Es posible implementar la derivación de claves mediante un “para bucle” o iterador. Cuando lo hagas, no olvides crear un caso especial para la primera iteración para que incluya la cadena "AWS".



Olvidarte de usar la opción asBytes para la función JavaScript HMAC.Crypto. Si no la utilizas, la implementación de HMAC realizará una codificación hexadecimal adicional de forma predeterminada.



Asegúrate de que la cadena de consultas de la solicitud esta ordenada y codificada correctamente, los nombres de los encabezados se han convertido a caracteres en minúscula y que los encabezados se han ordenado por código de carácter (http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html).

Q.9

¿La puerta de enlace de AGCOD es compatible con GET?

A.9

No, sólo POST es compatible.

Q.10

Me aparece el error “Request Id Must Start With Partner Name”, pero lo he comprobado y tengo el nombre de cliente correcto.

A.10

El identificador de cliente distingue entre mayúsculas y minúsculas. Asegúrate también de que el extremo y la configuración regional son correctos (Sandbox frente a Producción y NA frente a EU)

Q.11

¿La puerta de enlace de AGCOD es compatible con SOAP o Query?

A.11

No, sólo admite solicitudes RESTfull.

Q.12

¿Hay algún límite de tiempo entre la realización de CreateGiftCard() y la aceptación de CancelGiftCard ()?

A.12

Actualmente, no hay ningún límite de tiempo; la limitación se aplica por caso de uso, lo que significa que no se puede emitir una creación después de haber procesado una transacción de uso (p. ej., reclamada) para el GC (ejemplo: el cliente final la ha reclamado). Además, no se puede cancelar un GC una vez vencida la fecha de caducidad (los GC de EE. UU. no tienen fecha de caducidad. Sin embargo, los GC de otras regiones sí que pueden tenerla. Consulta a tu gestor de cuentas si la fecha de caducidad es aplicable en tu región).

Q.13

¿Cuánto tarda una transferencia ACH en estar disponible en nuestra cuenta de Amazon Payments (sólo aplicable a clientes de EE. UU. que utilizan FPS)?

A.13

De 5 a 7 días laborables. Es fundamental que realices un seguimiento de tu actividad y puedas predecir de forma razonable los fondos necesarios. Se aconseja realizar un seguimiento de la actividad con un par de semanas de antelación.

Q.14

¿Podemos financiar nuestra cuenta de Amazon Payments por transferencia bancaria (sólo aplicable a clientes que utilicen FPS)?

A.14

No, el mecanismo de financiación principal es ACH.

Q.15

¿Qué sucede si no hay suficientes fondos en la cuenta para cubrir una solicitud?

A.15

Si no hay suficientes fondos, la puerta de enlace de AGCOD devolverá un error F300 y no activará la tarjeta regalo. Es importar prever con precisión los volúmenes de tarjetas regalo y mantener un fondo de contingencia para una demanda no prevista. Consulta a tu gestor de cuentas para determinar el mejor método.

Q.16

¿Qué informes están disponibles en Amazon Payments (sólo aplicable a clientes que utilicen FPS)?

A.16

Tu cuenta de Amazon Payments ofrece informes detallados sobre las transacciones. Las transacciones pueden descargarse en Excel para su análisis o conciliación con los sistemas de backend.

Q.17

Me aparece un error “F300 Issuance Cap Exceeded” cuando intento crear un GC

A.17

Esto podría deberse a que se está superando el límite de expedición para clientes prepago no FPS si no ha cambiado nada más por parte del cliente. Si obtienes este error en Producción, es posible que se deba a que se han superado los fondos que tienes en la cuenta. Para más información, contacta con tu gestor de cuentas. Si recibes este error en Sandbox, contacta con [email protected] para obtener más asistencia.

Q.18

Me aparece el error “Max Amount Exceeded” cuando intento crear un GC

A.18

Asegúrate de que el GC que estas activando no supera los $2.000 en EE. UU. limitados por ley (otros países pueden tener límites diferentes). País

US

CA

UK

DE

FR

IT

ES

CH

JP

Denom

$0,01 $2000

$0,01 $5000

€ 0,01 € 5000

€ 0,01 -€ 5000

€ 0,01 -€ 5000

€ 0,01 -€ 5000

€ 0,01 -€ 5000

¥ 1 RMB - ¥ 1000 RMB

¥1-¥ 500 000 JPY

Q.19

¿Proporciona una puerta de enlace de AGCOD una respuesta? ¿Cómo se especifica el formato de solicitud en JSON o XML con un código de muestra de Java?

A.19

Sí, selecciona el formato correspondiente (XML o JSON) comentando sobre la línea del formato no preferido.

Q.20

He encontrado alguna referencia del algoritmo de firma/versión sobre aws.amazon.com y es distinta a la información de este documento. ¿Cuál debo seguir?

A.20

La información de este documento es fidedigna. Alguna información sobre AWS no es aplicable a la puerta de enlace de GCOD.

Q.21

Me aparece un error “F200 Invalid Request”.

A.21

Esto sucede a menudo al crear una llamada de creación de GC de AGCOD idempotente (con un CreationRequestID utilizado previamente) con un importe diferente al de la solicitud original.

Q.22

Me aparece un error “Credential should be scoped to a valid region, not 'us-east-1'.”.

A.22

Consulta el Apéndice 6 para obtener el extremo o la región correcta que se utiliza en tu code.vb

Q.23

Me aparecen muchos errores F500/F200, pero no logró descubrir qué es lo que hago mal. ¿Qué es lo que pasa?

A.23

Los errores F500 suceden normalmente por los tiempos de espera en Amazon. Si ves que se dan con frecuencia, contacta con [email protected]. Los errores F200 son

normalmente el resultado de un envío que contiene información no válida. Si se ha verificado la información enviada y parece correcta, contacta con [email protected] para obtener asistencia.

Apéndice 1: Arquitectura de servicio de puerta de enlace de AGCOD de alto nivel

Apéndice 2: Esquemas de mensajes del servicio de puerta de enlace de AGCOD

Apéndice 3: Flujo básico para solicitudes de creación/cancelación de tarjetas regalo

Apéndice 4: Código de muestra y solicitudes y respuestas de ejemplo Código de muestra Para ayudarte a implementar la solución, te hemos proporcionado un código de muestra (Java , C#, Python, Ruby, PHP, HTML) que contiene las principales funciones de la API de AGCOD. Este código de muestra no contiene una buena gestión de errores; por lo tanto, no está “Listo para producción” y deberá utilizarse únicamente como guía. NOTA: Puedes ignorar las referencias a la gestión de certificados X.509 que hayas encontrado en la página web de Amazon AWS. Nuestros sistemas ya no requieren certificados X.509 para la autenticación. Es suficiente con las claves de AWS y una firma calculada. El código de muestra únicamente sirve para ilustrar la funcionalidad de la API; no tiene ninguna lógica para gestionar errores introducidos por el usuario o el sistema. Asimismo, la clave secreta, la clave de

acceso o el identificador de cliente están en el código fuente, que puede verse comprometido si se produce un error no gestionado que derive en un comportamiento no determinista en el programa.

Indica los parámetros siguientes usando tus propios valores específicos antes de las pruebas. partnerId: Acme1 currencyCode: USD para US, EUR para EU, JPY para JP, CNY para CN, CAD para CA awsAccessKey: AKIAJE2RAAV7RP2WROKA (no válida; sólo es un ejemplo) awsSecretKey - Vgjd4AjpU0Sm6IYNDjRRX9nZOA+VPxwaF5K43G9K (no válida; sólo es un ejemplo) region: us-east-1 (variará según la ubicación y el entorno. Consulta las regiones y extremos) endpoint: (variará según la ubicación y el entorno. Consulta las regiones y extremos) C#: la App.config del código de muestra contiene todos los parámetros específicos

Parámetros de Java //User and instance parameters private static final String awsKeyID = ""; // Your KeyID private static final String awsSecretKey = ""; // Your Key //Payload parameters private static final String partnerID = ""; private static final String requestID = ""; private static final String currencyCode = ""; // USD for US, EUR for EU, JPY for JP, CNY for CN, CAD for CA //Additional payload parameters for CancelGiftCard private static final String gcId = ""; // the GC ID from a Create call made previously

Parámetros de Python

Parámetros de Ruby

Nota: Los siguientes ejemplos se crearon con una cuenta de prueba de Amazon. Los clientes deberán usar sus propios identificadores de acceso (awsKeyID, partnerID, requestID).

1. Crear una tarjeta regalo Solicitud POST HTTP CreateGiftCard de muestra con carga 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 Authorization:AWS4-HMAC-SHA256 Credential=AKIAJBYCL67O6NJUNYBQ/20130910/useast-1/AGCODService/aws4_request, SignedHeaders=accept;content-type;host;x-

amz-date;x-amz-target, Signature=66872de215ae457cd978a49be377caf7cd3b5ab2914785339c2b8242e3631a71 {"creationRequestId": "AwssbTSpecTest001", "partnerId": "Awssb", "value": {"currencyCode": "USD", "amount": 1.00}}

Solicitud POST HTTP CreateGiftCard de muestra con carga 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 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;x-

amz-date;x-amz-target, Signature=6dce900ea3557473ee750dfe11489dc667366ffc8823541fadf13934e5d64790 AwssbTSpecTest001AwssbUSD 1.00

Formato de respuesta de CreateGiftCard de muestra 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

Parámetros obligatorios Ten en cuenta que el valor de la divisa (USD, GBP, EUR, JPY, CNY) podría variar según tu configuración regional 1

HTTP Request Method=POST

2

Canonical URI=/CreateGiftCard

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:20130910T222620Z

x-amz-target:com.amazonaws.agcod.AGCODService.CreateGiftCard o 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 (use applicable endpoint)

12

Region Name=us-east-1 (use applicable endpoint)

13

Partner Id=Awssb (use your own Partner ID)

14

Amount=1

15

Currency Code=USD

2. Cancelar una tarjeta regalo Solicitud POST HTTP CancelGiftCard de muestra con carga JSON PAYLOAD: {"creationRequestId": "AwssbTSpecTest001", "partnerId": "Awssb", "gcId": "A2GCN9BRX5QS76"} HASHED PAYLOAD: 7492d98f807281c82b8abef76b75398d72bf4265c8a7ea1726b5cbee0a39be9d 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"}

Solicitud POST HTTP CancelGiftCard de muestra con carga XML PAYLOAD: AwssbTSpecTest001AwssbA2GCN9BRX5QS76 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

Formato de respuesta de CancelGiftCard de muestra JSON {"creationRequestId":"AwssbTSpecTest001","gcId":"A2GCN9BRX5QS76","status":"SUCCESS"}

XML AwssbTSpecTest001 SUCCESS A2GCN9BRX5QS76

Parámetros obligatorios Ten en cuenta que el valor de la divisa (USD, GBP, EUR, JPY, CNY) podría variar según tu configuración regional 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 o 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

11

Host= agcod-v2-gamma.amazon.com (use applicable endpoint)

12

Region Name=us-east-1 (use applicable endpoint)

13

Partner Id=Awssb (use your own Partner ID)

3. Obtener la página de actividad de la tarjeta regalo Solicitud POST HTTP GetGiftCardActivity de muestra con carga 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 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" }

Solicitud POST HTTP GetGiftCardActivity de muestra con carga 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: 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

Formato de respuesta de GetGiftCardActivity de muestra 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 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 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 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

Parámetros obligatorios

Ten en cuenta que el valor de la divisa (USD, GBP, EUR, JPY, CNY) podría variar según tu configuración regional 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 o 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

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 (use applicable endpoint)

11

Region Name=us-east-1 (use applicable endpoint)

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. Ejemplos de prueba simulados Prueba simulada de ÉXITO con requestId "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 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

Prueba simulada de FALLO con requestId "F2005" PAYLOAD: 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

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

5. Ejemplo de firma V4 con respuesta conocida Para ayudarte con el desarrollo, hemos incluido a continuación un ejemplo de prueba con una clave de acceso a AWS/claves secretas de AWS para generar una prueba con respuesta conocida para las diferentes fases de la firma. Los detalles sobre la ejecución en cada fase de la firma pueden encontrarse aquí (visual). Parámetros utilizados

Identificador de cliente: Spanish Test creationRequestId: Test001 Clave de acceso a AWS: fake-aws-key Clave secreta de AWS: fake-secret-key Marca de hora: 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 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

Apéndice 5: Estado de la tarjeta La API del código de regalo devolverá el cardStatus actual en la respuesta del código de regalo de CREATE. Fulfilled: el código de regalo se ha creado correctamente KR2G-W4CQNJ-WQS8 USD 1.0 Fulfilled A2BN7W2SGEZFFE Awssb-ABR-09 SUCCESS

RefundedToPurchaser: el código de regalo se ha cancelado y reembolsado correctamente KR2G-W4CQNJ-WQS8 USD 1.0 RefundedToPurchaser A2BN7W2SGEZFFE Awssb-ABR-09 SUCCESS

Expired: el código de regalo no se ha reclamado antes de la fecha de caducidad. Ten en cuenta que los códigos de regalo no caducan en EE. UU. ni en Canadá. G22G-WACQNJ-27S8 JPY 1.0 Expired A2BWWZ1SGEZF2F Awssb-ABR-10 SUCCESS

Apéndice 6: Configuración de una cuenta empresarial de Amazon Payments (no aplicable fuera de EE. UU.) Consulta el documento siguiente, que contiene los pasos detallados para configurar una cuenta empresarial de Amazon Payments en nuestro entorno de Producción. Una vez realizados estos pasos, hay que dar algunos pasos más como tarea de fondo para completar la configuración. El plazo típico para ello es de 3 a 5 días laborables.

Apéndice 7: Extremos de Sandbox y Producción Sandbox Para US/CA (NA): https://agcod-v2-gamma.amazon.com (utiliza la región us-east-1) Para IT/ES/DE/FR/UK (EU): https://agcod-v2-eu-gamma.amazon.com (utiliza la región eu-west-1) Para JP (FE): https://agcod-v2-fe-gamma.amazon.com (utiliza la región us-west-2)

Producción Para US/CA (NA): https://agcod-v2.amazon.com (utiliza la región us-east-1) Para IT/ES/DE/FR/UK (EU): https://agcod-v2-eu.amazon.com (utiliza la región eu-west-1) Para JP (FE): https://agcod-v2-fe.amazon.com (utiliza la región us-west-2)

Apéndice 8: Tasas de aumento

AGCOD aumentará o reducirá las solicitudes entrantes para impedir un uso inadecuado del sistema. La tasa de solicitudes no debe superar las 10 por segundo y por cliente, incluidos todos los tipos de transacción con la excepción de GetGiftCardActivityPage, que tiene una tasa de solicitudes máxima de una por minuto. API

Tasa de aumento (n.º de solicitudes)

GetGiftCardActivityPage CreateGiftCard (sólo aplicable si

1 por minuto 10 por segundo

se utilizan API de creación web)

CancelGiftCard (sólo aplicable si

10 por segundo

se utilizan API de creación web)

ActivateGiftCard (sólo aplicable si

10 por segundo

se utilizan API de activación web)

DeactivateGiftCard (sólo aplicable

10 por segundo

si se utilizan API de activación web)

ActivationStatusCheck (sólo

10 por segundo

aplicable si se utilizan API de activación web)

Apéndice 9: Gestión de errores Cada respuesta enviada desde la puerta de enlace de AGCOD tiene un elemento de estado asociado que describe el estado de ejecución de la operación determinada; hay tres valores de statusCode: SUCCESS/FAILURE/RESEND.

(i) statusCode: SUCCESS Se devuelve un statusCode de SUCCESS si la operación resulta satisfactoria.

(ii) statusCode: FAILURE Se devuelve un statusCode de FAILURE si la solicitud no puede obtener la puerta de enlace de AGCOD. Esta respuesta de estado puede incluir datos de solicitud no válidos o algún error de lógica de negocio que el cliente debe revisar. En estos casos, el campo errorCode se rellenará y se proporcionarán datos adicionales relativos al error.

(iii) statusCode: RESEND Se devuelve un statusCode de RESEND si hay un fallo del sistema temporal o recuperable que puede solucionar el cliente mediante el reintento de la solicitud. En estos casos, el campo errorCode se rellenará y se proporcionarán datos adicionales relativos al error. El error RESEND no debería interpretarse como un fallo. Simplemente, el estado de la operación no pudo determinarse en el momento del envío. En estos casos, se espera que el cliente reintente la

solicitud utilizando los mismos datos de entrada que la solicitud original hasta que se obtenga un estado de respuesta definitivo (SUCCESS o FAILURE). El cliente deberá limitar sus solicitudes de reintento para evitar el desbordamiento de la puerta de enlace de AGCOD. Se recomienda un método sencillo como un esquema de reducción exponencial.

(iv) Códigos de error Utilizamos una convención de códigos F2XX para indicar errores cuando la causa proviene del cliente y F1XX si la causa se encuentra en Amazon. Hemos proporcionado identificadores de solicitud de errores simulados para simular determinadas respuestas de error con las llamadas de creación o cancelación. Al simular una respuesta de error, el identificador de solicitud de error simulado deberá traspasarse al campo creationRequestId, similar a un identificador de solicitud normal. Los valores traspasados para el resto de campos simplemente quedarán reflejados en la respuesta. Para simular una respuesta correcta, el valor de F1000 puede traspasarse para el identificador de solicitud de error simulado. Consulta la sección Ejemplos de prueba simulados para obtener más información, y el Apéndice 9 para ver los códigos de error.

Apéndice 10: Códigos de error

Categoría del error

Explicación

F100 [Errores del sistema]

SimpleAmountIsNull Código de error: F100 Tipo de error: GeneralError Mensaje: General Error ID de solicitud de error simulado: F1000 AmountIsNull Código de error: F100 Tipo de error: GeneralError Mensaje: General Error ID de solicitud de error simulado: F1000 CurrencyCodeIsNull Código de error: F100 Tipo de error: GeneralError Mensaje: General Error ID de solicitud de error simulado: F1000 GcLocked Código de error: F100 Tipo de error: GeneralError Mensaje: General Error ID de solicitud de error simulado: F1000 EmptyCardInfoList

Categoría del error

Explicación

F200 [Errores de entrada del cliente]

Código de error: F100 Tipo de error: GeneralError Mensaje: General Error ID de solicitud de error simulado: F1000 RequestError Código de error: F100 Tipo de error: GeneralError Mensaje: General Error ID de solicitud de error simulado: F1000 InvalidRequestInput Código de error: F200 Tipo de error: InvalidRequestInput Mensaje: Request body is null ID de solicitud de error simulado: F2000 InvalidCardNumberInput Código de error: F200 Tipo de error: InvalidCardNumberInput Mensaje: Card number can't be null or empty ID de solicitud de error simulado: F2001 InvalidPartnerIdInput Código de error: F200 Tipo de error: InvalidPartnerIdInput Mensaje: Partner Id can't be null or empty ID de solicitud de error simulado: F2002 InvalidAmountInput Código de error: F200 Tipo de error: InvalidAmountInput Mensaje: Amount can't be null ID de solicitud de error simulado: F2003 InvalidAmountValue Código de error: F200 Tipo de error: InvalidAmountValue Mensaje: Amount must be larger than 0 ID de solicitud de error simulado: F2004 InvalidCurrencyCodeInput Código de error: F200 Tipo de error: InvalidCurrencyCodeInput Mensaje: Currency Code can't be null or empty ID de solicitud de error simulado: F2005 InvalidRequestIdInput Código de error: F200 Tipo de error: InvalidRequestIdInput Mensaje: Request Id can’t be null or empty ID de solicitud de error simulado: F2006 CardNumberNotFound

Categoría del error

Explicación Código de error: F200 Tipo de error: CardNumberNotFound Mensaje: Card Number Not Found ID de solicitud de error simulado: F2007 RequestedDenominationMismatch Código de error: F200 Tipo de error: PreDenominationMismatch Mensaje: Pre Denomination Mismatch – The Card was created with a different denomination ID de solicitud de error simulado: F2008 CardActivatedWithDifferentDenomination Código de error: F200 Tipo de error: CardAlreadyActivatedWithDifferentDenomination Mensaje: The card was already activated with a different denomination ID de solicitud de error simulado: F2009 CardActivatedWithDifferentRequestId Código de error: F200 Tipo de error: CardAlreadyActivatedWithDifferentRequestId Mensaje: The card was already activated with a different request id ID de solicitud de error simulado: F2010 ActivationNotAllowed Código de error: F200 Tipo de error: InvalidCardStatusForActivation Mensaje: Current card status is not valid for activation ID de solicitud de error simulado: F2011 DeactivationNotAllowed Código de error: F200 Tipo de error: InvalidCardStatusForDeactivation Mensaje: Current card status is not valid for deactivation ID de solicitud de error simulado: F2012 ActivationRequestIdAlreadyBeenUsed Código de error: F200 Tipo de error: ActivationRequestIdAlreadyBeenUsed Mensaje: Activation RequestId Already Been Used ID de solicitud de error simulado: F2013 NegativeOrZeroAmount Código de error: F200 Tipo de error: NegativeOrZeroAmount Mensaje: Negative Or Zero Amount

Categoría del error

Explicación ID de solicitud de error simulado: F2014 MaxAmountExceeded Código de error: F200 Tipo de error: MaxAmountExceeded Mensaje: Max Amount Exceeded ID de solicitud de error simulado: F2015 CurrencyCodeMismatch Código de error: F200 Tipo de error: CurrencyCodeMismatch Mensaje: Currency Code Mismatch ID de solicitud de error simulado: F2016 FractionalAmountNotAllowed Código de error: F200 Tipo de error: FractionalAmountNotAllowed Mensaje: Fractional Amount Not Allowed ID de solicitud de error simulado: F2017 NonExistingActivationRequestId Código de error: F200 Tipo de error: NonExistingActivationRequestId Mensaje: No matching activation request ID ID de solicitud de error simulado: F2018 WrongActivationRequestId Código de error: F200 Tipo de error: WrongActivationRequestId Mensaje: Wrong Activation RequestId ID de solicitud de error simulado: F2019 GcRTPNotAllowed Código de error: F200 Tipo de error: GeneralError Mensaje: GeneralError ID de solicitud de error simulado: F2020 RequestIdTooLong Código de error: F200 Tipo de error: RequestIdTooLong Mensaje: Request Id Too Long, Max allowed length is 19 ID de solicitud de error simulado: F2021 RequestIdMustStartWithPartnerName Código de error: F200 Tipo de error: RequestIdMustStartWithPartnerName Mensaje: Request Id Must Start With Partner Name ID de solicitud de error simulado: F2022 CardNumberTooShort Código de error: F200

Categoría del error

Explicación Tipo de error: InvalidCardNumber Mensaje: Invalid Card Number ID de solicitud de error simulado: F2023 CardNumberCheckSumError Código de error: F200 Tipo de error: InvalidCardNumber Mensaje: Invalid Card Number ID de solicitud de error simulado: F2023 InvalidGCIdInput Código de error: F200 Tipo de error: InvalidGCIdInput Mensaje: GC Id can't be null or empty ID de solicitud de error simulado: F2024 InvalidRequest Código de error: F200 Tipo de error: InvalidRequest Mensaje: GC Id can't be null or empty ID de solicitud de error simulado: F2025 MaxPageSizeExceeded Código de error: F200 Tipo de error: MaxPageSizeExceeded Mensaje: Max Page Size Exceeded ID de solicitud de error simulado: F2026 InvalidPageSize Código de error: F200 Tipo de error: InvalidPageSize Mensaje: Invalid Page Size ID de solicitud de error simulado: F2027 InvalidPageIndex Código de error: F200 Tipo de error: InvalidPageIndex Mensaje: Invalid Page Index ID de solicitud de error simulado: F2028 InvalidStartDate Código de error: F200 Tipo de error: InvalidStartDate Mensaje: Invalid Start Date ID de solicitud de error simulado: F2029 InvalidEndDate Código de error: F200 Tipo de error: InvalidEndDate Mensaje: Invalid End Date ID de solicitud de error simulado: F2030 StartDateAfterEndDate Código de error: F200 Tipo de error: StartDateAfterEndDate

Categoría del error

F300 [Errores de cuenta de cliente/acceso/activación]

Explicación Mensaje: Start Date After End Date ID de solicitud de error simulado: F2031 InvalidDateFormat Código de error: F200 Tipo de error: InvalidDateFormat Mensaje: Invalid Date Format ID de solicitud de error simulado: F2032 ExternalReferenceTooLong ErrorCode -- F200 ErrorType -- ExternalReferenceTooLong Message -- External Reference is too long Mock Error Request ID – F2042 CancelRequestArrivedAfterTimeLimit ErrorCode -- F200 ErrorType -- CancelRequestArrivedAfterTimeLimit Message -- Cancellation cannot be processed as too much time has elapsed since creation Mock Error Request ID – F2047 InvalidPartnerId Código de error: F300 Tipo de error: InvalidPartnerId Mensaje: Invalid Partner Id ID de solicitud de error simulado: F3000 InvalidAwsAccessKey Código de error: F300 Tipo de error: InvalidAWSAccessKey Mensaje: Invalid AWS Access Key ID de solicitud de error simulado: F3001 AccessDenied Código de error: F300 Tipo de error: AccessDenied Mensaje: Access Denied ID de solicitud de error simulado: F3002 InsufficientFunds Código de error: F300 Tipo de error: InsufficientFunds Mensaje: Insufficient Funds ID de solicitud de error simulado: F3003 IssuanceCapExceeded Código de error: F300 Tipo de error: IssuanceCapExceeded Mensaje: Issuance Cap Exceeded ID de solicitud de error simulado: F3004 GeneralError Código de error: F300 Tipo de error: GeneralError

Categoría del error

Explicación Mensaje: General Error ID de solicitud de error simulado: F3005 AccountHasProblems Código de error: F300 Tipo de error: GeneralError Mensaje: General Error ID de solicitud de error simulado: F3005 OrderNotFound Código de error: F300 Tipo de error: GeneralError Mensaje: General Error ID de solicitud de error simulado: F3005 WrongGcOrderSource Código de error: F300 Tipo de error: GeneralError Mensaje: General Error ID de solicitud de error simulado: F3005 WrongGcOrderType Código de error: F300 Tipo de error: GeneralError Mensaje: General Error ID de solicitud de error simulado: F3005 GcOrderBelongToOtherCustomer Código de error: F300 Tipo de error: GeneralError Mensaje: General Error ID de solicitud de error simulado: F3005 OperationNotPermitted Código de error: F300 Tipo de error: OperationNotPermitted Mensaje: Operation Not Permitted ID de solicitud de error simulado: F3006 BadInput Código de error: F300 Tipo de error: BadInput Mensaje: Bad Input Data ID de solicitud de error simulado: F3007 APIGetGiftCardActivityPageIsDisabled Código de error: F300 Tipo de error: GeneralError Mensaje: GeneralError ID de solicitud de error simulado: F3008 ActiveContractNotFound Código de error: F300 Tipo de error: ActiveContractNotFound Mensaje: Active Contract Not Found

Categoría del error F400 [Errores de RESEND]

F500 [Error desconocido]

Explicación ID de solicitud de error simulado: F3009 SystemTemporarilyUnavailable Código de error: F400 Tipo de error: SystemTemporarilyUnavailable Mensaje: System Temporarily Unavailable Nota: El estado de respuesta sería “RESEND” y no Failure. ID de solicitud de error simulado: F4000 UnknownError Código de error: F500 Tipo de error: GeneralError Mensaje: GeneralError ID de solicitud de error simulado: F5000

Historial de revisiones de documentos Fecha

Versión

Modificaciones

2-23-2015

1.01

Crear documento

4-21-2015

1.02

Referencias eliminadas para FPS Sandbox

6-12-2015

1.03

Modificaciones menores

03-08-2017

1.04

Remove /sping

12-01-2017

1.05

Add two F200 mock error codes