1 #region 获取商品SKU 2 /// <summary> 3 /// 获取获取访问令牌(授权→获取商品信息→获取SKU) 4 /// </summary> 5 private void GetToken() 6 { 7 try 8 { 9 string token = ""; 10 string code = Request.QueryString["code"]; 11 if (string.IsNullOrEmpty(code)) 12 { 13 string code_url = string.Format("https://oauth.taobao.com/authorize?response_type=code&client_id={0}&redirect_uri={1}&state=1212&view=web", TaoBaoConfig.client_id, TaoBaoConfig.redirect_uri); 14 Response.Redirect(code_url, false); 15 } 16 else 17 { 18 #region 获取Token 19 string url = "https://oauth.taobao.com/token"; 20 Dictionary<string, string> props = new Dictionary<string, string>(); 21 props.Add("grant_type", "authorization_code"); 22 props.Add("code", code); 23 props.Add("client_id", TaoBaoConfig.client_id); 24 props.Add("client_secret", TaoBaoConfig.AppSecret); 25 props.Add("redirect_uri", TaoBaoConfig.redirect_uri); 26 props.Add("view", "web"); 27 string res = ""; 28 WebUtils webUtils = new WebUtils(); 29 res = webUtils.DoPost(url, props, "GB2312"); 30 var toJson = JObject.Parse(res); 31 token = toJson["access_token"].ToString(); //获取Token 32 #endregion 33 34 #region 第一步:获取商品列表 35 //获取商品出售中列表 36 if (GetShangPinChuShouList(token) == 0) 37 { 38 MengCeng.Visible = false; 39 DNTRequest.RaiseTip(this.Page, "获取商品信息失败! 请联系技术!!!"); 40 return; 41 } 42 //获取商品库存列表 43 if (GetShangPinList(token) == 0) 44 { 45 MengCeng.Visible = false; 46 DNTRequest.RaiseTip(this.Page, "获取商品信息失败! 请联系技术!!!"); 47 return; 48 } 49 50 51 52 #region 没有签名的情况下获取信息 53 //获取出售中数据 54 //ItemsOnsaleGetRequest req = new ItemsOnsaleGetRequest(); 55 //req.Fields = "approve_status,num_iid,title,nick,type,cid,pic_url,num,props,valid_thru,list_time,price,has_discount,has_invoice,has_warranty,has_showcase,modified,delist_time,postage_id,seller_cids,outer_id,sold_quantity "; 56 //req.PageSize = 200;//每页条数 57 //req.OrderBy = "modified";//根据最近修改时间排序 58 //string s = TaoBaoCommon.GetShopList(req, "https://eco.taobao.com/router/rest?", token); 59 //DNTRequest.RaiseTip(this.Page, s.ToString()); 60 61 //库存 62 //ItemsInventoryGetRequest req = new ItemsInventoryGetRequest(); 63 //req.Fields = "approve_status,num_iid,title,nick,type,cid,pic_url,num,props,valid_thru, list_time,price,has_discount,has_invoice,has_warranty,has_showcase, modified,delist_time,postage_id,seller_cids,outer_id"; 64 //req.OrderBy = "list_time:desc"; 65 //req.PageSize = 200; 66 //req.StartModified = DateTime.Parse("2000-01-01 00:00:00"); 67 //string s = TaoBaoCommon.GetShopKuCunList(req, "https://eco.taobao.com/router/rest?", token); 68 69 70 71 //获取SKU 72 //ItemSkusGetRequest reqSKU = new ItemSkusGetRequest(); 73 //reqSKU.Fields = "sku_id,num_iid,properties,quantity,price,created,modified,status,properties_name,sku_spec_id,outer_id,barcode"; 74 //reqSKU.NumIids = "585826766683"; 75 //string sku = TaoBaoCommon.GetSKU(reqSKU, "https://eco.taobao.com/router/rest?", token); 76 #endregion 77 78 #endregion 79 80 #region 第二步:根据商品ID获取SKU 81 Dictionary<int[], object> WhereFilter = new Dictionary<int[], object>(); 82 BLLLogicLinkLearnHelper.taobaotommodityLogic.EnumToDictionary(WhereFilter, taobaotommodityInfo.Fields.TableId, MySqlOperationEnum.Morethan, 0); 83 DataSet Dt = BLLLogicLinkLearnHelper.taobaotommodityLogic.GetByQuery(WhereFilter, null); 84 foreach (DataRow dr in Dt.Tables[0].Rows) 85 { 86 GteSP(token, dr["Num_iid"].ToString()); 87 //获取商品SKU信息 88 if (GetSKU(token, dr["Num_iid"].ToString()) == 0) 89 { 90 MengCeng.Visible = false; 91 DNTRequest.RaiseTip(this.Page, "商品ID:" + dr["Num_iid"].ToString() + ";获取SKU信息失败!"); 92 return; 93 } 94 } 95 MengCeng.Visible = false; 96 DNTRequest.RaiseTip(this.Page, "获取成功!"); 97 return; 98 #endregion 99 100 } 101 } 102 catch (Exception ex) 103 { 104 BLLLogicHelper.ServerLogLogic.Insert(new ServerLogInfo() 105 { 106 DateTime = DateTime.Now, 107 LogType = 74584953, 108 Message = ex.ToString() 109 }); 110 MengCeng.Visible = false; 111 DNTRequest.RaiseTip(this.Page, "获取信息失败!"); 112 return; 113 } 114 } 115 116 protected void GteSP(string token, string Num_IID) 117 { 118 try 119 { 120 IDictionary<string, string> openWith = new Dictionary<string, string>(); 121 openWith.Add("method", "taobao.item.seller.get"); //接口名字 122 openWith.Add("app_key", TaoBaoConfig.client_id); //APPId 123 openWith.Add("session", token); //授权码 124 openWith.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //时间戳 125 openWith.Add("format", "json"); //数据格式 126 openWith.Add("v", "2.0"); //版本号 127 openWith.Add("sign_method", "md5");//加密类型 128 openWith.Add("fields", "num_iid,title,nick,type,cid,pic_url,skus"); //需要返回的字段 129 openWith.Add("num_iid", "588813735361");//商品ID 130 openWith.Add("sign", TaoBaoCommon.SignTopRequest(openWith, TaoBaoConfig.AppSecret, "md5")); //获取签名 131 //生成Url 132 string url = "https://eco.taobao.com/router/rest?"; //正式站 HTTPS地址 133 StringBuilder query = new StringBuilder(); 134 foreach (KeyValuePair<string, string> item in openWith) 135 { 136 query.Append(item.Key + "=" + System.Web.HttpUtility.UrlEncode(item.Value, System.Text.Encoding.UTF8) + "&"); 137 } 138 url += query.ToString().TrimEnd(new char[] { '&' }); 139 string strJson = JObject.Parse(TaoBaoCommon.GetInfo(url)).ToString(); //获取URL返回的值 140 ListBox1.Text = TaoBaoCommon.Parse<RootKuCun>(strJson).ToString(); 141 } 142 catch (Exception ex) 143 { 144 BLLLogicHelper.ServerLogLogic.Insert(new ServerLogInfo() 145 { 146 DateTime = DateTime.Now, 147 LogType = 74584953, 148 Message = ex.ToString() 149 }); 150 } 151 } 152 153 /// <summary> 154 /// 获取商品出售中列表 155 /// </summary> 156 /// <param name="token"></param> 157 protected int GetShangPinChuShouList(string token) 158 { 159 try 160 { 161 IDictionary<string, string> openWith = new Dictionary<string, string>(); 162 openWith.Add("method", "taobao.items.onsale.get"); //接口名字 163 openWith.Add("app_key", TaoBaoConfig.client_id); //APPId 164 openWith.Add("session", token); //授权码 165 openWith.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //时间戳 166 openWith.Add("format", "json"); //数据格式 167 openWith.Add("v", "2.0"); //版本号 168 openWith.Add("sign_method", "md5");//加密类型 169 openWith.Add("fields", "iid,num_iid,title,nick,type,cid,pic_url,num,props,valid_thru, list_time,price,has_discount,has_invoice,has_warranty,has_showcase, modified,delist_time,postage_id,approve_status,seller_cids,outer_id,is_virtual,is_taobao,is_ex"); //需要返回的字段 170 openWith.Add("order_by", "modified");//根据最近修改时间排序 171 openWith.Add("page_size", "200");//每页条数 172 openWith.Add("sign", TaoBaoCommon.SignTopRequest(openWith, TaoBaoConfig.AppSecret, "md5")); //获取签名 173 //生成Url 174 string url = "https://eco.taobao.com/router/rest?"; //正式站 HTTPS地址 175 StringBuilder query = new StringBuilder(); 176 foreach (KeyValuePair<string, string> item in openWith) 177 { 178 query.Append(item.Key + "=" + System.Web.HttpUtility.UrlEncode(item.Value, System.Text.Encoding.UTF8) + "&"); 179 } 180 url += query.ToString().TrimEnd(new char[] { '&' }); 181 var strJson = JObject.Parse(TaoBaoCommon.GetInfo(url)).ToString(); //获取URL返回的值 182 var data = TaoBaoCommon.Parse<RootKuCun>(strJson); //反序列化 183 if (data.items_onsale_get_response.items.item != null) 184 { 185 foreach (ItemItemKuCun item in data.items_onsale_get_response.items.item) 186 { 187 taobaotommodityInfo Info = new taobaotommodityInfo(); 188 Info.Num_iid = item.num_iid; 189 Info.Title = item.title; 190 Info.Nick = item.nick; 191 Info.Types = item.type == "fixed" ? 0 : 1; 192 Info.CIds = item.cid; 193 Info.Seller_Cids = item.seller_cids; 194 Info.Props = item.props; 195 Info.Pic_Url = item.pic_url; 196 Info.Num = item.num; 197 Info.Valid_Thru = item.valid_thru; 198 Info.List_Time = item.list_time; 199 Info.Delist_Time = item.delist_time; 200 Info.Price = item.price; 201 Info.Has_Discount = Convert.ToInt32(item.has_discount); 202 Info.Has_Invoice = Convert.ToInt32(item.has_invoice); 203 Info.Has_Warranty = Convert.ToInt32(item.has_warranty); 204 Info.Has_Showcase = Convert.ToInt32(item.has_showcase); 205 Info.Modified = item.modified; 206 Info.Approve_Status = item.approve_status == "onsale" ? 0 : 1; //0 onsale出售 1 instock库中 207 Info.Postage_Id = item.postage_id; 208 Info.Outer_Id = item.outer_id; 209 Info.Is_Virtual = Convert.ToInt32(item.is_virtual); 210 Info.Is_Taobao = Convert.ToInt32(item.is_taobao); 211 Info.Is_Cspu = 0;//默认0 212 Info.Is_Ex = Convert.ToInt32(item.is_ex); //是否在外部网店显示 默认0 213 Info.UpdateTime = DateTime.Now; 214 Info.CreateTime = DateTime.Now; 215 Info.CreateUserGroupId = 1; //这个需要填写 HouTaiForumHelper.UserGroupId 216 taobaotommodityInfo Model = BLLLogicLinkLearnHelper.taobaotommodityLogic.Get(taobaotommodityInfo.Fields.Num_iid, Info.Num_iid); 217 if (Model.TableId == 0) //根据商品ID查询 218 { 219 BLLLogicLinkLearnHelper.taobaotommodityLogic.Insert(Info); 220 } 221 else 222 { 223 Info.TableId = Model.TableId; 224 BLLLogicLinkLearnHelper.taobaotommodityLogic.Update(Info); 225 } 226 } 227 } 228 return 1; 229 } 230 catch (Exception ex) 231 { 232 BLLLogicHelper.ServerLogLogic.Insert(new ServerLogInfo() 233 { 234 DateTime = DateTime.Now, 235 LogType = 74584953, 236 Message = ex.ToString() 237 }); 238 return 0; 239 } 240 } 241 242 /// <summary> 243 /// 获取商品库存列表 244 /// </summary> 245 /// <param name="token"></param> 246 protected int GetShangPinList(string token) 247 { 248 try 249 { 250 IDictionary<string, string> openWith = new Dictionary<string, string>(); 251 openWith.Add("method", "taobao.items.inventory.get"); //接口名字 252 openWith.Add("app_key", TaoBaoConfig.client_id); //APPId 253 openWith.Add("session", token); //授权码 254 openWith.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //时间戳 255 openWith.Add("format", "json"); //数据格式 256 openWith.Add("v", "2.0"); //版本号 257 openWith.Add("sign_method", "md5");//加密类型 258 openWith.Add("fields", "iid,num_iid,title,nick,type,cid,pic_url,num,props,valid_thru, list_time,price,has_discount,has_invoice,has_warranty,has_showcase, modified,delist_time,postage_id,approve_status,seller_cids,outer_id,is_virtual,is_taobao,is_ex"); //需要返回的字段 259 openWith.Add("order_by", "modified");//根据最近修改时间排序 260 openWith.Add("page_size", "200");//每页条数 261 openWith.Add("sign", TaoBaoCommon.SignTopRequest(openWith, TaoBaoConfig.AppSecret, "md5")); //获取签名 262 //生成Url 263 string url = "https://eco.taobao.com/router/rest?"; //正式站 HTTPS地址 264 StringBuilder query = new StringBuilder(); 265 foreach (KeyValuePair<string, string> item in openWith) 266 { 267 query.Append(item.Key + "=" + System.Web.HttpUtility.UrlEncode(item.Value, System.Text.Encoding.UTF8) + "&"); 268 } 269 url += query.ToString().TrimEnd(new char[] { '&' }); 270 var strJson = JObject.Parse(TaoBaoCommon.GetInfo(url)).ToString(); //获取URL返回的值 271 var data = TaoBaoCommon.Parse<Root>(strJson); //反序列化 272 if (data.items_inventory_get_response.items.item != null) 273 { 274 foreach (ItemItem item in data.items_inventory_get_response.items.item) 275 { 276 taobaotommodityInfo Info = new taobaotommodityInfo(); 277 Info.Num_iid = item.num_iid; 278 Info.Title = item.title; 279 Info.Nick = item.nick; 280 Info.Types = item.type == "fixed" ? 0 : 1; 281 Info.CIds = item.cid; 282 Info.Seller_Cids = item.seller_cids; 283 Info.Props = item.props; 284 Info.Pic_Url = item.pic_url; 285 Info.Num = item.num; 286 Info.Valid_Thru = item.valid_thru; 287 Info.List_Time = item.list_time; 288 Info.Delist_Time = item.delist_time; 289 Info.Price = item.price; 290 Info.Has_Discount = Convert.ToInt32(item.has_discount); 291 Info.Has_Invoice = Convert.ToInt32(item.has_invoice); 292 Info.Has_Warranty = Convert.ToInt32(item.has_warranty); 293 Info.Has_Showcase = Convert.ToInt32(item.has_showcase); 294 Info.Modified = item.modified; 295 Info.Approve_Status = item.approve_status == "onsale" ? 0 : 1; //0 onsale出售 1 instock库中 296 Info.Postage_Id = item.postage_id; 297 Info.Outer_Id = item.outer_id; 298 Info.Is_Virtual = Convert.ToInt32(item.is_virtual); 299 Info.Is_Taobao = Convert.ToInt32(item.is_taobao); 300 Info.Is_Cspu = 0;//默认0 301 Info.Is_Ex = Convert.ToInt32(item.is_ex); //是否在外部网店显示 默认0 302 Info.UpdateTime = DateTime.Now; 303 Info.CreateTime = DateTime.Now; 304 Info.CreateUserGroupId = 1; //这个需要填写 HouTaiForumHelper.UserGroupId 305 taobaotommodityInfo Model = BLLLogicLinkLearnHelper.taobaotommodityLogic.Get(taobaotommodityInfo.Fields.Num_iid, Info.Num_iid); 306 if (Model.TableId == 0) //根据商品ID查询 307 { 308 BLLLogicLinkLearnHelper.taobaotommodityLogic.Insert(Info); 309 } 310 else 311 { 312 Info.TableId = Model.TableId; 313 BLLLogicLinkLearnHelper.taobaotommodityLogic.Update(Info); 314 } 315 } 316 } 317 return 1; 318 } 319 catch (Exception ex) 320 { 321 BLLLogicHelper.ServerLogLogic.Insert(new ServerLogInfo() 322 { 323 DateTime = DateTime.Now, 324 LogType = 74584953, 325 Message = ex.ToString() 326 }); 327 return 0; 328 } 329 } 330 331 332 /// <summary> 333 /// 根据商品ID获取SKU 334 /// </summary> 335 /// <param name="token"></param> 336 /// <returns></returns> 337 protected int GetSKU(string token, string Num_IID) 338 { 339 try 340 { 341 IDictionary<string, string> openWith = new Dictionary<string, string>(); 342 openWith.Add("method", "taobao.item.skus.get"); //接口名字 343 openWith.Add("app_key", TaoBaoConfig.client_id); //APPId 344 openWith.Add("session", token); //授权码 345 openWith.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //时间戳 346 openWith.Add("format", "json"); //数据格式 347 openWith.Add("v", "2.0"); //版本号 348 openWith.Add("sign_method", "md5");//加密类型 349 openWith.Add("fields", "sku_id,num_iid,properties,quantity,price,created,modified,status,properties_name,sku_spec_id,outer_id,barcode"); //需要返回的字段 350 openWith.Add("num_iids", "588813735361");//商品ID 351 openWith.Add("sign", TaoBaoCommon.SignTopRequest(openWith, TaoBaoConfig.AppSecret, "md5")); //获取签名 352 //生成Url 353 string url = "https://eco.taobao.com/router/rest?"; //正式站 HTTPS地址 354 StringBuilder query = new StringBuilder(); 355 foreach (KeyValuePair<string, string> item in openWith) 356 { 357 query.Append(item.Key + "=" + System.Web.HttpUtility.UrlEncode(item.Value, System.Text.Encoding.UTF8) + "&"); 358 } 359 url += query.ToString().TrimEnd(new char[] { '&' }); 360 var strJson = JObject.Parse(TaoBaoCommon.GetInfo(url)).ToString(); //获取URL返回的值 361 var data = TaoBaoCommon.Parse<RootSKU>(strJson); //反序列化 362 if (data.item_skus_get_response.skus.sku != null) 363 { 364 foreach (SkuItem item in data.item_skus_get_response.skus.sku) 365 { 366 taobaotommodityskuInfo Info = new taobaotommodityskuInfo(); 367 Info.Sku_Id = item.sku_id; 368 Info.Num_Iid = item.num_iid; 369 Info.Properties = item.properties; 370 Info.Quantity = item.quantity; 371 Info.Price = item.price; 372 Info.Created = item.created; 373 Info.Modified = item.modified; 374 Info.Status = item.status == "delete" ? 0 : 1;//1 normal: 正常 ;0 delete: 删除; 375 Info.Properties_Name = item.properties_name; 376 Info.Sku_Spec_Id = item.sku_spec_id; 377 Info.Outer_Id = ""; 378 Info.Barcode = "";//商品级别的条形码 379 Info.RelationStaus = 0; 380 Info.PackageId = 0; 381 Info.UpdateTime = DateTime.Now; 382 Info.CreateTime = DateTime.Now; 383 Info.CreateUserGroupId = 1; //这个需要填写 HouTaiForumHelper.UserGroupId 384 taobaotommodityskuInfo Model = BLLLogicLinkLearnHelper.taobaotommodityskuLogic.Get(taobaotommodityskuInfo.Fields.Sku_Id, Info.Sku_Id); 385 if (Model.TableId == 0) //根据SKUID查询 386 { 387 BLLLogicLinkLearnHelper.taobaotommodityskuLogic.Insert(Info); 388 } 389 else 390 { 391 Info.TableId = Model.TableId; 392 Info.PackageId = Model.PackageId; 393 Info.RelationStaus = Model.RelationStaus; 394 BLLLogicLinkLearnHelper.taobaotommodityskuLogic.Update(Info); 395 } 396 } 397 } 398 return 1; 399 } 400 catch (Exception ex) 401 { 402 BLLLogicHelper.ServerLogLogic.Insert(new ServerLogInfo() 403 { 404 DateTime = DateTime.Now, 405 LogType = 74584953, 406 Message = ex.ToString() 407 }); 408 return 0; 409 } 410 } 411 #endregion
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Top.Api.TaoBaoInfo { public class ShangPinChuShouInfo { } public class ItemItemKuCun { /// <summary> /// /// </summary> public string approve_status { get; set; } /// <summary> /// /// </summary> public string cid { get; set; } /// <summary> /// /// </summary> public DateTime delist_time { get; set; } /// <summary> /// /// </summary> public bool has_discount { get; set; } /// <summary> /// /// </summary> public bool has_invoice { get; set; } /// <summary> /// /// </summary> public bool has_showcase { get; set; } /// <summary> /// /// </summary> public bool has_warranty { get; set; } /// <summary> /// /// </summary> public string iid { get; set; } /// <summary> /// /// </summary> public bool is_ex { get; set; } /// <summary> /// /// </summary> public bool is_taobao { get; set; } /// <summary> /// /// </summary> public bool is_virtual { get; set; } /// <summary> /// /// </summary> public DateTime list_time { get; set; } /// <summary> /// /// </summary> public DateTime modified { get; set; } /// <summary> /// /// </summary> public string nick { get; set; } /// <summary> /// /// </summary> public int num { get; set; } /// <summary> /// /// </summary> public string num_iid { get; set; } /// <summary> /// /// </summary> public string outer_id { get; set; } /// <summary> /// /// </summary> public string pic_url { get; set; } /// <summary> /// /// </summary> public int postage_id { get; set; } /// <summary> /// /// </summary> public decimal price { get; set; } /// <summary> /// /// </summary> public string props { get; set; } /// <summary> /// /// </summary> public string seller_cids { get; set; } /// <summary> /// /// </summary> public string title { get; set; } /// <summary> /// /// </summary> public string type { get; set; } /// <summary> /// /// </summary> public int valid_thru { get; set; } } public class ItemsKuCun { /// <summary> /// /// </summary> public List<ItemItemKuCun> item { get; set; } } public class Items_onsale_get_response { /// <summary> /// /// </summary> public ItemsKuCun items { get; set; } /// <summary> /// /// </summary> public int total_results { get; set; } /// <summary> /// /// </summary> public string request_id { get; set; } }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Top.Api.TaoBaoInfo
{
public class ShangPinKuCunInfo
{
}
public class ItemItem
{
/// <summary>
///
/// </summary>
public string cid { get; set; }
/// <summary>
///
/// </summary>
public DateTime delist_time { get; set; }
/// <summary>
///
/// </summary>
public bool has_discount { get; set; }
/// <summary>
///
/// </summary>
public bool has_invoice { get; set; }
/// <summary>
///
/// </summary>
public bool has_showcase { get; set; }
/// <summary>
///
/// </summary>
public bool has_warranty { get; set; }
/// <summary>
///
/// </summary>
public string iid { get; set; }
/// <summary>
///
/// </summary>
public bool is_ex { get; set; }
/// <summary>
///
/// </summary>
public bool is_taobao { get; set; }
/// <summary>
///
/// </summary>
public bool is_virtual { get; set; }
/// <summary>
///
/// </summary>
public string approve_status { get; set; }
/// <summary>
///
/// </summary>
public DateTime list_time { get; set; }
/// <summary>
///
/// </summary>
public DateTime modified { get; set; }
/// <summary>
///
/// </summary>
public string nick { get; set; }
/// <summary>
///
/// </summary>
public int num { get; set; }
/// <summary>
///
/// </summary>
public string num_iid { get; set; }
/// <summary>
///
/// </summary>
public string outer_id { get; set; }
/// <summary>
///
/// </summary>
public string pic_url { get; set; }
/// <summary>
///
/// </summary>
public int postage_id { get; set; }
/// <summary>
///
/// </summary>
public decimal price { get; set; }
/// <summary>
///
/// </summary>
public string props { get; set; }
/// <summary>
///
/// </summary>
public string seller_cids { get; set; }
/// <summary>
///
/// </summary>
public string title { get; set; }
/// <summary>
///
/// </summary>
public string type { get; set; }
/// <summary>
///
/// </summary>
public int valid_thru { get; set; }
}
public class Items
{
/// <summary>
///
/// </summary>
public List<ItemItem> item { get; set; }
}
public class Items_inventory_get_response
{
/// <summary>
///
/// </summary>
public Items items { get; set; }
/// <summary>
///
/// </summary>
public int total_results { get; set; }
/// <summary>
///
/// </summary>
public string request_id { get; set; }
}
public class Root
{
/// <summary>
///
/// </summary>
public Items_inventory_get_response items_inventory_get_response { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Top.Api.TaoBaoInfo
{
public class SkuInfo
{
}
public class SkuItem
{
/// <summary>
///
/// </summary>
public DateTime created { get; set; }
/// <summary>
///
/// </summary>
public DateTime modified { get; set; }
/// <summary>
///
/// </summary>
public string num_iid { get; set; }
/// <summary>
///
/// </summary>
public string outer_id { get; set; }
/// <summary>
///
/// </summary>
public decimal price { get; set; }
/// <summary>
///
/// </summary>
public string properties { get; set; }
/// <summary>
///
/// </summary>
public string properties_name { get; set; }
/// <summary>
///
/// </summary>
public int quantity { get; set; }
/// <summary>
///
/// </summary>
public string sku_id { get; set; }
/// <summary>
///
/// </summary>
public int sku_spec_id { get; set; }
/// <summary>
///
/// </summary>
public string status { get; set; }
}
public class Skus
{
/// <summary>
///
/// </summary>
public List<SkuItem> sku { get; set; }
}
public class Item_skus_get_response
{
/// <summary>
///
/// </summary>
public Skus skus { get; set; }
/// <summary>
///
/// </summary>
public string request_id { get; set; }
}
public class RootSKU
{
/// <summary>
///
/// </summary>
public Item_skus_get_response item_skus_get_response { get; set; }
}
}
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; using System.Web.Script.Serialization; using Top.Api; using Top.Api.Request; using Top.Api.Response; namespace Top.Api { public class TaoBaoCommon { /// <summary> /// 获取签名 /// </summary> /// <param name="parameters">需要的值</param> /// <param name="secret">Token</param> /// <param name="signMethod">加密类型</param> /// <returns></returns> public static string SignTopRequest(IDictionary<string, string> parameters, string secret, string signMethod) { // 第一步:把字典按Key的字母顺序排序 IDictionary<string, string> sortedParams = new SortedDictionary<string, string>(parameters, StringComparer.Ordinal); IEnumerator<KeyValuePair<string, string>> dem = sortedParams.GetEnumerator(); // 第二步:把所有参数名和参数值串在一起 StringBuilder query = new StringBuilder(); if (Constants.SIGN_METHOD_MD5.Equals(signMethod)) { query.Append(secret); } while (dem.MoveNext()) { string key = dem.Current.Key; string value = dem.Current.Value; if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value)) { query.Append(key).Append(value); } } // 第三步:使用MD5/HMAC加密 byte[] bytes; if (Constants.SIGN_METHOD_HMAC.Equals(signMethod)) { HMACMD5 hmac = new HMACMD5(Encoding.UTF8.GetBytes(secret)); bytes = hmac.ComputeHash(Encoding.UTF8.GetBytes(query.ToString())); } else { query.Append(secret); MD5 md5 = MD5.Create(); bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(query.ToString())); } // 第四步:把二进制转化为大写的十六进制 StringBuilder result = new StringBuilder(); for (int i = 0; i < bytes.Length; i++) { result.Append(bytes[i].ToString("X2")); } return result.ToString(); } /// <summary> /// 获取当前会话用户出售中的商品列表(无) /// </summary> /// <param name="url">请求地址</param> /// <param name="appkey">APPId</param> /// <param name="secret">APPsecret</param> /// <param name="sessionKey">Token</param> /// <returns></returns> public static string GetShopList(ItemsOnsaleGetRequest req, string url, string sessionKey) { ITopClient client = new DefaultTopClient(url, TaoBaoConfig.client_id, TaoBaoConfig.AppSecret); ItemsOnsaleGetResponse rsp = client.Execute(req, sessionKey); return rsp.Body; } /// <summary> /// 获取当前会话用户库存中的商品列表(无) /// </summary> /// <param name="url">请求地址</param> /// <param name="appkey">APPId</param> /// <param name="secret">APPsecret</param> /// <param name="sessionKey">Token</param> /// <returns></returns> public static string GetShopKuCunList(ItemsInventoryGetRequest req, string url, string sessionKey) { ITopClient client = new DefaultTopClient(url, TaoBaoConfig.client_id, TaoBaoConfig.AppSecret); ItemsInventoryGetResponse rsp = client.Execute(req, sessionKey); return rsp.Body; } /// <summary> /// 根据商品ID获取SKU(无) /// </summary> /// <returns></returns> public static string GetSKU(ItemSkusGetRequest res, string url, string sessionKey) { ITopClient client = new DefaultTopClient(url, TaoBaoConfig.client_id, TaoBaoConfig.AppSecret); ItemSkusGetResponse rsp = client.Execute(res, sessionKey); return rsp.Body; } /// <summary> /// 获取url的返回值 /// </summary> /// <param name="url">eg:http://m.weather.com.cn/atad/101010100.html </param> public static string GetInfo(string url) { string strBuff = ""; Uri httpURL = new Uri(url); ///HttpWebRequest类继承于WebRequest,并没有自己的构造函数,需通过WebRequest的Creat方法 建立,并进行强制的类型转换 HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(httpURL); ///通过HttpWebRequest的GetResponse()方法建立HttpWebResponse,强制类型转换 HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse(); ///GetResponseStream()方法获取HTTP响应的数据流,并尝试取得URL中所指定的网页内容 ///若成功取得网页的内容,则以System.IO.Stream形式返回,若失败则产生ProtoclViolationException错 误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理 Stream respStream = httpResp.GetResponseStream(); ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以 //StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8) StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8); strBuff = respStreamReader.ReadToEnd(); return strBuff; } /// <summary> /// 反序列化 固定的层级 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="jsonStr"></param> /// <returns></returns> public static T Parse<T>(string jsonStr) { return new JavaScriptSerializer().Deserialize<T>(jsonStr); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web; namespace Top.Api { public class TaoBaoConfig { /// <summary> /// 获取当前路径 /// </summary> //public static string host = "http://" + HttpContext.Current.Request.Url.Host; public static string host = "http://ht.*******.com.cn";//测试站 /// <summary> /// client_id等同与appkey /// </summary> public static string client_id = "35453453453"; /// <summary> /// appsecret ,应用密钥 /// </summary> public static string AppSecret = "a7cd**********34b290822"; /// <summary> /// 返回路径 /// </summary> public static string redirect_uri = "" + host + "/**********/T*********.aspx"; } }
public class RootKuCun { /// <summary> /// /// </summary> public Items_onsale_get_response items_onsale_get_response { get; set; } } }
我这个不是最好的,如果最好的可分享给大家!!!!