Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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
        }