В настоящее время я пытаюсь разработать программу, которая будет использовать вызов submitfeed для MWS API.
Я использую библиотеку C # MarketplaceWebService, предоставляемую amazon, и пытаюсь отправить фид.
Я использую фид в этом API Amazon MWS: порядок стека _POST_PRODUCT_DATA_ , чтобы посмотреть, добавляет ли он какие-либо продукты, но завершается с ошибкой, что значение MD5 «Полученное содержимое» G85osovfRorZxCAeswQpBQ == не соответствует вычисленному значению+ nfzhPlusTqb / Cbo18vEiA == "
Я не уверен, что является причиной этого, и я попытался посмотреть на другие проекты github и не вижу большой разницы в кодировании.
Вот код
private void SyncProduct()
{
MarketplaceWebServiceConfig mwsconfig = new MarketplaceWebServiceConfig();
mwsconfig.ServiceURL = serviceurl;
MarketplaceWebServiceClient mwsclient = new MarketplaceWebServiceClient(AccessKeyId, SecretKeyId, ApplicationName, ApplicationVersion,mwsconfig);
//
//
//
SubmitFeedRequest request = new SubmitFeedRequest
{
Merchant = SellerId,
MarketplaceIdList = new IdList
{
Id = new List<string>(new string[] { MarketplaceId })
}
};
var fileName = "C://Windows//Temp//AmazonOrder.xml";
request.FeedContent = File.Open(fileName, FileMode.Open, FileAccess.Read);
request.ContentMD5 = MarketplaceWebServiceClient.CalculateContentMD5(request.FeedContent);
request.FeedContent.Position = 0;
request.FeedType = "_POST_PRODUCT_DATA_";
InvoiceSubmitFeed(mwsclient,request);
request.FeedContent.Close();
if (!String.IsNullOrEmpty(feedid))
{
GetFeedSubmissionResult(feedid);
}
}
private static void InvoiceSubmitFeed(MarketplaceWebServiceClient mwsclient,SubmitFeedRequest request)
{
try
{
SubmitFeedResponse response = mwsclient.SubmitFeed(request);
Console.WriteLine("Service Response");
Console.WriteLine("=============================================================================");
Console.WriteLine();
Console.WriteLine(" SubmitFeedResponse");
if (response.IsSetSubmitFeedResult())
{
Console.WriteLine(" SubmitFeedResult");
SubmitFeedResult submitFeedResult = response.SubmitFeedResult;
if (submitFeedResult.IsSetFeedSubmissionInfo())
{
Console.WriteLine(" FeedSubmissionInfo");
FeedSubmissionInfo feedSubmissionInfo = submitFeedResult.FeedSubmissionInfo;
if (feedSubmissionInfo.IsSetFeedSubmissionId())
{
Console.WriteLine(" FeedSubmissionId");
Console.WriteLine(" {0}", feedSubmissionInfo.FeedSubmissionId);
}
if (feedSubmissionInfo.IsSetFeedType())
{
Console.WriteLine(" FeedType");
Console.WriteLine(" {0}", feedSubmissionInfo.FeedType);
}
if (feedSubmissionInfo.IsSetSubmittedDate())
{
Console.WriteLine(" SubmittedDate");
Console.WriteLine(" {0}", feedSubmissionInfo.SubmittedDate);
}
if (feedSubmissionInfo.IsSetFeedProcessingStatus())
{
Console.WriteLine(" FeedProcessingStatus");
Console.WriteLine(" {0}", feedSubmissionInfo.FeedProcessingStatus);
}
if (feedSubmissionInfo.IsSetStartedProcessingDate())
{
Console.WriteLine(" StartedProcessingDate");
Console.WriteLine(" {0}", feedSubmissionInfo.StartedProcessingDate);
}
if (feedSubmissionInfo.IsSetCompletedProcessingDate())
{
Console.WriteLine(" CompletedProcessingDate");
Console.WriteLine(" {0}", feedSubmissionInfo.CompletedProcessingDate);
}
feedid = feedSubmissionInfo.FeedSubmissionId;
}
}
if (response.IsSetResponseMetadata())
{
Console.WriteLine(" ResponseMetadata");
ResponseMetadata responseMetadata = response.ResponseMetadata;
if (responseMetadata.IsSetRequestId())
{
Console.WriteLine(" RequestId");
Console.WriteLine(" {0}", responseMetadata.RequestId);
}
}
Console.WriteLine(" ResponseHeaderMetadata");
Console.WriteLine(" RequestId");
Console.WriteLine(" " + response.ResponseHeaderMetadata.RequestId);
Console.WriteLine(" ResponseContext");
Console.WriteLine(" " + response.ResponseHeaderMetadata.ResponseContext);
Console.WriteLine(" Timestamp");
Console.WriteLine(" " + response.ResponseHeaderMetadata.Timestamp);
}
catch (MarketplaceWebServiceException ex)
{
Console.WriteLine("Caught Exception: " + ex.Message);
Console.WriteLine("Response Status Code: " + ex.StatusCode);
Console.WriteLine("Error Code: " + ex.ErrorCode);
Console.WriteLine("Error Type: " + ex.ErrorType);
Console.WriteLine("Request ID: " + ex.RequestId);
Console.WriteLine("XML: " + ex.XML);
Console.WriteLine("ResponseHeaderMetadata: " + ex.ResponseHeaderMetadata);
}
}
public void GetFeedSubmissionResult(string reportid)
{
string strbuff = string.Empty;
MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig();
config.ServiceURL = serviceurl;
MarketplaceWebServiceClient client = new MarketplaceWebServiceClient(
AccessKeyId,
SecretKeyId,
ApplicationName,
ApplicationVersion,
config);
GetFeedSubmissionResultRequest request = new GetFeedSubmissionResultRequest();
request.FeedSubmissionId = reportid;
request.Merchant = SellerId;
//request.MWSAuthToken = MWSAuthToken;
request.FeedSubmissionResult = System.IO.File.Open(@"C:\Windows\Temp\SubmissionResult.xml", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite);
GetFeedSubmissionResultResponse response = client.GetFeedSubmissionResult(request);
if (response.IsSetGetFeedSubmissionResultResult())
{
strbuff = "Processing completed successfully.";
}
Console.WriteLine( strbuff);
}