Delphi ActiveX
Delphi ActiveX
MWS RequestReport (Amazon Marketplace Web Service)
See more Amazon MWS Examples
Creates a report request and submits the request to Amazon MWS.See Amazon MWS RequestReport for more information.
Chilkat Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
rest: TChilkatRest;
bTls: Integer;
port: Integer;
bAutoReconnect: Integer;
responseXml: WideString;
xml: TChilkatXml;
RequestReportResponse_xmlns: WideString;
ReportRequestId: WideString;
ReportType: WideString;
StartDate: WideString;
EndDate: WideString;
Scheduled: WideString;
SubmittedDate: WideString;
ReportProcessingStatus: WideString;
RequestId: WideString;
begin
success := 0;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
rest := TChilkatRest.Create(Self);
// Connect to the Amazon MWS REST server.
//
// Make sure to connect to the correct Amazon MWS Endpoint, otherwise
// you'll get an HTTP 401 response code.
//
// The possible servers are:
//
// North America (NA) https://mws.amazonservices.com
// Europe (EU) https://mws-eu.amazonservices.com
// India (IN) https://mws.amazonservices.in
// China (CN) https://mws.amazonservices.com.cn
// Japan (JP) https://mws.amazonservices.jp
//
bTls := 1;
port := 443;
bAutoReconnect := 1;
success := rest.Connect('mws.amazonservices.com',port,bTls,bAutoReconnect);
if (success <> 1) then
begin
Memo1.Lines.Add('ConnectFailReason: ' + IntToStr(rest.ConnectFailReason));
Memo1.Lines.Add(rest.LastErrorText);
Exit;
end;
rest.Host := 'mws.amazonservices.com';
rest.AddQueryParam('AWSAccessKeyId','0PB842EXAMPLE7N4ZTR2');
rest.AddQueryParam('Action','RequestReport');
rest.AddQueryParam('EndDate','2008-06-26T18:12:21');
rest.AddQueryParam('MWSAuthToken','amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE');
rest.AddQueryParam('Marketplace','ATVPDKIKX0DER');
rest.AddQueryParam('ReportType','_GET_MERCHANT_LISTINGS_DATA_');
rest.AddQueryParam('SellerId','A1XEXAMPLE5E6');
rest.AddQueryParam('SignatureMethod','HmacSHA256');
rest.AddQueryParam('SignatureVersion','2');
rest.AddQueryParam('StartDate','2009-01-03T18:12:21');
rest.AddQueryParam('Version','2009-01-01');
// Add the MWS Signature param. (Also adds the Timestamp parameter using the curent system date/time.)
// The AddMwsSignature method adds the Timestamp and Signature query params.
rest.AddMwsSignature('POST','/Reports/2009-01-01','mws.amazonservices.com','MWS_SECRET_KEY');
responseXml := rest.FullRequestFormUrlEncoded('POST','/Reports/2009-01-01');
if (rest.LastMethodSuccess <> 1) then
begin
Memo1.Lines.Add(rest.LastErrorText);
Exit;
end;
if (rest.ResponseStatusCode <> 200) then
begin
// Examine the request/response to see what happened.
Memo1.Lines.Add('response status code = ' + IntToStr(rest.ResponseStatusCode));
Memo1.Lines.Add('response status text = ' + rest.ResponseStatusText);
Memo1.Lines.Add('response header: ' + rest.ResponseHeader);
Memo1.Lines.Add('response body: ' + responseXml);
Memo1.Lines.Add('---');
Memo1.Lines.Add('LastRequestStartLine: ' + rest.LastRequestStartLine);
Memo1.Lines.Add('LastRequestHeader: ' + rest.LastRequestHeader);
end;
// Examine the XML returned in the response body.
Memo1.Lines.Add(responseXml);
Memo1.Lines.Add('----');
Memo1.Lines.Add('Success.');
// Sample Response
// Use this online tool to generate parsing code from sample XML:
// Generate Parsing Code from XML
// <?xml version="1.0"?>
// <RequestReportResponse
// xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
// <RequestReportResult>
// <ReportRequestInfo>
// <ReportRequestId>2291326454</ReportRequestId>
// <ReportType>_GET_MERCHANT_LISTINGS_DATA_</ReportType>
// <StartDate>2009-01-21T02:10:39+00:00</StartDate>
// <EndDate>2009-02-13T02:10:39+00:00</EndDate>
// <Scheduled>false</Scheduled>
// <SubmittedDate>2009-02-20T02:10:39+00:00</SubmittedDate>
// <ReportProcessingStatus>_SUBMITTED_</ReportProcessingStatus>
// </ReportRequestInfo>
// </RequestReportResult>
// <ResponseMetadata>
// <RequestId>88faca76-b600-46d2-b53c-0c8c4533e43a</RequestId>
// </ResponseMetadata>
// </RequestReportResponse>
xml := TChilkatXml.Create(Self);
xml.LoadXml(responseXml);
RequestReportResponse_xmlns := xml.GetAttrValue('xmlns');
ReportRequestId := xml.GetChildContent('RequestReportResult|ReportRequestInfo|ReportRequestId');
ReportType := xml.GetChildContent('RequestReportResult|ReportRequestInfo|ReportType');
StartDate := xml.GetChildContent('RequestReportResult|ReportRequestInfo|StartDate');
EndDate := xml.GetChildContent('RequestReportResult|ReportRequestInfo|EndDate');
Scheduled := xml.GetChildContent('RequestReportResult|ReportRequestInfo|Scheduled');
SubmittedDate := xml.GetChildContent('RequestReportResult|ReportRequestInfo|SubmittedDate');
ReportProcessingStatus := xml.GetChildContent('RequestReportResult|ReportRequestInfo|ReportProcessingStatus');
RequestId := xml.GetChildContent('ResponseMetadata|RequestId');
end;