获取淘宝商品的SKU信息

  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; } } }

 

 

我这个不是最好的,如果最好的可分享给大家!!!!

 

 

posted @ 2019-03-16 15:35  耶夫托拉斯基  阅读(6418)  评论(0编辑  收藏  举报