Sample code for 30+ languages & platforms
Rust

MWS List Orders (Amazon Marketplace Web Service)

See more Amazon MWS Examples

Send an MWS ListOrders request to return a list of orders created or updated during a time frame.

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 Rust Downloads

Rust

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

let rest = chilkat::Rest::new();

// ------------------------------------------------------------
// About using Chilkat with Amazon Marketplace SP-API
// ------------------------------------------------------------

// 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 
// 
let b_tls = true;
let port = 443;
let b_auto_reconnect = true;
let _ = rest.connect("mws.amazonservices.com", port, b_tls, b_auto_reconnect).is_ok();

rest.set_host("mws.amazonservices.com");

// Add query params
let _ = rest.add_query_param("Action", "ListOrders");
let _ = rest.add_query_param("CreatedAfter", "2016-12-31T23:00:00Z");
let _ = rest.add_query_param("MarketplaceId.Id.1", "MWS_MARKETPLACE_ID");
let _ = rest.add_query_param("SellerId", "MWS_SELLER_ID");
let _ = rest.add_query_param("AWSAccessKeyId", "MWS_ACCESS_KEY_ID");
let _ = rest.add_query_param("SignatureVersion", "2");
let _ = rest.add_query_param("SignatureMethod", "HmacSHA256");
let _ = rest.add_query_param("Version", "2013-09-01");

// Add the MWS Signature param.  (Also adds the Timestamp parameter using the curent system date/time.)
let _ = rest.add_mws_signature("POST", "/Orders/2013-09-01", "mws.amazonservices.com", "MWS_SECRET_ACCESS_KEY_ID");

let Ok(response_xml) = rest.full_request_form_url_encoded("POST", "/Orders/2013-09-01") else {
    println!("{}", rest.last_error_text());
    return;
};

if rest.response_status_code() != 200 {
    // Examine the request/response to see what happened.
    println!("response status code = {}", rest.response_status_code());
    println!("response status text = {}", rest.response_status_text());
    println!("response header: {}", rest.response_header());
    println!("response body: {}", response_xml);
    println!("---");
    println!("LastRequestStartLine: {}", rest.last_request_start_line());
    println!("LastRequestHeader: {}", rest.last_request_header());
}

// Examine the XML returned in the response body.
println!("{}", response_xml);
println!("----");
println!("Success.");