using System.Collections.Generic; using TapTap.Common; namespace TapTap.Payment { public class SkuDetails { public string goodsOpenId; public int goodsType; public GoodsConfig goodsConfig; public GoodsPrice goodsPrice; public SkuDetails(string json) { var dic = Json.Deserialize(json) as Dictionary; goodsOpenId = SafeDictionary.GetValue(dic, "goodsOpenId"); goodsType = SafeDictionary.GetValue(dic, "goodsType"); if (SafeDictionary.GetValue>(dic, "goodsConfig") is Dictionary goodsConfigDic) { goodsConfig = new GoodsConfig(goodsConfigDic); } if (SafeDictionary.GetValue>(dic, "goodsPrice") is Dictionary goodsPriceDic) { goodsPrice = new GoodsPrice(goodsPriceDic); } } public SkuDetails(Dictionary dic) { goodsOpenId = SafeDictionary.GetValue(dic, "goodsOpenId"); goodsType = SafeDictionary.GetValue(dic, "goodsType"); if (SafeDictionary.GetValue>(dic, "goodsConfig") is Dictionary goodsConfigDic) { goodsConfig = new GoodsConfig(goodsConfigDic); } if (SafeDictionary.GetValue>(dic, "goodsPrice") is Dictionary goodsPriceDic) { goodsPrice = new GoodsPrice(goodsPriceDic); } } public string ToJson() { var dic = new Dictionary { ["goodsOpenId"] = goodsOpenId, ["goodsType"] = goodsType, ["goodsConfig"] = goodsConfig?.ToDic(), ["goodsPrice"] = goodsPrice?.ToDic() }; return Json.Serialize(dic); } } public class GoodsConfig { public string languageId; public string goodsName; public string goodsDescription; public GoodsConfig(Dictionary dic) { languageId = SafeDictionary.GetValue(dic, "languageId"); goodsName = SafeDictionary.GetValue(dic, "goodsName"); goodsDescription = SafeDictionary.GetValue(dic, "goodsDescription"); } public GoodsConfig(string json) { var dic = Json.Deserialize(json) as Dictionary; languageId = SafeDictionary.GetValue(dic, "languageId"); goodsName = SafeDictionary.GetValue(dic, "goodsName"); goodsDescription = SafeDictionary.GetValue(dic, "goodsDescription"); } public Dictionary ToDic() { return new Dictionary { ["languageId"] = languageId, ["goodsName"] = goodsName, ["goodsDescription"] = goodsDescription }; } } public class GoodsPrice { public string regionId; public string goodsPriceAmount; public string goodsPriceCurrency; public GoodsPrice(Dictionary dic) { regionId = SafeDictionary.GetValue(dic, "regionId"); goodsPriceAmount = SafeDictionary.GetValue(dic, "goodsPriceAmount"); goodsPriceCurrency = SafeDictionary.GetValue(dic, "goodsPriceCurrency"); } public GoodsPrice(string json) { var dic = Json.Deserialize(json) as Dictionary; regionId = SafeDictionary.GetValue(dic, "regionId"); goodsPriceAmount = SafeDictionary.GetValue(dic, "goodsPriceAmount"); goodsPriceCurrency = SafeDictionary.GetValue(dic, "goodsPriceCurrency"); } public Dictionary ToDic() { return new Dictionary { ["regionId"] = regionId, ["goodsPriceAmount"] = goodsPriceAmount, ["goodsPriceCurrency"] = goodsPriceCurrency }; } } }