Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) MWS RequestReport (Amazon Marketplace Web Service)Creates a report request and submits the request to Amazon MWS. See Amazon MWS RequestReport for more information.
IncludeFile "CkRest.pb" IncludeFile "CkXml.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. rest.i = CkRest::ckCreate() If rest.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; 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.i = 1 port.i = 443 bAutoReconnect.i = 1 success.i = CkRest::ckConnect(rest,"mws.amazonservices.com",port,bTls,bAutoReconnect) If success <> 1 Debug "ConnectFailReason: " + Str(CkRest::ckConnectFailReason(rest)) Debug CkRest::ckLastErrorText(rest) CkRest::ckDispose(rest) ProcedureReturn EndIf CkRest::setCkHost(rest, "mws.amazonservices.com") CkRest::ckAddQueryParam(rest,"AWSAccessKeyId","0PB842EXAMPLE7N4ZTR2") CkRest::ckAddQueryParam(rest,"Action","RequestReport") CkRest::ckAddQueryParam(rest,"EndDate","2008-06-26T18:12:21") CkRest::ckAddQueryParam(rest,"MWSAuthToken","amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE") CkRest::ckAddQueryParam(rest,"Marketplace","ATVPDKIKX0DER") CkRest::ckAddQueryParam(rest,"ReportType","_GET_MERCHANT_LISTINGS_DATA_") CkRest::ckAddQueryParam(rest,"SellerId","A1XEXAMPLE5E6") CkRest::ckAddQueryParam(rest,"SignatureMethod","HmacSHA256") CkRest::ckAddQueryParam(rest,"SignatureVersion","2") CkRest::ckAddQueryParam(rest,"StartDate","2009-01-03T18:12:21") CkRest::ckAddQueryParam(rest,"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. CkRest::ckAddMwsSignature(rest,"POST","/Reports/2009-01-01","mws.amazonservices.com","MWS_SECRET_KEY") responseXml.s = CkRest::ckFullRequestFormUrlEncoded(rest,"POST","/Reports/2009-01-01") If CkRest::ckLastMethodSuccess(rest) <> 1 Debug CkRest::ckLastErrorText(rest) CkRest::ckDispose(rest) ProcedureReturn EndIf If CkRest::ckResponseStatusCode(rest) <> 200 ; Examine the request/response to see what happened. Debug "response status code = " + Str(CkRest::ckResponseStatusCode(rest)) Debug "response status text = " + CkRest::ckResponseStatusText(rest) Debug "response header: " + CkRest::ckResponseHeader(rest) Debug "response body: " + responseXml Debug "---" Debug "LastRequestStartLine: " + CkRest::ckLastRequestStartLine(rest) Debug "LastRequestHeader: " + CkRest::ckLastRequestHeader(rest) EndIf ; Examine the XML returned in the response body. Debug responseXml Debug "----" Debug "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.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::ckLoadXml(xml,responseXml) RequestReportResponse_xmlns.s = CkXml::ckGetAttrValue(xml,"xmlns") ReportRequestId.s = CkXml::ckGetChildContent(xml,"RequestReportResult|ReportRequestInfo|ReportRequestId") ReportType.s = CkXml::ckGetChildContent(xml,"RequestReportResult|ReportRequestInfo|ReportType") StartDate.s = CkXml::ckGetChildContent(xml,"RequestReportResult|ReportRequestInfo|StartDate") EndDate.s = CkXml::ckGetChildContent(xml,"RequestReportResult|ReportRequestInfo|EndDate") Scheduled.s = CkXml::ckGetChildContent(xml,"RequestReportResult|ReportRequestInfo|Scheduled") SubmittedDate.s = CkXml::ckGetChildContent(xml,"RequestReportResult|ReportRequestInfo|SubmittedDate") ReportProcessingStatus.s = CkXml::ckGetChildContent(xml,"RequestReportResult|ReportRequestInfo|ReportProcessingStatus") RequestId.s = CkXml::ckGetChildContent(xml,"ResponseMetadata|RequestId") CkRest::ckDispose(rest) CkXml::ckDispose(xml) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.