/// <summary> /// 获取商品总条数 /// </summary> /// <param name="request"></param> /// <returns></returns> public static int GetSoldProductsCount(SoldProductsRequest request) { int totalCount = 0; #region MyRegion string param = string.Empty;//参数 //请求类转参字符串 Dictionary <string, string> keyValuePairs = SignHelper.GetDictionary <SoldProductsRequest>(request); keyValuePairs.Add("app_key", appKey); keyValuePairs.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); foreach (var kv in keyValuePairs) { param += kv.Key + "=" + kv.Value + "&"; } param = param.Substring(0, param.Length - 1); LogHelper.Info("param参数:" + param); //签名 string sign = SignHelper.SignTopRequest(keyValuePairs, "md5", appSecret); LogHelper.Info("sign签名:" + sign); param += "&sign=" + sign; string postUrl = url + WXAppConstants.soldproductsUrl; //请求地址 var result = string.Empty; //请求结果 try { result = HttpHelper.HttpGet(postUrl, param); LogHelper.Info("请求结果:" + result); } catch (Exception ex) { LogHelper.Info("请求失败:" + ex.Message); } SoldProductsResponse response = null;//反馈 if (!string.IsNullOrEmpty(result)) { try { response = JsonConvert.DeserializeObject <SoldProductsResponse>(result, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); } catch (Exception ex) { LogHelper.Info("转换失败:" + ex.Message); } } if (response != null) { totalCount = response.products_get_response.total_results; } #endregion return(totalCount); }
/// <summary> /// 获取当前商家的商品列表 /// </summary> public static void GetSoldProducts() { LogHelper.SetPreFilePath = "SoldProducts"; //日志专属文件夹 SoldProductsRequest request = new SoldProductsRequest(); //请求传参 int TotalCount = GetSoldProductsCount(request); LogHelper.Info("总条数:" + TotalCount); int PageCount = TotalCount % PageSize == 0 ? TotalCount / PageSize : TotalCount / PageSize + 1; LogHelper.Info("总页数:" + PageCount); #region 过程 for (int i = 1; i <= PageCount; i++) { request.page_no = i; //当前页数 string param = string.Empty; //参数 //请求类转参字符串 Dictionary <string, string> keyValuePairs = SignHelper.GetDictionary <SoldProductsRequest>(request); keyValuePairs.Add("app_key", appKey); keyValuePairs.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); foreach (var kv in keyValuePairs) { param += kv.Key + "=" + kv.Value + "&"; } param = param.Substring(0, param.Length - 1); LogHelper.Info("param参数:" + param); //签名 string sign = SignHelper.SignTopRequest(keyValuePairs, "md5", appSecret); LogHelper.Info("sign签名:" + sign); param += "&sign=" + sign; string postUrl = url + WXAppConstants.soldproductsUrl; //请求地址 var result = string.Empty; //请求结果 try { result = HttpHelper.HttpGet(postUrl, param); LogHelper.Info("请求结果:" + result); } catch (Exception ex) { LogHelper.Info("请求失败:" + ex.Message); } SoldProductsResponse response = null;//反馈 if (!string.IsNullOrEmpty(result)) { try { response = JsonConvert.DeserializeObject <SoldProductsResponse>(result, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); } catch (Exception ex) { LogHelper.Info("转换失败:" + ex.Message); } } if (response != null) { List <SoldProduct> soldProducts = response.products_get_response.items;//商品集合 if (soldProducts != null && soldProducts.Any()) { foreach (var item in soldProducts) { //获取商品的详细信息 GetProduct(item.num_iid); } } } } #endregion }