I'm using this code to order a product place in the cart. I'm trying to get the order ID of the order generated. I'm not too sure what is happening as the 'result' is the AnyHashable value and ID is the value I need. When the code is ran, it always prints nil?
Moltin.sharedInstance().cart.order(withParameters: orderParameters, success: { (responceDictionary) -> Void in
print(responceDictionary)
let orderID1 = responceDictionary!["result.id"] as? String
let orderID = orderID1
print(orderID)
I'm trying to parse this data:
Optional([AnyHashable("status"): 1, AnyHashable("result"): {
"bill_to" = {
data = {
"address_1" = "123 Sunny Street";
"address_2" = Sunnycreek;
city = Sunnyvale;
company = "";
country = {
data = {
code = US;
name = "United States";
};
value = "United States";
};
county = California;
"created_at" = "2017-04-22 19:34:48";
customer = {
data = {
"created_at" = "2017-04-22 19:34:48";
email = "jon.doe@gmail.com";
"first_name" = Jon;
group = "<null>";
id = 1498789797559271902;
"last_name" = Doe;
order = "<null>";
password = "<null>";
"updated_at" = "2017-04-22 19:34:48";
};
value = Jon;
};
"first_name" = Jon;
id = 1498789800293958111;
instructions = "";
"last_name" = Doe;
order = "<null>";
phone = 6507123124;
postcode = CA94040;
"save_as" = "";
"updated_at" = "2017-04-22 19:34:48";
};
value = "";
};
"created_at" = "2017-05-05 11:11:38";
currency = {
data = {
code = GBP;
"created_at" = "<null>";
"decimal_point" = ".";
default = 1;
enabled = 1;
"exchange_rate" = 0;
format = "\U00a3{price}";
id = 1490649105943233368;
modifier = "+0";
rounding = "<null>";
"thousand_point" = ",";
title = "British Pound";
"updated_at" = "<null>";
};
value = "British Pound";
};
customer = {
data = {
"created_at" = "2017-04-22 19:34:48";
email = "jon.doe@gmail.com";
"first_name" = Jon;
group = "<null>";
id = 1498789797559271902;
"last_name" = Doe;
order = "<null>";
password = "<null>";
"updated_at" = "2017-04-22 19:34:48";
};
value = Jon;
};
gateway = {
data = {
description = "<null>";
enabled = 1;
name = Dummy;
slug = dummy;
};
value = Dummy;
};
id = 1507958626625520537;
order = "<null>";
"ship_to" = {
data = {
"address_1" = "123 Sunny Street";
"address_2" = Sunnycreek;
city = Sunnyvale;
company = "";
country = {
data = {
code = US;
name = "United States";
};
value = "United States";
};
county = California;
"created_at" = "2017-04-22 19:34:48";
customer = {
data = {
"created_at" = "2017-04-22 19:34:48";
email = "jon.doe@gmail.com";
"first_name" = Jon;
group = "<null>";
id = 1498789797559271902;
"last_name" = Doe;
order = "<null>";
password = "<null>";
"updated_at" = "2017-04-22 19:34:48";
};
value = Jon;
};
"first_name" = Jon;
id = 1498789800293958111;
instructions = "";
"last_name" = Doe;
order = "<null>";
phone = 6507123124;
postcode = CA94040;
"save_as" = "";
"updated_at" = "2017-04-22 19:34:48";
};
value = "";
};
shipping = {
data = {
company = "Royal Mail";
"created_at" = "2017-04-20 16:14:00";
description = "";
id = 1497239180449678231;
order = "<null>";
price = {
data = {
formatted = {
tax = "\U00a30.80";
"with_tax" = "\U00a34.79";
"without_tax" = "\U00a33.99";
};
raw = {
tax = "0.798";
"with_tax" = "4.788";
"without_tax" = "3.99";
};
rounded = {
tax = "0.8";
"with_tax" = "4.79";
"without_tax" = "3.99";
};
};
value = "\U00a34.79";
};
"price_max" = 0;
"price_min" = 0;
slug = "free-shipping";
status = {
data = {
key = 1;
value = Live;
};
value = Live;
};
"tax_band" = {
data = {
"created_at" = "<null>";
description = "<null>";
id = 1490649106035507967;
rate = 20;
title = Default;
"updated_at" = "<null>";
};
value = Default;
};
title = "Standard Shipping";
"updated_at" = "2017-04-20 16:14:21";
"weight_max" = 0;
"weight_min" = 0;
};
value = "Standard Shipping";
};
status = {
data = {
key = unpaid;
value = Unpaid;
};
value = Unpaid;
};
totals = {
"shipping_price" = {
formatted = "\U00a34.79";
raw = "4.788";
rounded = "4.79";
};
subtotal = {
formatted = "\U00a32,900.00";
raw = 2900;
rounded = 2900;
};
tax = {
formatted = "\U00a3580.00";
raw = 580;
rounded = 580;
};
total = {
formatted = "\U00a33,484.79";
raw = "3484.79";
rounded = "3484.79";
};
};
"updated_at" = "2017-05-05 11:11:38";
You cannot pass a key path to a key subscription and id
is an Int:
if let resultDictionary = responceDictionary["result"] as? [String:Any],
let orderID = resultDictionary["id"] as? Int {
let orderIDString = "\(orderID)"
print(orderIDString)
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.