Я прочитал много документации по Amazon API и до сих пор не ясно, какую ошибку я получаю, в документации нет полезных примеров.
Я использую это для обновления моего изобретения:
Я прочитал разные документы, в каждом из которых указан новый URL-адрес службы, и я действительно смущен этим ..
config.ServiceURL = "https://mws.amazonservices.co.uk/FulfillmentInventory/2011-10-01";
config.ServiceURL = "https://secure.amazon.co.uk/exec/panama/seller-admin/catalog-upload/modify-only";
Мой код для запуска процесса и отправки запроса:
String accessKeyId = "#";
String secretAccessKey = "#";
String merchantId = "#";
String marketplaceId = "#";
MemoryStream stream = new MemoryStream();
stream = GenerateInventoryDocument(txtxSku.Text, merchantId, txtQuantity.Text);
const string applicationName = "C#";
const string applicationVersion = "4";
MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig();
MarketplaceWebService.MarketplaceWebService service = new MarketplaceWebServiceClient(accessKeyId, secretAccessKey, applicationName, applicationVersion, config);
MarketplaceWebService.Model.SubmitFeedResponse response = new MarketplaceWebService.Model.SubmitFeedResponse();
MarketplaceWebService.Model.SubmitFeedRequest request = new MarketplaceWebService.Model.SubmitFeedRequest();
request.Merchant = merchantId;
request.MarketplaceIdList = new MarketplaceWebService.Model.IdList();
request.MarketplaceIdList.Id = new List<string>(new string[] { marketplaceId });
request.FeedContent = stream;
request.ContentMD5 = MarketplaceWebServiceClient.CalculateContentMD5(request.FeedContent);
request.FeedContent.Position = 0;
request.FeedType = "_POST_INVENTORY_AVAILABILITY_DATA_";
SubmitFeedSample.InvokeSubmitFeed(service, request);
Функция GenerateInventoryDocument()
:
MemoryStream myDocument = new MemoryStream();
string myString;
//Add the document header.
myString = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
this.AddStringToStream(ref myString, myDocument);
myString = "<AmazonEnvelope xsi:noNamespaceSchemaLocation=\"amzn-envelope.xsd\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">";
this.AddStringToStream(ref myString, myDocument);
myString = "<Header>";
this.AddStringToStream(ref myString, myDocument);
myString = "<DocumentVersion>1.01</DocumentVersion>";
this.AddStringToStream(ref myString, myDocument);
myString = "<MerchantIdentifier>" + merchantID + "</MerchantIdentifier>";
this.AddStringToStream(ref myString, myDocument);
myString = "</Header>";
this.AddStringToStream(ref myString, myDocument);
myString = "<MessageType>Inventory</MessageType>";
this.AddStringToStream(ref myString, myDocument);
myString = "<Message>";
this.AddStringToStream(ref myString, myDocument);
myString = "<MessageID>1</MessageID>";
this.AddStringToStream(ref myString, myDocument);
myString = "<OperationType>Update</OperationType>";
this.AddStringToStream(ref myString, myDocument);
myString = "<Inventory>";
this.AddStringToStream(ref myString, myDocument);
myString = "<SKU>" + sku + "</SKU>";
this.AddStringToStream(ref myString, myDocument);
myString = "<FulfillmentLatency>1</FulfillmentLatency>";
this.AddStringToStream(ref myString, myDocument);
myString = "<Quantity>" + quantity + "</Quantity>";
this.AddStringToStream(ref myString, myDocument);
myString = "</Inventory>";
this.AddStringToStream(ref myString, myDocument);
myString = "</Message>";
this.AddStringToStream(ref myString, myDocument);
myString = "</AmazonEnvelope>";
this.AddStringToStream(ref myString, myDocument);
return myDocument;
Когда я использую этот URL:
config.ServiceURL = "https://mws.amazonservices.co.uk/FulfillmentInventory/2011-10-01";
Я получаю следующее сообщение об ошибке:
<ErrorResponse xmlns="http://mws.amazonaws.com/FulfillmentInventory/2011-10-01/">
<Error>
<Type>Sender</Type>
<Code>NoSuchVersion</Code>
<Message>The requested version ( 2010-01-01 ) is not valid.</Message>
<Detail/>
</Error>
<RequestID>f35d1eb0-b8e7-40c0-8394-027619fb0762</RequestID>
</ErrorResponse>
И когда я использую этот сервисный URL, который я прочитал в другом документе:
config.ServiceURL = "https://secure.amazon.co.uk/exec/panama/seller-admin/catalog-upload/modify-only";
Я получаю следующее сообщение об ошибке:
<BusinessLogicError>CUSTOMER_UNAUTHORIZED</BusinessLogicError>
Пожалуйста, дайте мне знать, если что-то не так в этом коде, так как я полностью слежу за документами, и третий день я потратил на это. Может быть, я схожу с ума: D
Это небольшие проблемы, и я не могу их понять.