淘宝接口调用,面向对象

来源:互联网 发布:js java 跨域 编辑:程序博客网 时间:2024/04/29 06:43
        #region 淘宝商品接口
        /// <summary>
        /// 获取当前会话用户出售中的商品列表
        /// </summary>
        /// <param name="url"></param>
        /// <param name="appkey"></param>
        /// <param name="secret"></param>
        /// <param name="pagesize"></param>
        /// <param name="pageNo"></param>
        /// <param name="totalResult"></param>
        /// <returns></returns>
        public IList<Item> API_taobao_GetItemsOnsale2(string appkey, string secret, string sessionkey)
        {
            IList<Item> itemlist=new List<Item>();
            int totalResult = 0;
            int i = 0;
            //int count = 0;
            do
            {
                i = i + 1;
                client = new DefaultTopClient(url, appkey, secret, "json");
                ItemsOnsaleGetRequest req = new ItemsOnsaleGetRequest();
                req.PageSize = 100;
                req.PageNo = i;
                req.Fields = "num_iid,title";
                ItemsOnsaleGetResponse response = client.Execute(req, sessionkey);
                if (!response.IsError)
                {
                    foreach (Item item in response.Items.ToList())
                    {
                        itemlist.Add(item);
                    }
                    //itemlist = response.Items.ToList();
                    totalResult =Convert.ToInt32(response.TotalResults);
                }
                else
                {
                    // throw new BusinessRuleException("出售中的商品API请求异常", response.ErrCode, response.ErrMsg);
                    log.Warn("出售中的商品API请求异常" + response.ErrCode + ";" + response.ErrMsg);
                    itemlist = null;
                }
            } while (totalResult > 100 * i);

            return itemlist;
        }

        /// <summary>
        /// 得到当前会话用户库存中的商品列表
        /// </summary>
        /// <param name="url"></param>
        /// <param name="appkey"></param>
        /// <param name="secret"></param>
        /// <param name="pagesize"></param>
        /// <param name="pageNo"></param>
        /// <param name="totalResult"></param>
        /// <returns></returns>
        public IList<Item> API_taobao_GetItemsInventory2(string appkey, string secret, string sessionkey)
        {
            int  totalResult = 0;
            IList<Item> itemlist = new List<Item>();
            int i = 0;
            //int count = 0;
            do
            {
                i = i + 1;
                client = new DefaultTopClient(url, appkey, secret, "json");
                ItemsInventoryGetRequest req = new ItemsInventoryGetRequest();
                req.PageSize = 100;
                req.PageNo = i;
                req.Fields = "num_iid,title";
                ItemsInventoryGetResponse response = client.Execute(req, sessionkey);

                if (!response.IsError)
                {
                    foreach (Item item in response.Items.ToList())
                    {
                        itemlist.Add(item);
                    }
                    totalResult =Convert.ToInt32(response.TotalResults);
                }
                else
                {
                    log.Warn("仓库中的宝贝API请求异常" + response.ErrCode + ";" + response.ErrMsg);
                    itemlist = null;
                }
            } while (totalResult > 100 * i);
            return itemlist;
        }

        /// <summary>
        /// 根据商家编码获取宝贝信息
        /// </summary>
        /// <param name="url"></param>
        /// <param name="appkey"></param>
        /// <param name="secret"></param>
        /// <param name="stylecode"></param>
        /// <returns></returns>
        public IList<Item> API_taobao_GetItemsCustom(string appkey, string secret, string sessionkey, string stylecode)
        {
            string goodscodes = stylecode;
            goodscodes = goodscodes.Replace(",", ",");
            string[] codes = goodscodes.Split(",");
            
            IList<Item> itemlist = new List<Item>();

            for (int i = 0; i < codes.Length; i++)
            {
                client = new DefaultTopClient(url, appkey, secret, "json");
                ItemsCustomGetRequest req = new ItemsCustomGetRequest();
                req.OuterId = codes[i];
                req.Fields = "num_iid,title";
                ItemsCustomGetResponse response = client.Execute(req, sessionkey);

                if (!response.IsError)
                {
                    if (response.Items == null)
                    {
                        itemlist = null;
                    }
                    else
                    {
                        foreach (Item item in response.Items)
                        {
                            itemlist.Add(item);
                        }
                    }
                }
                else
                {
                    itemlist = null;
                    //throw new BusinessRuleException("根据商家编码获取宝贝API请求异常", response.ErrCode, response.ErrMsg);

                }
            }
            return itemlist;
        }

        /// <summary>
        /// 获取单个商品详细信息
        /// </summary>
        /// <param name="url"></param>
        /// <param name="appkey"></param>
        /// <param name="secret"></param>
        /// <param name="num_iid"></param>
        /// <returns></returns>
        public Item API_taobao_GetItem(string appkey, string secret, string sessionkey, Int64 num_iid)
        {
            Item item = new Item();
            client = new DefaultTopClient(url, appkey, secret, "json");
            ItemGetRequest req = new ItemGetRequest();
            req.Fields = "detail_url,num_iid,skus,title,nick,type,desc,skus,props_name,sku,item_img,prop_img, promoted_service,created,promoted_service,is_lightning_consignment,is_fenxiao,template_id,cid,seller_cids,props,props_str,input_pids,input_str,pic_url,num,valid_thru,list_time,delist_time,stuff_status,location,price,post_fee,express_fee,ems_fee,has_discount,freight_payer,has_invoice,has_warranty,has_showcase,modified,increment,approve_status,postage_id,product_id,auction_point,property_alias,item_imgs,prop_imgs,outer_id,is_virtual,is_taobao,is_ex,is_timing,videos,is_3D,score,volume,one_station,second_kill,auto_fill,violation,is_prepay,ww_status,wap_desc,wap_detail_url,after_sale_id,cod_postage_id,sell_promise";
            req.NumIid = num_iid;
            ItemGetResponse response = client.Execute(req, sessionkey);
            
            if (!response.IsError)
            {
                item = response.Item;
            }
            else
            {
                log.Warn("单个商品信息API请求异常" + response.ErrCode + ";" + response.ErrMsg);
                item = null;
                // throw new BusinessRuleException("单个商品信息API请求异常", response.ErrCode, response.ErrMsg);
            }
            return item;
        }


        #endregion


        #region 获取淘宝分销商品

        /// <summary>
        /// 获取全部的分销商品
        /// </summary>
        /// <param name="appkey"></param>
        /// <param name="secret"></param>
        /// <param name="sessionkey"></param>
        /// <returns></returns>
        public IList<FenxiaoProduct> GetFenxiaoProduct(string appkey, string secret, string sessionkey)
        {
            IList<FenxiaoProduct> fenxiaoproList = new List<FenxiaoProduct>();
            int i = 0;
            int count = 0;
            do
            {
                i = i + 1;
                client = new DefaultTopClient(url, appkey, secret);
                FenxiaoProductsGetRequest request = new FenxiaoProductsGetRequest();
                request.PageNo = i;
                request.PageSize = 40;
                request.Fields = "skus";
                FenxiaoProductsGetResponse response = client.Execute(request, sessionkey);
                //fenxiaoproList = response.Products.ToList();
                count = Convert.ToInt32(response.TotalResults);
                if (response.Products.ToList() != null)
                {

                    foreach (FenxiaoProduct pro in response.Products.ToList())
                    {
                        fenxiaoproList.Add(pro);
                    }
                }
            } while (count > i * 40);

            return fenxiaoproList;
        }

        /// <summary>
        /// 根据商家编码获取分销商品
        /// </summary>
        /// <param name="appkey"></param>
        /// <param name="secret"></param>
        /// <param name="sessionkey"></param>
        /// <param name="goodcodes"></param>
        /// <returns></returns>
        public IList<FenxiaoProduct> GetFenxiaoProductByCodes(string appkey, string secret, string sessionkey,string goodcodes)
        {
            IList<FenxiaoProduct> fenxiaoproList = new List<FenxiaoProduct>();
            goodcodes = goodcodes.Replace(",", ",");
            string[] codes = goodcodes.Split(",");
            if (codes.Length > 0)
            {
                for (int i = 0; i < codes.Length; i++)
                {
                    client = new DefaultTopClient(url, appkey, secret);
                    FenxiaoProductsGetRequest request = new FenxiaoProductsGetRequest();
                    request.OuterId = codes[i];
                    FenxiaoProductsGetResponse response = client.Execute(request, sessionkey);
                    if (response.Products.ToList() != null)
                    {

                        foreach (FenxiaoProduct pro in response.Products.ToList())
                        {
                            fenxiaoproList.Add(pro);
                        }
                    }
                }
            }
            return fenxiaoproList;
        }

        #endregion


原创粉丝点击