Mesajlaşma API'si v1 Kullanım Senaryosu Rehberi
Alıcılara siparişleri hakkında mesaj gönderin
Mesajlaşma API'si nedir?
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.
Terminoloji
Amazon S3 önceden imzalanmış URL: AWS güvenlik kimlik bilgileri veya izinleri olmadan nesneyi yükleyebileceğiniz Amazon S3 klasörünün URL'si. Şurada önceden imzalanmış bir Amazon S3 URL'si alırsınız Adım 7. Yükleme hedefi oluşturma.
Mesaj kullanılabilirliği
Tüm mesaj türleri her koşulda kullanılamaz. Siparişin yerine getirilip gönderilmediği, satıcının türü veya sipariş için gönderilen mesajların sayısı da dahil olmak üzere mesaj kullanılabilirliğini etkileyebilecek bir dizi faktör vardır.
Mesaj gönderme iş akışı
Aşağıdakiler uygulamanın kullanıcısı içindir. Mesaj göndermek, hem Mesajlaşma API'sinde hem de Yüklemeler API'sındaki işlemlere yapılan çağrıları içeren çok adımlı bir işlemdir. Mesaj göndermek için temel iş akışı şunlardır:
-
Uygulamanız satıcının son siparişlerini gösterir ve satıcı da alıcıya mesaj göndermek istediği
siparişi seçer. -
Uygulamanız, satıcının seçtiği sipariş için kullanılabilen mesaj türlerini görüntüler. Şu numarayı arayarak mevcut mesaj türlerini alın
getMessagingActionsForOrder
Mesajlaşma API'sinin çalışması. -
Satıcı, sipariş için bir mesaj türü seçer.
-
Mesaj türü olarak özel mesajlar destekleniyorsa satıcı özel bir mesaj girer.
-
Mesaj türü olarak ekler destekleniyorsa satıcı, uygulamanıza bir ek yükler. Ayrıca ek için bir dosya adı da girer.
-
Satıcı, uygulamanıza bir ek yüklerse uygulamanız aşağıdaki işlemleri yaparak eki bir Amazon S3 klasörüne yükler:
-
Yükleme hedefi oluşturmak için gerekli olan, ek için Content-MD5 karmasını hesaplama.
-
Yüklemeler API'sinin
createUploadDestination
işlemini çağırarak yükleme hedefi oluşturma. -
Eki hedefe yükleme.
-
-
Başvurunuz, satıcının #3 adımında seçtiği mesaj türüne karşılık gelen işlemi arayarak satıcıdan alıcıya bir mesaj gönderilmesini ister. Örneğin, uygulamanız şunları çağırır
createConfirmOrderDetails
satıcı “Sipariş ayrıntılarını onayla” mesaj türünü seçerse işlem. -
Amazon, alıcıya satıcı tarafından bir e-posta gönderir.
Ayrıntılı iş akışını görmek için bkz. Eğitici içerik: Mesaj gönderin
Eğitici içerik: Mesaj gönderin
Bu eğitici içerikte, alıcıya satıcı tarafından mesaj gönderilmesine izin veren bir uygulamayı nasıl geliştireceğiniz gösterilir.
Ön koşullar
Bu eğitimi tamamlamak için şunlara ihtiyacınız var:
-
Adına arama yaptığınız satıcıdan yetki alın. Daha fazla bilgi için Satış Ortağı API'si uygulamalarını yetkilendirme bölümüne bakın.
-
Geliştirici profilinizdeki Alıcı İletişimi rolü onayı.
-
Uygulamanızın kayıt sayfasında seçilen Alıcı İletişimi rolü.
1. Adım: Satıcının mesaj göndermek istediği siparişi alın
-
Satıcının aralarından seçim yapabileceği, son siparişlerinin listesini gösterin.
-
Satıcı, alıcıya mesaj göndermek istediği siparişi seçer.
-
Amazon sipariş tanımlayıcısını, satıcının seçtiği siparişle ilişkilendirin.
-
Amazon sipariş tanımlayıcısını, 2. Adım: Kullanılabilir mesaj türlerinin listesini alın aşamasında kullanmak için kaydedin.
2. Adım: Kullanılabilir mesaj türlerinin listesini alın
Siparişte kullanılabilen mesaj türlerinin bir listesini almak için
1. Adım: Satıcının mesaj göndermek istediği siparişi alın aşamasındaki Amazon sipariş tanımlayıcısını belirterek Mesajlaşma API'sinin getMessagingActionsForOrder
işlemini çağırın.
- Aşağıdaki parametreleri ileterek Mesajlaşma API'sinin
getMessagingActionsForOrder
işlemini çağırın:
Yol Parametresi:
Parametre | Açıklama | Zorunlu mu? |
---|---|---|
amazonOrderId
|
Amazon siparişi tanımlayıcısı. Bir mesajın gönderileceği siparişi belirtir. Bu değeri, 1. Adım: Satıcının mesaj göndermek istediği siparişi alın aşamasında alabilirsiniz. Tür: dize |
Evet |
Sorgu Parametresi:
Parametre | Açıklama | Zorunlu mu? |
---|---|---|
marketplaceIds
|
Pazaryeri tanımlayıcısı. Siparişin verildiği pazaryerini belirtir. Yalnızca bir tane pazaryeri belirtebilirsiniz. Tür: dizi[dize] |
Evet |
İstek örneği
GET https://sellingpartnerapi-na.amazon.com/messaging/v1/orders/902-6786204-8179805?marketplaceIds=ATVPDKIKX0DER
Yanıt
getMessagingActionsForOrder
işlemiyle ilgili yanıt şeması.
Ad | Açıklama | Schema |
---|---|---|
_links optional | Özellik adları, bağlantı ilişkisi türleri olan ve değerleri de Bağlantı Nesnesi veya Bağlantı Nesneleri dizisi olan nesne. Bu bağlantıların konu kaynağı, Kaynak Nesnesidir. Bunu içeren "_links" nesnesi de bir özelliktir. | _links |
_embedded optional | Özellik adları, bağlantı ilişkisi türleri olan ve değerleri de Kaynak Nesnesi veya Kaynak Nesneleri dizisi olan bir nesne. Yerleşik Kaynaklar, hedef URI'den sunulan gösterimin tam, kısmi veya tutarsız bir sürümü olabilir. | _embedded |
errors optional | Bir istek başarısız olduğunda döndürülen hata yanıtlarının listesi. | ErrorList |
_links
Ad | Açıklama | Schema |
---|---|---|
self required | Hedefi, kaynağın URI'sı olan IANA kayıtlı "self" ilişkisine karşılık gelir. | LinkObject |
actions required | Belirtilen amazonOrderId için uygun işlemler. | < LinkObject > array |
Ad | Schema |
---|---|
actions required | < GetMessagingActionResponse > dizi |
Yanıt örneği
{
"_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"
},
]
}
}
-
Şema listesini, yanıtın
_embedded.actions
dizisine kaydedin. Her dizi öğesinin_embedded.schema
bölümünde, mevcut her mesaj türü için bir şema bulabilirsiniz. Satıcının 3. Adım. Satıcının seçtiği mesaj türünü alın bölümünde seçebileceği mevcut mesaj türlerinin bir listesini oluşturmak için her şemadatitle
değerini kullanın. Her mesaj türü için geçerli olan özel mesajlara ve eklere yönelik kısıtlamaların nasıl gösterileceğini ve uygulanacağını anlamak için şemaları kullanın. Daha fazla bilgi için bkz. 4. Adım: Satıcıdan özel mesaj metni alın (destekleniyorsa) ve 5. Adım: Satıcıdan ek alın (destekleniyorsa). -
Yolların listesini, yanıtın
_links.actions
dizisine kaydedin. Her dizi öğesindekihref
değeri, her mevcut mesaj türü için bir yol içerir. 9. Adım: Alıcıya mesaj gönderin bölümündeki uygun işlemi çağırırken bu yollardan birini kullanabilirsiniz.
3. Adım: Satıcının seçtiği mesaj türünü alın
-
Satıcının seçebileceği mevcut mesaj türlerinin listesini gösterin. Bunları 2. Adım: Kullanılabilir mesaj türlerinin listesini alın bölümünde kaydettiğiniz
title
değerlerinden alabilirsiniz. -
Satıcının göndermek istediği mesaj türünü seçip kaydetmesine izin verin. Bu seçim aşağıdakiler de dahil olmak üzere sonraki birkaç adımı etkiler:
-
4. Adım: Satıcıdan özel mesaj metni alın (destekleniyorsa): Mesaj türünün seçimi, özel bir mesajın desteklenip desteklenmeyeceğini belirler.
-
5. Adım: Satıcıdan ek alın (destekleniyorsa): Mesaj türü seçimi, eklerin desteklenip desteklenmeyeceğini belirler.
-
9. Adım: Alıcıya mesaj gönderin: Mesaj türü seçimi, 9. adımda çağıracağınız işlemi belirler. Örneğin, satıcı "Özelleştirme ayrıntılarını onayla" mesaj türünü seçerse 9. adımdaki
confirmCustomizationDetails
işlemini çağırırsınız.
-
4. Adım: Satıcıdan özel mesaj metni alın (destekleniyorsa)
Bazı mesaj türleri, satıcının alıcıya göndereceği e-postaya özel bir mesaj eklemesine olanak tanır. Bir mesaj türünün özel mesajları destekleyip desteklemediğini öğrenmek için Mesajlaşma API'si başvurusunu inceleyerek mesaj türüne karşılık gelen işlemi bulun. Örneğin, createConfirmServiceDetails
işlemi "Ev Hizmetileri müşterisiyle iletişime geçin" mesaj türüne karşılık gelir. İşlemde metin gövdesi parametresi varsa mesaj türü, özel mesajları destekler.
-
Satıcının 3. Adım: Satıcının seçtiği mesaj türünü alın aşamasında seçtiği mesaj türünün özel mesajları destekleyip desteklemediğini belirleyin. Özel mesajlar desteklenmiyorsa doğrudan 5. Adım: Satıcıdan ek alın (destekleniyorsa) bölümüne gidin. Özel mesajlar destekleniyorsa bu prosedüre devam edin.
-
Satıcının, özel mesajında istediği ham metni girmesine izin verin.
-
Satıcının girdiği mesaj metnindeki kısıtlamaları gösterin ve uygulayın. Metin kısıtlamalarını, satıcının mesaj türüne karşılık gelen
_embedded.actions
dizi öğesinin_embedded.schema.properties.rawMessageBody
bölümünde bulabilirsiniz. Bunu, 2. Adım: Kullanılabilir mesaj türlerinin listesini alın bölümündekigetMessagingActionsForOrder
işlemine verilen yanıtta bulabilirsiniz. -
Mesaj metnini kaydedin ve 9. Adım: Alıcıya mesaj gönderin bölümünde giriş olarak kullanın.
5. Adım: Satıcıdan ek alın (destekleniyorsa)
Bazı mesaj türleri, satıcının alıcıya göndereceği e-postaya ek bağlantısı eklemesine izin verir. Bir mesaj türünün ekleri destekleyip desteklemediğini öğrenmek için Mesajlaşma API'si başvurusunu gözden geçirerek mesaj türüne karşılık gelen işlemi bulun. Örneğin, createWarranty
işlemi "Garanti Bilgilerini Gönderin" mesaj türüne karşılık gelir. İşlemde bir ek gövdesi parametresi varsa mesaj türü, ekleri destekler.
-
Satıcının, 3. Adım: Satıcının seçtiği mesaj türünü alın bölümünde seçtiği mesaj türünün, ekleri destekleyip desteklemediğini belirleyin. Ekler desteklenmiyorsa doğrudan 9. Adım: Alıcıya mesaj gönderin bölümüne gidin. Ekler destekleniyorsa bu prosedüre devam edin.
-
Satıcının, uygulamanıza ek yüklemesine izin verin.
-
Satıcının yüklediği ekteki kısıtlamaları gösterin ve uygulayın. Ek kısıtlamalarını, satıcının mesaj türüne karşılık gelen
_embedded.actions
dizi öğesinin_embedded.schema.properties.attachments
bölümünde bulabilirsiniz. Bunu, 2. Adım: Kullanılabilir mesaj türlerinin listesini alın bölümündekigetMessagingActionsForOrder
işlemine verilen yanıtta bulabilirsiniz. -
Eki bir giriş akışına dönüştürün ve 8. Adım: Eki yükleyin bölümü için kaydedin.
-
Satıcının, dosya uzantısı da dahil olmak üzere ek için bir dosya adı girmesine izin verin.
-
Dosya adını kaydedip 9. Adım: Alıcıya mesaj gönderin için giriş olarak kullanın.
6. Adım: Content-MD5 karmasını hesaplayın
5. Adım: Satıcıdan ek alın (destekleniyorsa) bölümündeki ek için Content-MD5 karmasını hesaplayın. 7. Adım: Bir yükleme hedefi oluşturun bölümünde yükleme hedefi oluşturmak için buna ihtiyacınız olacaktır.
Bu adımdaki Java örnek kodu, Content-MD5 karmasını hesaplama mantığını içerir. Bu örnek kod, Apache HTTP istemcisini kullanır.
- Örnek kod için giriş olarak aşağıdakileri kullanın:
• 5. Adım. Satıcıdan ek alın (destekleniyorsa) bölümündeki ek giriş akışı, CreateMD5
sınıfına ait computeContentMD5Value
yönteminin fis
parametresindeki bağımsız değişkendir.
- 7. Adım: Bir yükleme hedefi oluşturun bölümünde
Content-MD5
parametresiyle iletilecekmd5Content
değerini kaydedin.
Örnek Java kodu
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;
}
}
7. Adım: Bir yükleme hedefi oluşturun
Ekiniz için Amazon S3 tarafından önceden imzalanmış URL biçiminde bir yükleme hedefi oluşturmak için Yüklemeler API'sinin createUploadDestination
işlemini çağırın. Tanımlar için bkz. Terminoloji.
- Aşağıdaki parametreleri ileterek Yüklemeler API'sinin
createUploadDestination
işlemini çağırın:
Sorgu parametreleri:
Type | Ad | Açıklama | Schema |
---|---|---|---|
Query | marketplaceIds required | Pazar yeri tanımlayıcılarının listesi. Bu, yüklemenin kullanılabileceği pazar yerlerini belirtir. Sadece bir pazar yeri belirlenebilir. Maksimum sayı : 1 | < dizi > sıra |
Query | İçerikMD5 required | Hesapladığınız Content-MD5 karması Adım 6. İçerik MD5 karması hesaplama. | string |
Path | kaynak required | Oluşturduğunuz yükleme hedefinin kaynağı. Örneğin, Mesajlaşma API'sinin createLegalDisclosure işlemi için bir yükleme hedefi oluşturuyorsanız, {resource} olurdu /messaging/v1/orders/{amazonOrderId}/messages/legalDisclosure ve tüm yol olurdu /uploads/2020-11-01/uploadDestinations/messaging/v1/orders/{amazonOrderId}/messages/legalDisclosure . Bir Aplus içerik belgesi için bir yükleme hedefi oluşturuyorsanız, {resource} olurdu aplus/2020-11-01/contentDocuments ve yol olurdu /uploads/v1/uploadDestinations/aplus/2020-11-01/contentDocuments . | string |
Query | İçerikTürü optional | Yüklenecek dosyanın içerik türü. | string |
İstek örneği
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
Yanıt
createUploadDestination
işlemiyle ilgili yanıt şeması.
Ad | Açıklama | Schema |
---|---|---|
payload optional | Yükleme hedefi hakkında bilgi. | UploadDestination |
errors optional | Bir istek başarısız olduğunda döndürülen hata yanıtlarının listesi. | ErrorList |
Yanıt örneği
{
"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=="
}
}
}
- Aşağıdaki değerleri kaydedin:
- url ve headers. Bu değerleri, 8. Adım: Eki yükleyin bölümünde kullanın.
uploadDestinationId
. Use this value in Step 9. Send a message to the buyer.
8. Adım: Eki yükleyin
Satıcının, 5. Adım: Satıcıdan ek alın (destekleniyorsa) bölümünde uygulamanıza yüklediği eki bir Amazon S3 klasörüne yükleyin.
Bu adımdaki Java örnek kodu, ek yükleme mantığını içerir. Bu örnek kod, Apache HTTP istemcisini kullanır.
Örnek koda girmek için aşağıdakileri kullanın:
-
UploadFileToDestination
sınıfındaURL(uploadDestinationPayload.getPayload().getUrl())
için bağımsız değişken olarak 7. Adım: Yükleme hedefi oluşturun bölümünde kaydettiğiniz url değerini kullanın. -
UploadFileToDestination
sınıfında(Map < String, String > )uploadDestinationPayload.getPayload().getHeaders()
için girdi olarak 7. Adım: Yükleme hedefi oluşturun bölümünde kaydettiğiniz başlıklar değerini kullanın. -
4. Adım: Satıcıdan özel mesaj metni alın (destekleniyorsa) bölümünde kaydettiğiniz ek girdi akışını kullanın. Bunu ayrıca
UploadFileToDestination
sınıfınınout.write()
yöntemi için girdi olarak kullanın.
Örnek Java kodu
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();
}
}
Ek, Amazon S3 klasörüne yüklenir.
9. Adım: Alıcıya mesaj gönderin
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.
- Şu parametreleri geçirerek Mesajlaşma API'sinin
confirmCustomizationDetails
işlemini çağırın:
Yol parametresi:
Parametre | Açıklama | Zorunlu mu? |
---|---|---|
amazonOrderId
|
Amazon siparişi tanımlayıcısı. Bu, hakkında mesaj gönderilecek siparişi belirtir. 1. Adım: Satıcının mesaj göndermek istediği siparişi alın bölümünde kaydettiğiniz Amazon siparişi tanımlayıcısını kullanın. Tür: dize |
Evet |
Sorgu Parametresi:
Parametre | Açıklama | Zorunlu mu? |
---|---|---|
marketplaceIds
|
Pazaryeri tanımlayıcısı. Siparişin verildiği pazaryerini belirtir. Yalnızca bir tane pazaryeri belirtebilirsiniz. Tür: dizi[dize] |
Evet |
Gövde Parametresi:
Parametre | Açıklama | Zorunlu mu? |
---|---|---|
text
|
Alıcıya gönderilen e-postaya dahil edilecek özel mesaj. 4. Adım: Satıcıdan özel mesaj metni alın (destekleniyorsa) bölümündeki mesaj metnini kullanın. Tür: dize |
Evet |
attachments
|
Alıcıya gönderilen mesaja dahil edilecek ekler
|
Evet |
İstek örneği
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"
}
]
}
Yanıt
Yanıt yoktur. Amazon, satıcının mesajını e-posta ile alıcıya gönderir.
2 ay önce güncellendi