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 2) 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.UpdateAttrAt("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.GetXmlSb(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.FullRequestString("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.