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
(Swift 3,4,5...) MWS SubmitFeed (Amazon Marketplace Web Service)Uploads a feed for processing by Amazon MWS. See Amazon MWS SubmitFeed for the Amazon MWS SubmitFeed reference documentation. Important: The Chilkat v9.5.0.75 release accidentally breaks Amazon MWS (not AWS) authentication. If you need MWS with 9.5.0.75, send email to support@chilkatsoft.com for a hotfix, or revert back to v9.5.0.73, or update to a version after 9.5.0.75.
func chilkatTest() { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. var success: Bool // This example will send an XML file in the HTTP request body. // First we'll construct the XML, then we'll compute the MD5 digest which needs to be added as a query param.. // Construct the following XML. (This is just a sample XML body..) // <AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" // xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"> // <Header> // <DocumentVersion>1.01</DocumentVersion> // <MerchantIdentifier>M_EXAMPLE_123456</MerchantIdentifier> // </Header> // <MessageType>Product</MessageType> // <PurgeAndReplace>false</PurgeAndReplace> // <Message> // <MessageID>1</MessageID> // <OperationType>Update</OperationType> // <Product> // <SKU>56789</SKU> // <StandardProductID> // <Type>ASIN</Type> // <Value>B0EXAMPLEG</Value> // </StandardProductID> // <ProductTaxCode>A_GEN_NOTAX</ProductTaxCode> // <DescriptionData> // <Title>Example Product Title</Title> // <Brand>Example Product Brand</Brand> // <Description>This is an example product description.</Description> // <BulletPoint>Example Bullet Point 1</BulletPoint> // <BulletPoint>Example Bullet Point 2</BulletPoint> // <MSRP currency="USD">25.19</MSRP> // <Manufacturer>Example Product Manufacturer</Manufacturer> // <ItemType>example-item-type</ItemType> // </DescriptionData> // <ProductData> // <Health> // <ProductType> // <HealthMisc> // <Ingredients>Example Ingredients</Ingredients> // <Directions>Example Directions</Directions> // </HealthMisc> // </ProductType> // </Health> // </ProductData> // </Product> // </Message> // </AmazonEnvelope> // This code was generated by pasting the above XML into the online tool at http://tools.chilkat.io/xmlCreate.cshtml let xml = CkoXml()! xml.tag = "AmazonEnvelope" xml.addAttribute("xmlns:xsi", value: "http://www.w3.org/2001/XMLSchema-instance") xml.addAttribute("xsi:noNamespaceSchemaLocation", value: "amzn-envelope.xsd") xml.updateChildContent("Header|DocumentVersion", value: "1.01") xml.updateChildContent("Header|MerchantIdentifier", value: "M_EXAMPLE_123456") xml.updateChildContent("MessageType", value: "Product") xml.updateChildContent("PurgeAndReplace", value: "false") xml.updateChildContent("Message|MessageID", value: "1") xml.updateChildContent("Message|OperationType", value: "Update") xml.updateChildContent("Message|Product|SKU", value: "56789") xml.updateChildContent("Message|Product|StandardProductID|Type", value: "ASIN") xml.updateChildContent("Message|Product|StandardProductID|Value", value: "B0EXAMPLEG") xml.updateChildContent("Message|Product|ProductTaxCode", value: "A_GEN_NOTAX") xml.updateChildContent("Message|Product|DescriptionData|Title", value: "Example Product Title") xml.updateChildContent("Message|Product|DescriptionData|Brand", value: "Example Product Brand") xml.updateChildContent("Message|Product|DescriptionData|Description", value: "This is an example product description.") xml.updateChildContent("Message|Product|DescriptionData|BulletPoint", value: "Example Bullet Point 1") xml.updateChildContent("Message|Product|DescriptionData|BulletPoint[1]", value: "Example Bullet Point 2") xml.updateAttr(at: "Message|Product|DescriptionData|MSRP", autoCreate: true, attrName: "currency", attrValue: "USD") xml.updateChildContent("Message|Product|DescriptionData|MSRP", value: "25.19") xml.updateChildContent("Message|Product|DescriptionData|Manufacturer", value: "Example Product Manufacturer") xml.updateChildContent("Message|Product|DescriptionData|ItemType", value: "example-item-type") xml.updateChildContent("Message|Product|ProductData|Health|ProductType|HealthMisc|Ingredients", value: "Example Ingredients") xml.updateChildContent("Message|Product|ProductData|Health|ProductType|HealthMisc|Directions", value: "Example Directions") // Get the XML in the most compact form for the feed submission. let sbXml = CkoStringBuilder()! xml.emitCompact = true xml.getSb(sbXml) // Get the MD5 hash.. let crypt = CkoCrypt2()! crypt.hashAlgorithm = "md5" var contentMd5Value: String? = crypt.hashStringENC(sbXml.getAsString()) let rest = CkoRest()! // Connect to the Amazon MWS REST server. // // Make sure to connect to the correct Amazon MWS Endpoing, 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 // var bTls: Bool = true var port: Int = 443 var bAutoReconnect: Bool = true success = rest.connect("mws.amazonservices.com", port: port, tls: bTls, autoReconnect: bAutoReconnect) rest.host = "mws.amazonservices.com" rest.addQueryParam("AWSAccessKeyId", value: "0PB842ExampleN4ZTR2") rest.addQueryParam("Action", value: "SubmitFeed") rest.addQueryParam("FeedType", value: "_POST_PRODUCT_DATA_") rest.addQueryParam("MWSAuthToken", value: "amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE") rest.addQueryParam("MarketplaceId.Id.1", value: "ATVExampleDER") rest.addQueryParam("SellerId", value: "A1XExample5E6") rest.addQueryParam("ContentMD5Value", value: contentMd5Value) rest.addQueryParam("SignatureMethod", value: "HmacSHA256") rest.addQueryParam("SignatureVersion", value: "2") rest.addQueryParam("Version", value: "2009-01-01") // Add the MWS Signature param. (Also adds the Timestamp parameter using the curent system date/time.) rest.addMwsSignature("POST", uriPath: "/Feeds/2009-01-01", domain: "mws.amazonservices.com", mwsSecretKey: "MWS_SECRET_ACCESS_KEY_ID") rest.addHeader("Content-Type", value: "text/xml") var responseXml: String? = rest.fullRequest("POST", uriPath: "/Feeds/2009-01-01", bodyText: sbXml.getAsString()) if rest.lastMethodSuccess != true { print("\(rest.lastErrorText!)") return } if rest.responseStatusCode.intValue != 200 { // Examine the request/response to see what happened. print("response status code = \(rest.responseStatusCode.intValue)") print("response status text = \(rest.responseStatusText!)") print("response header: \(rest.responseHeader!)") print("response body: \(responseXml!)") print("---") print("LastRequestStartLine: \(rest.lastRequestStartLine!)") print("LastRequestHeader: \(rest.lastRequestHeader!)") } // Examine the XML returned in the response body. print("\(responseXml!)") print("----") print("Success.") } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.