Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicCkPythonChilkat2-PythonRubySQL ServerSwift 2Swift 3/4TclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcelGo

Swift 2 Web API Examples

Primary Categories

AWS Translate
Activix CRM
Adyen
Amazon MWS
Azure Maps
Azure Monitor
Azure OAuth2
Azure Storage Accounts
Bluzone
CardConnect
ClickBank
Clickatell
Cloudfare
DocuSign
ETrade
Etsy
Facebook
GeoOp
GetHarvest
Jira
MYOB

Magento
Microsoft Calendar
Microsoft Group
Microsoft Tasks and Plans
Okta OAuth/OIDC
OneLogin OIDC
PayPal
Peoplevox
Populi
QuickBooks
SOAP finkok.com
Shippo
Shopify
Stripe
SugarCRM
Trello
Twitter
VoiceBase
Vonage
Walmart
Walmart v3
Xero
eBay
effectconnect

 

 

 

(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.

Chilkat Downloads for the Swift Programming Language

MAC OS X (Cocoa) Objective-C/Swift Libs

iOS Objective-C/Swift Libs

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 MD5 hash..
    let crypt = CkoCrypt2()
    crypt.HashAlgorithm = "md5"
    var contentMd5Value: String? = crypt.HashStringENC(xml.GetXml())

    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: xml.GetXml())
    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-2019 Chilkat Software, Inc. All Rights Reserved.