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
(Objective-C) 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.
#import <CkoXml.h> #import <CkoStringBuilder.h> #import <CkoCrypt2.h> #import <NSString.h> #import <CkoRest.h> // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. BOOL success; // 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 CkoXml *xml = [[CkoXml alloc] init]; 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: YES 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. CkoStringBuilder *sbXml = [[CkoStringBuilder alloc] init]; xml.EmitCompact = YES; [xml GetXmlSb: sbXml]; // Get the MD5 hash.. CkoCrypt2 *crypt = [[CkoCrypt2 alloc] init]; crypt.HashAlgorithm = @"md5"; NSString *contentMd5Value = [crypt HashStringENC: [sbXml GetAsString]]; CkoRest *rest = [[CkoRest alloc] init]; // 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 // BOOL bTls = YES; int port = 443; BOOL bAutoReconnect = YES; success = [rest Connect: @"mws.amazonservices.com" port: [NSNumber numberWithInt: 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"]; NSString *responseXml = [rest FullRequestString: @"POST" uriPath: @"/Feeds/2009-01-01" bodyText: [sbXml GetAsString]]; if (rest.LastMethodSuccess != YES) { NSLog(@"%@",rest.LastErrorText); return; } if ([rest.ResponseStatusCode intValue] != 200) { // Examine the request/response to see what happened. NSLog(@"%@%d",@"response status code = ",[rest.ResponseStatusCode intValue]); NSLog(@"%@%@",@"response status text = ",rest.ResponseStatusText); NSLog(@"%@%@",@"response header: ",rest.ResponseHeader); NSLog(@"%@%@",@"response body: ",responseXml); NSLog(@"%@",@"---"); NSLog(@"%@%@",@"LastRequestStartLine: ",rest.LastRequestStartLine); NSLog(@"%@%@",@"LastRequestHeader: ",rest.LastRequestHeader); } // Examine the XML returned in the response body. NSLog(@"%@",responseXml); NSLog(@"%@",@"----"); NSLog(@"%@",@"Success."); |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.