Guida ai casi d'uso dell'API Messaggistica v1
Invia messaggi agli acquirenti riguardo ai loro ordini
Cos'è l'API di messaggistica?
The Selling Partner API for Messaging (Messaging API) allows you to create applications that enable sellers to send messages to buyers after they place an order. Sellers can send a variety of message types. These include asking order related questions, arranging a delivery, and more. The Messaging API can send messages to a buyer, even if the buyer has not contacted the seller first. However, you cannot use this API to respond to messages from buyers.
Refer to the Messaging API reference for a list of operations that correspond to the available message types.
Terminologia
URL prefirmato Amazon S3: Un URL per un bucket Amazon S3 in cui è possibile caricare un oggetto senza credenziali o autorizzazioni di sicurezza AWS. Ottieni un URL prefirmato di Amazon S3 in Fase 7. Crea una destinazione di caricamento.
Disponibilità dei messaggi
Non tutti i tipi di messaggi sono disponibili in tutte le circostanze. Esistono diversi fattori che possono influire sulla disponibilità dei messaggi, tra cui l'evasione dell'ordine, il tipo di venditore o il numero di messaggi già inviati per l'ordine.
Flusso di lavoro per l'invio di un messaggio
Quanto segue è per l'utente dell'applicazione. L'invio di un messaggio è un processo in più fasi che include chiamate alle operazioni sia nell'API di messaggistica che nell'API Uploads. Ecco il flusso di lavoro di base per l'invio di un messaggio:
-
La tua applicazione mostra gli ordini recenti del venditore e il venditore sceglie un ordine per il quale
vuole inviare un messaggio all'acquirente. -
La tua applicazione mostra i tipi di messaggi disponibili per l'ordine scelto dal venditore. Ottieni i tipi di messaggi disponibili chiamando il
getMessagingActionsForOrder
funzionamento dell'API di messaggistica. -
Il venditore sceglie un tipo di messaggio per l'ordine.
-
Se i messaggi personalizzati sono supportati dal tipo di messaggio, il venditore inserisce un messaggio personalizzato.
-
Se gli allegati sono supportati dal tipo di messaggio, il venditore carica un allegato nella tua applicazione. Il venditore inserisce anche un nome per il file allegato.
-
Se il venditore carica un allegato alla tua applicazione, questo viene caricato in un bucket Amazon S3 procedendo come segue:
-
Calcola un contenuto hash MD5 per l'allegato, necessario per creare una destinazione di caricamento.
-
Crea una destinazione di caricamento chiamando l'operazione
createUploadDestination
di Upload API. -
Carica l'allegato nella destinazione.
-
-
La tua richiesta richiede l'invio di un messaggio dal venditore all'acquirente chiamando l'operazione che corrisponde al tipo di messaggio scelto dal venditore nel passaggio #3. Ad esempio, la tua applicazione chiama
createConfirmOrderDetails
operazione se il venditore ha scelto il tipo di messaggio «Conferma i dettagli dell'ordine». -
Amazon invia un messaggio via e-mail dal venditore all'acquirente.
Per il flusso di lavoro dettagliato, vedi il Tutorial: inviare un messaggio.
Tutorial: inviare un messaggio
Questo tutorial mostra come creare un'applicazione che consenta a un venditore di inviare un messaggio a un acquirente.
Prerequisiti
Per completare questo tutorial, hai bisogno di:
-
Autorizzazione del venditore per il quale stai effettuando chiamate. Per ulteriori informazioni, consulta Autorizzazione delle applicazioni API per i partner di vendita.
-
Approva il ruolo di comunicazione con l'acquirente nel tuo profilo sviluppatore.
-
Il ruolo di comunicazione con l'acquirente selezionato nella pagina di registrazione dell'app per la tua applicazione.
Passaggio 1. Ottieni l'ordine per il quale il venditore desidera inviare un messaggio
-
Visualizza un elenco degli ordini recenti del venditore tra cui il venditore può scegliere.
-
Il venditore sceglie un ordine per il quale desidera inviare un messaggio all'acquirente.
-
Associa un identificativo dell'ordine Amazon all'ordine scelto dal venditore.
-
Salva l'identificativo dell'ordine Amazon per: Passaggio 2. Ottieni un elenco dei tipi di messaggi disponibili.
Passaggio 2. Ottieni un elenco dei tipi di messaggi disponibili
Chiama l'operazione getMessagingActionsForOrder
dell'API di messaggistica, specificando l'identificativo dell'ordine Amazon della
Passaggio 1. Ottieni l'ordine per il quale il venditore desidera inviare un messaggio per ottenere un elenco dei tipi di messaggi disponibili per l'ordine.
- Chiama l'operazione
getMessagingActionsForOrder
dell'API di messaggistica, passando i seguenti parametri:
Parametro del percorso:
Parametro | Descrizione | Obbligatorio |
---|---|---|
amazonOrderId
|
Un identificativo dell'ordine Amazon. Specifica l'ordine per il quale deve essere inviato un messaggio. Ottieni questo valore da: Passaggio 1. Ottieni l'ordine per il quale il venditore desidera inviare un messaggio. Tipo: stringa |
Sì |
Parametro di query:
Parametro | Descrizione | Obbligatorio |
---|---|---|
marketplaceIds
|
Un identificativo del marketplace. Specifica il marketplace in cui è stato effettuato l'ordine. Puoi specificare un solo marketplace. Tipo: array [stringa] |
Sì |
Esempio di richiesta
GET https://sellingpartnerapi-na.amazon.com/messaging/v1/orders/902-6786204-8179805?marketplaceIds=ATVPDKIKX0DER
Risposta
Lo schema di risposta per l'operazione getMessagingActionsForOrder
.
Nome | Descrizione | Schema |
---|---|---|
_links optional | Un oggetto i cui nomi di proprietà sono tipi di relazione di collegamento e i cui valori sono un oggetto di collegamento o un array degli oggetti di collegamento. La risorsa oggetto di questi collegamenti è il Resource Object, di cui l'oggetto "_links" che lo contiene è una proprietà. | _links |
_embedded optional | Un oggetto i cui nomi di proprietà sono tipi di relazioni di collegamento e i cui valori sono un oggetto risorsa o un array di oggetti risorsa. Le risorse incorporate possono essere una versione completa, parziale o incoerente della rappresentazione fornita dall'URI di destinazione. | _embedded |
errors optional | Un elenco di risposte di errore restituite quando una richiesta non va a buon fine. | ErrorList |
_links
Nome | Descrizione | Schema |
---|---|---|
self required | Corrisponde alla relazione "self" registrata da IANA il cui obiettivo è l'URI della risorsa. | LinkObject |
actions required | Azioni idonee per l'AmazonOrderID specificato. | < LinkObject > array |
Nome | Schema |
---|---|
actions required | < GetMessagingActionResponse > array |
Esempio di risposta
{
"_links":
{
"actions": [
{
"href": "/messaging/v1/orders/902-6786204-
8179805/messages/confirmCustomizationDetails?marketplaceIds=ATVPDKIKX0
DER",
"name": "confirmCustomizationDetails"
},
{
"href": "/messaging/v1/orders/902-6786204-
8179805/messages/negativeFeedbackRemoval?marketplaceIds=ATVPDKIKX0DER"
,
"name": "negativeFeedbackRemoval"
},
{
"href": "/messaging/v1/orders/902-6786204-
8179805/messages/confirmOrderDetails?marketplaceIds=ATVPDKIKX0DER",
"name": "confirmOrderDetails"
},
],
"self":
{
"href": "/messaging/v1/orders/902-6786204-
8179805?marketplaceIds=ATVPDKIKX0DER"
}
},
"_embedded":
{
"actions": [
{
"_links":
{
"schema":
{
"href": "/messaging/v1/orders/902-6786204-8179805/messages/confirmCustomizationDetails/schema",
"name": "confirmCustomizationDetails"
},
"self":
{
"href": "/messaging/v1/orders/902-6786204-8179805/messages/confirmCustomizationDetails?marketplaceIds=ATVPDKIKX0DER",
"name": "confirmCustomizationDetails"
}
},
"_embedded":
{
"schema":
{
"_links":
{
"self":
{
"href": "/messaging/v1/orders/902-6786204-8179805/messages/confirmCustomizationDetails/schema",
"name": "confirmCustomizationDetails"
}
},
"type": "object",
"name": "confirmCustomizationDetails",
"title": "Confirm customization details",
"description": "Ask your customer to provide details or verify the customization input provided (name spelling, imagery, initials).",
"properties":
{
"attachments":
{
"type": "array",
"items":
{
"type": "object",
"required": [],
"properties":
{
"fileName":
{
"type": "string"
},
"id":
{
"type": "string"
}
}
},
"title": "Add attachment",
"description": "You can upload text files, PDFs, Word documents, and these image file types: .jpg, .gif, and .png. The total size of attachments must be less than 10 MB.",
"x-ui-field-type": "attachments",
"maxItems": 5
},
"rawMessageBody":
{
"type": "string",
"title": "Explain why you are contacting and any action you need your customer to take. ",
"description": "800 character limit. Only links related to order completion are allowed, no HTML or email addresses.",
"x-ui-field-type": "text",
"minLength": 1,
"maxLength": 800
}
},
"required": [
"attachments",
"rawMessageBody"
],
"$schema": "http://json-schema.org/draft-04/schema#",
"x-ui-hidden": null
}
},
"name": "confirmCustomizationDetails",
"title": "Confirm customization details"
},
{
"_links":
{
"schema":
{
"href": "/messaging/v1/orders/902-6786204-8179805/messages/negativeFeedbackRemoval/schema",
"name": "negativeFeedbackRemoval"
},
"self":
{
"href": "/messaging/v1/orders/902-6786204-8179805/messages/negativeFeedbackRemoval?marketplaceIds=ATVPDKIKX0DER",
"name": "negativeFeedbackRemoval"
}
},
"_embedded":
{
"schema":
{
"_links":
{
"self":
{
"href": "/messaging/v1/orders/902-6786204-8179805/messages/negativeFeedbackRemoval/schema",
"name": "negativeFeedbackRemoval"
}
},
"type": "object",
"name": "negativeFeedbackRemoval",
"title": "Request to update negative feedback",
"description": "Ask your customer to consider updating their seller feedback rating. You may only send this once per order.",
"properties": {},
"required": [],
"$schema": "http://json-schema.org/draft-04/schema#",
"x-ui-hidden": true
}
},
"name": "negativeFeedbackRemoval",
"title": "Request to update negative feedback"
},
{
"_links":
{
"schema":
{
"href": "/messaging/v1/orders/902-6786204-8179805/messages/confirmOrderDetails/schema",
"name": "confirmOrderDetails"
},
"self":
{
"href": "/messaging/v1/orders/902-6786204-8179805/messages/confirmOrderDetails?marketplaceIds=ATVPDKIKX0DER",
"name": "confirmOrderDetails"
}
},
"_embedded":
{
"schema":
{
"_links":
{
"self":
{
"href": "/messaging/v1/orders/902-6786204-8179805/messages/confirmOrderDetails/schema",
"name": "confirmOrderDetails"
}
},
"type": "object",
"name": "confirmOrderDetails",
"title": "Confirm order details",
"description": "Ask your customer a specific order-related question prior to shipping their order.",
"properties":
{
"rawMessageBody":
{
"type": "string",
"title": "Explain why you are contacting and any action you need your customer to take. ",
"description": "2000 character limit. Only links related to order completion are allowed, no HTML or email addresses.",
"x-ui-field-type": "text",
"minLength": 1,
"maxLength": 2000
}
},
"required": [
"rawMessageBody"
],
"$schema": "http://json-schema.org/draft-04/schema#",
"x-ui-hidden": null
}
},
"name": "confirmOrderDetails",
"title": "Confirm order details"
},
]
}
}
-
Salva l'elenco degli schemi nell'array di risposta
_embedded.actions
. Nella sezione_embedded.schema
di ogni elemento di risposta puoi trovare uno schema per ogni tipo di messaggio disponibile. Usa il valoretitle
in ogni schema per creare un elenco dei tipi di messaggi disponibili tra cui il venditore può scegliere Passaggio 3. Chiedi al venditore di scegliere il tipo di messaggio. Usa gli schemi per capire come visualizzare e applicare le restrizioni per i messaggi e gli allegati personalizzati che si applicano a ciascun tipo di messaggio. Per ulteriori informazioni, vedi: Passaggio 4. Ottieni un messaggio di testo personalizzato dal venditore (se supportato) e Passaggio 5. Ottieni un allegato dal venditore (se supportato). -
Salva l'elenco dei percorsi nell'array di risposta
_links.actions
. Il valorehref
in ogni elemento della array contiene un percorso per ogni tipo di messaggio disponibile. È possibile utilizzare uno di questi percorsi in una chiamata per l'operazione appropriata in: Passaggio 9. Invia un messaggio all'acquirente.
Passaggio 3. Chiedi al venditore di scegliere il tipo di messaggio
-
Mostra un elenco dei tipi di messaggi disponibili tra cui il venditore può scegliere. Puoi scaricarli dai valori
title
che hai salvato in: Passaggio 2. Ottieni un elenco dei tipi di messaggi disponibili. -
Consenti al venditore di scegliere il tipo di messaggio che desidera inviare e salvalo. Questa scelta influirà su diversi passaggi successivi, tra cui:
-
Passaggio 4. Ottieni un messaggio di testo personalizzato dal venditore (se supportato). La scelta del tipo di messaggio determina se un messaggio personalizzato è supportato.
-
Passaggio 5. Ottieni un allegato dal venditore (se supportato). La scelta del tipo di messaggio determina se gli allegati sono supportati.
-
Passaggio 9. Invia un messaggio all'acquirente. La scelta del tipo di messaggio determina quale operazione verrà chiamata nel passaggio 9. Per esempio, se il venditore sceglie il tipo di messaggio "Conferma i dettagli di personalizzazione", chiamerai l'operazione
confirmCustomizationDetails
nel passaggio 9.
-
Passaggio 4. Ottieni un messaggio di testo personalizzato dal venditore (se supportato)
Alcuni tipi di messaggi consentono al venditore di includere un messaggio personalizzato nell'e-mail inviata all'acquirente. Per scoprire se un tipo di messaggio supporta i messaggi personalizzati, consulta il riferimento all'API di messaggistica per trovare l'operazione che corrisponde al tipo di messaggio. Per esempio, l'operazione createConfirmServiceDetails
corrisponde al tipo di messaggio "Contatta il cliente con l'assistenza domiciliare". Se l'operazione include un parametro relativo al corpo del testo, il tipo di messaggio supporta messaggi personalizzati.
-
Determina se il tipo di messaggio scelto dal venditore nel Passaggio 3. Chiedi al venditore di scegliere il tipo di messaggio supporta i messaggi personalizzati. Se i messaggi personalizzati non sono supportati, passa direttamente a: Passaggio 5. Ottieni un allegato dal venditore (se supportato). Se i messaggi personalizzati sono supportati, continua con la procedura.
-
Consenti al venditore di inserire il testo non elaborato che desidera per il suo messaggio personalizzato.
-
Visualizza e applica eventuali restrizioni sul testo del messaggio inserito dal venditore. Puoi trovare le restrizioni testuali nella sezione
_embedded.schema.properties.rawMessageBody
dell'elemento_embedded.actions
della array che corrisponde al tipo di messaggio del venditore. Questo puoi trovarlo nella risposta per l'operazionegetMessagingActionsForOrder
nel Passaggio 2. Ottieni un elenco dei tipi di messaggi disponibili. -
Salva il testo del messaggio e usalo come input per il Passaggio 9. Invia un messaggio all'acquirente.
Passaggio 5. Ottieni un allegato dal venditore (se supportato)
Alcuni tipi di messaggi consentono al venditore di includere un link a un allegato nell'e-mail inviata all'acquirente. Per scoprire se un tipo di messaggio supporta gli allegati, consulta il Riferimento API di messaggistica per trovare l'operazione che corrisponde al tipo di messaggio. Per esempio, l'operazione createWarranty
corrisponde al tipo di messaggio "Invia informazioni sulla garanzia". Se l'operazione include un parametro relativo al corpo degli allegati, il tipo di messaggio supporta gli allegati.
-
Determina se il tipo di messaggio scelto dal venditore nel Passaggio 3. Chiedi al venditore di scegliere il tipo di messaggio supporta gli allegati. Se gli allegati non sono supportati, vai direttamente al Passaggio 9. Invia un messaggio all'acquirente. Se gli allegati sono supportati, continua con la procedura.
-
Consenti al venditore di caricare un allegato alla tua applicazione.
-
Mostra e applica eventuali restrizioni sull'allegato caricato dal venditore. Puoi trovare le restrizioni relative agli allegati nella sezione
_embedded.schema.properties.attachments
dell'elemento_embedded.actions
dell'array che corrisponde al tipo di messaggio del venditore. Questo puoi trovarlo nella risposta per l'operazionegetMessagingActionsForOrder
nel Passaggio 2. Ottieni un elenco dei tipi di messaggi disponibili. -
Converti l'allegato in un flusso di input e salvalo per il Passaggio 8. Carica l'allegato.
-
Consenti al venditore di inserire un nome file per l'allegato, includendo l'estensione del file.
-
Salva il nome del file e usalo come input per il Passaggio 9. Invia un messaggio all'acquirente.
Passaggio 6. Calcola un Contenuto hash MD5
Calcola un Contenuto hash MD5 per l'allegato del Passaggio 5. Ottieni un allegato dal venditore (se supportato). Ti servirà per creare una destinazione di caricamento nel Passaggio 7. Crea una destinazione di caricamento.
Il codice di esempio Java in questo passaggio contiene la logica per calcolare un Contenuto hash MD5. Questo codice di esempio utilizza il client Apache HTTP.
- Usa quanto segue come input per il codice di esempio:
• Il flusso di input degli allegati dal Passaggio 5. Ottieni un allegato dal venditore (se supportato), è l'argomento a favore del parametro fis
del computeContentMD5Value
metodo della classe CreateMD5
.
- Salva il valore
md5Content
da trasmettere col parametroContent-MD5
nel Passaggio 7. Crea una destinazione di caricamento.
Esempio di codice Java
package io.swagger.client.util;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class CreateMD5
{
public static String computeContentMD5Value(FileInputStream fis)
throws IOException,
NoSuchAlgorithmException
{
DigestInputStream dis = new DigestInputStream(fis,
MessageDigest.getInstance("MD5"));
byte[]buffer = new byte[8192];
while (dis.read(buffer) > 0);
String md5Content = new String(org.apache.commons.codec.binary.Base64
.encodeBase64(dis.getMessageDigest().digest()));
// Effectively resets the stream to be beginning of the file
// via a FileChannel.
fis.getChannel().position(0);
return md5Content;
}
}
Passaggio 7. Crea una destinazione di caricamento
Chiama l'operazione createUploadDestination
di Uploads API per creare una destinazione di caricamento per l'allegato, sotto forma di URL pre-firmato Amazon S3. Per le definizioni, consulta la Terminologia.
- Chiama l'operazione
createUploadDestination
di Uploads API, passando i seguenti parametri:
Parametri di query:
Type | Nome | Descrizione | Schema |
---|---|---|---|
Query | marketplaceIds required | Un elenco di identificatori del marketplace. Specifica i marketplace in cui sarà disponibile il caricamento. È possibile specificare un solo marketplace. Numero massimo : 1 | < corda > matrice |
Query | Contenuto MD5 required | L'hash Content-MD5 in cui hai calcolato Fase 6. Calcola un hash MD5 di Content. | string |
Path | risorsa required | La risorsa per la destinazione di caricamento che stai creando. Ad esempio, se stai creando una destinazione di caricamento per l'operazione CreateLegalDisclosure dell'API di messaggistica, {resource} sarebbe /messaging/v1/orders/{amazonOrderId}/messages/legalDisclosure , e l'intero percorso sarebbe /uploads/2020-11-01/uploadDestinations/messaging/v1/orders/{amazonOrderId}/messages/legalDisclosure . Se stai creando una destinazione di caricamento per un documento di contenuto Aplus, {resource} sarebbe aplus/2020-11-01/contentDocuments e il percorso sarebbe /uploads/v1/uploadDestinations/aplus/2020-11-01/contentDocuments . | string |
Query | Tipo di contenuto optional | Il tipo di contenuto del file da caricare. | string |
Esempio di richiesta
POST https://sellingpartnerapi-na.amazon.com/uploads/2020-11-01/uploadDestinations/messaging/v1/orders/7XX-5XXXXX-8XXXXXX/messages/invoice?marketplaceIds=A2Q3Y263D00KWC&contentMD5=qCcR3o%2BU0FUR1%2BgXhApNfQ%3D%3D
Risposta
Lo schema di risposta per l'operazione createUploadDestination
.
Nome | Descrizione | Schema |
---|---|---|
payload optional | Informazioni sulla destinazione di caricamento. | UploadDestination |
errors optional | Un elenco di risposte di errore restituite quando una richiesta non va a buon fine. | ErrorList |
Esempio di risposta
{
"payload":
{
"uploadDestinationId": "sc/7ae2d3b1-fdd3-42c4-98c4-9cc509fb95d8.png",
"url": "https://aplus-media.s3.amazonaws.com/?x-amz-date=20201116T184623Z&x-amz-signature=c5c8efd95d883b6787a2b1a93c7c066f01cb4e8d7be3ece4360aa800332e0cf9&x-amz-meta-owner=A2CZ04NGKYDXDV&acl=private&key=sc/7ae2d3b1-fdd3-42c4-98c4-9cc509fb95d8.png&x-amz-algorithm=AWS4-HMAC-SHA256&policy=eyJjb25kaXRpb25zIjpbeyJidWNrZXQiOiJhcGx1cy1tZWRpYS1iZXRhIn0seyJrZXkiOiJzb3RhLzdhZTJkM2IxLWZkZDMtNDJjNC05OGM0LTljYzUwOWZiOTVkOC5wbmcifSx7ImFjbCI6InByaXZhdGUifSx7IngtYW16LW1ldGEtb3duZXIiOiJBMkNaMDROR0tZRFhEViJ9LHsieC1hbXotYWxnb3JpdGhtIjoiQVdTNC1ITUFDLVNIQTI1NiJ9LHsieC1hbXotY3JlZGVudGlhbCI6IkFLSUE2TDZSN1FFNTZGNkdNRzVFLzIwMjAxMTE2L3VzLWVhc3QtMS9zMy9hd3M0X3JlcXVlc3QifSx7IngtYW16LWRhdGUiOiIyMDIwMTExNlQxODQ2MjNaIn0sWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsMSwzMTQ1NzI4XV0sImV4cGlyYXRpb24iOiIyMDIwLTExLTE2VDIxOjQ2OjIzLjg2OFoifQ==&x-amz-credential=AKIA6L6R7QE56F6GMG5E/20201116/us-east-1/s3/aws4_request",
"headers":
{
"Content-MD5": "1jnGuPv7xwPiat6NesKL/w=="
}
}
}
- Salva i seguenti valori:
- url e headers. Usa questi valori nella Passaggio 8. Carica l'allegato.
uploadDestinationId
. Use this value in Step 9. Send a message to the buyer.
Passaggio 8. Carica l'allegato
Carica su un bucket Amazon S3 l'allegato che il venditore ha caricato nella tua applicazione nel Passaggio 5. Ottieni un allegato dal venditore (se supportato).
Il codice di esempio Java in questo passaggio contiene la logica caricare un allegato. Questo codice di esempio utilizza il client Apache HTTP.
Usa quanto segue come input per il codice di esempio:
-
Usa il valore url che hai salvato nel Passaggio 7. Crea una destinazione di caricamento come argomento per
URL(uploadDestinationPayload.getPayload().getUrl())
nella classeUploadFileToDestination
. -
Usa il valore headers che hai salvato nel Passaggio 7. Crea una destinazione di caricamento come input per
(Map < String, String > )uploadDestinationPayload.getPayload().getHeaders()
nella classeUploadFileToDestination
. -
Usa il flusso di input degli allegati che hai salvato nel Passaggio 4. Ottieni un messaggio di testo personalizzato dal venditore (se supportato) e usalo come input per il metodo
out.write()
della classeUploadFileToDestination
.
Esempio di codice Java
package io.swagger.client.util;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;
import io.swagger.client.model.CreateUploadDestinationResponse;
public class UploadFileToDestination
{
private static String requestMethod = "PUT";
private static String contentType = "Content-Type";
private static String contentValue = "application/text";
private static URL url;
private static Map < String,
String > headers;
/* Upload file to destination using the response returned in
CreateUploadDestination. Reference https://docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObjectJavaSDK.html)
*/
public static void uploadFileInDestination(
CreateUploadDestinationResponse uploadDestinationPayload)
throws IOException
{
url = new URL(uploadDestinationPayload.getPayload().getUrl());
headers = (Map < String, String > )uploadDestinationPayload.getPayload()
.getHeaders();
// Create the connection and use it to upload the new object using the
// pre-signed URL.
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod(requestMethod);
connection.setRequestProperty(contentType, contentValue);
// headers that are returned in createDestination call
for (Map.Entry < String, String > headersEntry: headers.entrySet())
{
connection.setRequestProperty(headersEntry.getKey(),
headersEntry.getValue());
}
OutputStreamWriter out = new OutputStreamWriter(
connection.getOutputStream());
out.write("Text of the file");
out.close();
// Check the HTTP response code. To complete the upload and make the
// object available,
// you must interact with the connection object in some way.
connection.getResponseCode();
System.out.println("HTTP response code: " + connection.getResponseCode()
+ connection.getResponseMessage());
connection.disconnect();
}
}
L'allegato viene caricato nel bucket Amazon S3.
Passaggio 9. Invia un messaggio all'acquirente
To send a message from the seller to the buyer you need to call the operation that corresponds to the message type that the seller chose in Step 2. Get a list of available message types. For example, if the seller chose the "Confirm customization details" message type, you would call the confirmCustomizationDetails
operation. Refer to the Messaging API reference for the list of operations that are available. In this example, we will call the confirmCustomizationDetails
operation.
- Chiama l'operazione
confirmCustomizationDetails
dell'API di messaggistica, passando i seguenti parametri:
Parametro del percorso:
Parametro | Descrizione | Obbligatorio |
---|---|---|
amazonOrderId
|
Un identificativo dell'ordine Amazon. Questo specifica l'ordine per il quale deve essere inviato un messaggio. Usa l'identificativo dell'ordine Amazon che hai salvato nel Passaggio 1. Ottieni l'ordine per il quale il venditore desidera inviare un messaggio. Tipo: stringa |
Sì |
Parametro di query:
Parametro | Descrizione | Obbligatorio |
---|---|---|
marketplaceIds
|
Un identificativo del marketplace. Specifica il marketplace in cui è stato effettuato l'ordine. Puoi specificare un solo marketplace. Tipo: array [stringa] |
Sì |
Parametro del corpo:
Parametro | Descrizione | Obbligatorio |
---|---|---|
text
|
Il messaggio personalizzato da includere nell'e-mail indirizzata all'acquirente. Usa il testo del messaggio del Passaggio 4. Ottieni un messaggio di testo personalizzato dal venditore (se supportato). Tipo: stringa |
Sì |
attachments
|
Allegati da includere nel messaggio all'acquirente
|
Sì |
Esempio di richiesta
POST https://sellingpartnerapi-na.amazon.com/messaging/v1/orders/902-6786204-8179805/messages/confirmCustomizationDetails?marketplaceIds=ATVPDKIKX0DER
{
"text": "This is the message from the seller to the buyer that will appear in the email to the buyer.",
"attachments": [
{
"uploadDestinationId": "4370d51b-2954-445c-9f30-EXAMPLE6b9de",
"fileName": "example.txt"
}
]
}
Risposta
Non c'è risposta. Invece, Amazon invia via per e-mail il messaggio del venditore all'acquirente.
Aggiornato 2 mesi fa