95992828九五至尊2

微信小店商品管理接口的包裹和测试,开发微信门户及使用

二月 9th, 2019  |  882828九五至尊手机版

在做公司电子商务方面,微信小店就算较Taobao天猫商城等启动较晚,可是作为一个电商平台,那一个影响力不容忽视,结合微信的表征和惠及,微信小店具有很好的粘合性和常见的用户基础,由此开销一定的时光,在那方面做长远的商量和应用,也是自家一个感兴趣的世界,本文基于前面微信体系文章的底子上,再对微信小店的内容举办一个大方向的介绍,希望对大家驾驭和行使上所有支持,同时也把自身自己的微信系列文章推向纵深的世界和大势。

在上篇《C#支付微信门户及使用(22)-微信小店的开发和行使》里面介绍了一部分微信小店的基础知识,以及对应的靶子模型,本篇继续微信小店的宗旨,介绍其中API接口的包装和测试使用。微信小店的有关对象模型,基本上包涵了常规的商品、商品分组、货架、库存、订单这几个模型,还有货物分类,商品归类属性、商品分类SKU、快递邮寄模板、图片管理等功用。本文介绍的接口封装也就是根据这一个内容开展的,并对准接口的达成进行测试和行使。

1、微信小店的提请和搭建

微信小店的天才是必须为注明的公众号,并且要求注脚后举行独立的申请,提交有关的小卖部新闻和财务相关音讯,手续和打印的公文相对有点麻烦,不过为了理想商量和行使微信小店的成效,这么些都没关系了,就依照他们的要求一步步提供对应的资料即可。

因此后,在大团结的接口功用列表里面,可以看六柱预测应的接口已经赢得到了。

882828九五至尊手机版 1

有了这个功用模块,第一步,我们就足以在微信公众号的田间管理平台上加上对应的商品消息,然后搭建好自己的微信店铺了。

我们进入微信小店,可以见到微信小店的响应成效操作界面。

882828九五至尊手机版 2

我们率先步是亟需加上对应的商品音信,从分类里面采纳切合自己的归类,然后添加对应的商品音讯和图片。

882828九五至尊手机版 3

最后,我们添加完毕了温馨的货物列表(包含商品消息和货物分组的处理),完结后,类似的界面如下所示。

882828九五至尊手机版 4

为了把货物合理的显示出来,微信小店引入了一个货架的定义,就是把货物分门别类的很好呈现给客户,货架就是看似一个搭架子可以的展柜,我们可以定义分歧的货架,然后发布不一致的URL举办体验。

882828九五至尊手机版 5

打造好货架音讯后,我们就可以把货架的URL放到微信的食谱里面去了,那样大家就足以查阅到温馨的微信小店了。

本来店铺可以下单并展开拍卖了,客户下了订单,大家得以为微信小店的保管界面上开展订单的发货管理等操作。

882828九五至尊手机版 6

 

在大家发货后,系统会有一个音讯提示给相应购买者的微信号,如下所示。

882828九五至尊手机版 7

 

若果需求通晓自己的微信小店的功效,可以扫描上边二维码进行关爱大家的验证公众号:圣地亚哥爱奇迪

882828九五至尊手机版 8

 

1、商品管理接口的定义

前边文章介绍了微信小店的靶子模型,如下所示。

882828九五至尊手机版 9

以此图形基本上覆盖了微信小店的相干对象,并介绍了它们中间的关联了。

咱俩从基础的商品音讯管理出手,大家了然,商品接口包涵了充实、修改、查询、删除等接口,如下所示。

882828九五至尊手机版 10

商品音讯是富有微店的根基,因而对它的管理操作,大家要求进一步显然和宏观。

综上所述的效果,我们得以定义好微信商品的接口如下所示。

        #region 商品信息
        /// <summary>
        /// 创建商品
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="merchantJson">商品对象</param>
        /// <returns></returns>
        AddMerchantResult AddMerchant(string accessToken, MerchantJson merchantJson);

        /// <summary>
        /// 删除商品
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="productId">商品ID</param>
        /// <returns></returns>
        CommonResult DeleteMerchant(string accessToken, string productId);

        /// <summary>
        /// 修改商品
        /// product_id表示要更新的商品的ID,其他字段说明请参考增加商品接口。
        /// 从未上架的商品所有信息均可修改,否则商品的名称(name)、商品分类(category)、商品属性(property)这三个字段不可修改。
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="merchantJson">修改商品的信息</param>
        /// <returns></returns>
        CommonResult UpdateMerchant(string accessToken, MerchantJson merchantJson);

        /// <summary>
        /// 根据ID查询商品信息,如果成功返回MerchantJson信息,否则返回null
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="productId">商品的Id</param>
        /// <returns></returns>
        MerchantJson GetMerchant(string accessToken, string productId);

        /// <summary>
        /// 获取指定状态的所有商品
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="status">商品状态(0-全部, 1-上架, 2-下架)</param>
        /// <returns></returns>
        List<MerchantJson> GetMerchantByStatus(string accessToken, int status);

        /// <summary>
        /// 商品上下架
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="status">商品上下架标识(0-下架, 1-上架)</param>
        /// <returns></returns>
        CommonResult UpdateMerchantStatus(string accessToken, string productId, int status); 

        #endregion

882828九五至尊手机版,当然,微信的货物还含有了归类、分类属性、分类SKU的功底管理,因此商品管理还索要充实这么些情节

882828九五至尊手机版 11

它们的成效接口定义如下所示。通过上边的接口,我们就很简单完结货物分类(不是商品分组)、SKU音信、和归类属性等信息的得到操作了。

        #region 商品分类及属性
        /// <summary>
        /// 获取指定分类的所有子分类
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="cateId">大分类ID(根节点分类id为1)</param>
        /// <returns></returns>
        List<SubCategory> GetSub(string accessToken, int cate_id);

        /// <summary>
        /// 获取指定子分类的所有SKU
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="cateId">商品子分类ID</param>
        /// <returns></returns>
        List<SubCategorySku> GetSku(string accessToken, int cate_id);

        /// <summary>
        /// 获取指定分类的所有属性
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="cateId">分类ID</param>
        /// <returns></returns>
        List<SubCategoryProperty> GetProperty(string accessToken, int cate_id); 

        #endregion

 

2、微信小店的靶子模型

通过前边第1小节的学习,大家也许曾经精通到了大概的微信小店的有关对象模型了,基本上就是概括了,常规的货物、商品分组、货架、库存、订单这几个,还有货物归类,商品分类属性、商品分类SKU、快递邮寄模板、图片管理等职能。

为了更管用领悟任何对象模型,我绘制了有些图形以扶植驾驭那个目的模型。

882828九五至尊手机版 12

地方的图形,很好地讲演了那么些目标的关联,基本上就是,我们第一接触的就是货架管理,通过货架入口,绑定了体现的货品分组和多少,大家就可以寓目相应的商品音讯,而商品通过图形、分类、属性、SKU等新闻打造一个完全的货品对象,此外在货架的输入里面,我们可以对货物进行下订单,由此安插到订单和库存的治本,订单的发货须求有运费模板进行关联,从而落成完整的一个微信店铺的流水线处理。

自然其中每个模型都有其相应的API接口,为了尤其惠及驾驭微信小店提供的成效接口,我通过图形列出上边提到到的对象的功力接口,如下所示。

882828九五至尊手机版 13

除去商品的目标模型接口,还有上边的片段接口。

882828九五至尊手机版 14

 

2、商品管理接口的贯彻

地方的接口定义了对应商品的接口。

对于接口的完结,我们一般都是基于官方网站的接口表明,提交到那几个URL,并且是POST那多少个数据,然后整理成一个例行的处理方式,得到结果并转移为相应的靶子即可,如添加商品操作的兑现代码如下所示。

        /// <summary>
        /// 创建商品
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="merchantJson">商品对象</param>
        /// <returns></returns>
        public AddMerchantResult AddMerchant(string accessToken, MerchantJson merchantJson)
        {
            var url = string.Format("https://api.weixin.qq.com/merchant/create?access_token={0}", accessToken);
            string postData = merchantJson.ToJson();

            return JsonHelper<AddMerchantResult>.ConvertJson(url, postData);
        }

而回到结果,那是概念一个目的来收获丰硕商品的ID等内容,如下所示。

    /// <summary>
    /// 创建商品信息的返回结果
    /// </summary>
    public class AddMerchantResult : ErrorJsonResult
    {
        /// <summary>
        /// 商品ID
        /// </summary>
        public string product_id { get; set; }
    }

而基类那是常规的响应内容

    /// <summary>
    /// 微信返回Json结果的错误数据
    /// </summary>
    public class ErrorJsonResult 
    {
        /// <summary>
        /// 返回代码
        /// </summary>
        public ReturnCode errcode { get; set; }

        /// <summary>
        /// 错误消息
        /// </summary>
        public string errmsg { get; set; }
    }

通过这一个目的的概念,添加商品后,大家就清楚操作是或不是成功,假诺添加事业有成,再次来到了一个恰好成立的ID给咱们使用,大家可以进行查询具体的商品音信或者拓展改动、删除等操作的。

而对商品音信的修改或者去除的操作,都是回到一个是或不是中标的笔录就可以了,由此大家定义了一个联结的答疑对象CommonResult。商品修改、删除的接口已毕代码如下所示。

鉴于代码我都进展中度的无微不至和整理,对于各个处理的代码都相对相比较易于了然的了。

        /// <summary>
        /// 删除商品
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="productId">商品ID</param>
        /// <returns></returns>
        public CommonResult DeleteMerchant(string accessToken, string productId)
        {
            var url = string.Format("https://api.weixin.qq.com/merchant/del?access_token={0}", accessToken);
            var data = new
            {
                product_id = productId
            };
            string postData = data.ToJson();

            return Helper.GetExecuteResult(url, postData);
        }

        /// <summary>
        /// 修改商品
        /// product_id表示要更新的商品的ID,其他字段说明请参考增加商品接口。
        /// 从未上架的商品所有信息均可修改,否则商品的名称(name)、商品分类(category)、商品属性(property)这三个字段不可修改。
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="merchantJson">修改商品的信息</param>
        /// <returns></returns>
        public CommonResult UpdateMerchant(string accessToken, MerchantJson merchantJson)
        {
            var url = string.Format("https://api.weixin.qq.com/merchant/update?access_token={0}", accessToken);
            string postData = merchantJson.ToJson();

            return Helper.GetExecuteResult(url, postData);
        }

为了取得商品的详细新闻,大家须要定义一个货品的实体对象,以便我们把收获到的消息转换为实体类新闻,方便使用和拍卖。

商品的新闻,包涵了重重细小定义的类,他们结成了货物的相继部分的内容,主体的实体类音信如下所示。

882828九五至尊手机版 15

概念好相相比较较复杂的商品音信实体后,大家就足以由此对象进行拍卖了。

获取商品详细音信的贯彻代码如下所示。

        /// <summary>
        /// 根据ID查询商品信息,如果成功返回MerchantJson信息,否则返回null
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="productId">商品的Id</param>
        /// <returns></returns>
        public MerchantJson GetMerchant(string accessToken, string productId)
        {
            var url = string.Format("https://api.weixin.qq.com/merchant/get?access_token={0}", accessToken);
            var data = new
            {
                product_id = productId
            };
            string postData = data.ToJson();

            MerchantJson merchant = null;
            GetMerchantResult result = JsonHelper<GetMerchantResult>.ConvertJson(url, postData);
            if (result != null)
            {
                merchant = result.product_info;
            }
            return merchant;
        }

虽说商品的实体音信很复杂,不过只要我们定义好,大家就很不难对结果举行转换并拍卖了,上面的代码并不是很难领会,主要就是付诸数据后,对数码进行转换而已。

自然,我们还是能收获分歧景况的货色列表内容,如下代码所示。

        /// <summary>
        /// 获取指定状态的所有商品
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="status">商品状态(0-全部, 1-上架, 2-下架)</param>
        /// <returns></returns>
        public List<MerchantJson> GetMerchantByStatus(string accessToken, int status)
        {
            var url = string.Format("https://api.weixin.qq.com/merchant/getbystatus?access_token={0}", accessToken);
            var data = new
            {
                status = status
            };
            string postData = data.ToJson();

            List<MerchantJson> list = new List<MerchantJson>();
            GetMerchantByStatus result = JsonHelper<GetMerchantByStatus>.ConvertJson(url, postData);
            if (result != null)
            {
                list = result.products_info;
            }
            return list;
        }

俺们抬高商品的时候,商品的归类音讯、分类属性、分类SKU音讯也都是很重大的情节,大家须要指定相应商品归类才能添加到微信小店里面。

得到商品分类的操作完成代码如下所示。

        /// <summary>
        /// 获取指定分类的所有子分类
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="cateId">大分类ID(根节点分类id为1)</param>
        /// <returns></returns>
        public List<SubCategory> GetSub(string accessToken, int cate_id)
        {
            var url = string.Format("https://api.weixin.qq.com/merchant/category/getsub?access_token={0}", accessToken);
            var data = new
            {
                cate_id = cate_id
            };
            string postData = data.ToJson();

            List<SubCategory> list = new List<SubCategory>();
            GetSubResult result = JsonHelper<GetSubResult>.ConvertJson(url, postData);
            if(result != null)
            {
                list = result.cate_list;
            }
            return list;
        }

 

3、微信小店API的选用

地方通过图示的办法,介绍了微信小店的有关对象和接口作用,这个我只是按照微信API提供的情节开展了集中而已。

要打听进一步详实的接口表明,大家仍旧要求参考微信的官方接口表达。

882828九五至尊手机版 16

不过透过地点图示的接口作用图,大家可以整理出相应的微信小店的API接口和落实了。

上面的接口类和接口已毕类,就是基于地点的辨析和微信店铺的文档表达举行重整的C#支付封装处理。

是因为接口涉及的始末比较多,因而我通过多少个接口进行一定的理念,其余的如此类推。

比如说对于微店商品的军事管制,我定义了下列的接口代码。

    /// <summary>
    ///微小店管理的商品API接口
    /// </summary>
    public interface IMerchantApi
    {
        #region 商品信息
        /// <summary>
        /// 创建商品
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="merchantJson">商品对象</param>
        AddMerchantResult AddMerchant(string accessToken, MerchantJson merchantJson);

        /// <summary>
        /// 删除商品
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="productId">商品ID</param>
        CommonResult DeleteMerchant(string accessToken, string productId);

        /// <summary>
        /// 修改商品
        /// product_id表示要更新的商品的ID,其他字段说明请参考增加商品接口。
        /// 从未上架的商品所有信息均可修改,否则商品的名称(name)、商品分类(category)、商品属性(property)这三个字段不可修改。
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="merchantJson">修改商品的信息</param>
        CommonResult UpdateMerchant(string accessToken, MerchantJson merchantJson);

        /// <summary>
        /// 根据ID查询商品信息,如果成功返回MerchantJson信息,否则返回null
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="productId">商品的Id</param>
        MerchantJson GetMerchant(string accessToken, string productId);

因此立竿见影的卷入处理,他们的片段已毕代码也很不难,如下所示。

        /// <summary>
        /// 创建商品
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="merchantJson">商品对象</param>
        /// <returns></returns>
        public AddMerchantResult AddMerchant(string accessToken, MerchantJson merchantJson)
        {
            var url = string.Format("https://api.weixin.qq.com/merchant/create?access_token={0}", accessToken);
            string postData = merchantJson.ToJson();

            return JsonHelper<AddMerchantResult>.ConvertJson(url, postData);
        }

        /// <summary>
        /// 删除商品
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="productId">商品ID</param>
        /// <returns></returns>
        public CommonResult DeleteMerchant(string accessToken, string productId)
        {
            var url = string.Format("https://api.weixin.qq.com/merchant/del?access_token={0}", accessToken);
            var data = new
            {
                product_id = productId
            };
            string postData = data.ToJson();

            return Helper.GetExecuteResult(url, postData);
        }

根据小说篇幅的设想,下边连串文章再开展独立的模子介绍和教学。

 

一经对那个《C#付出微信门户及利用》系列感兴趣,可以关切自我的其他小说,种类随笔如下所示:

C#付出微信门户及应用(25)-微信集团号的客户端管住职能

C#支出微信门户及选拔(24)-微信小店货架音信保管

C#支付微信门户及利用(23)-微信小店商品管理接口的卷入和测试

C#开发微信门户及使用(22)-微信小店的付出和运用

C#付出微信门户及运用(21)-微信公司号的音信和事件的吸纳处理及解密 

C#付出微信门户及利用(20)-微信集团号的菜系管理

C#支出微信门户及使用(19)-微信公司号的音信发送(文本、图片、文件、语音、视频、图文消息等)

C#支付微信门户及利用(18)-微信公司号的通信录管理支出之成员管理

C#开发微信门户及使用(17)-微信集团号的通信录管理支付之部门管理

C#付出微信门户及接纳(16)-微信公司号的布局和运用

C#付出微信门户及利用(15)-微信菜单扩张扫一扫、发图片、发地理地点功用

 C#支出微信门户及应用(14)-在微信菜单中利用重定向获取用户数据

C#支出微信门户及采用(13)-使用地理地点伸张相关应用

C#支付微信门户及利用(12)-使用语音处理

C#付出微信门户及采纳(11)–微信菜单的三种突显情势介绍

C#付出微信门户及运用(10)–在管制系列中联手微信用户分组音讯

C#支出微信门户及应用(9)-微信门户菜单管理及提交到微信服务器

C#支付微信门户及选择(8)-微信门户应用管理种类机能介绍

C#支出微信门户及使用(7)-微信多客服功用及用度集成

C#开发微信门户及使用(6)–微信门户菜单的管住操作

C#开发微信门户及使用(5)–用户分组音信保管

C#支付微信门户及使用(4)–关心用户列表及详细音讯管理

C#支出微信门户及使用(3)–文本音讯和图文信息的回复

C#付出微信门户及使用(2)–微信音讯的拍卖和回复

C#支付微信门户及使用(1)–开头采纳微信接口

 

3、商品管理接口的测试

为了注解大家付出的接口,我们要求追加一个测试项目,方便对我们编辑的API举行测试,测试完全成功后,大家才能规范在档次中使用。

本人为了方便,创立了一个Winform项目,分别对各样接口举办测试。

882828九五至尊手机版 17

本篇首要介绍商品管理方面的接口,因而下边首要介绍其中货物管理一些的接口测试代码,以及相应的结果。

其中货物常规管理的接口测试代码如下所示。

        private void btnMerchant_Click(object sender, EventArgs e)
        {
            //商品管理
            IMerchantApi api = new MerchantApi();

            //获取所有商品信息
            Console.WriteLine("获取所有商品信息");
            List<MerchantJson> list = api.GetMerchantByStatus(token, 0);
            foreach(MerchantJson json in list)
            {
                Console.WriteLine(json.ToJson());
                Console.WriteLine();
            }

            //更新商品状态
            Console.WriteLine("更新商品状态");
            foreach (MerchantJson json in list)
            {
                CommonResult result = api.UpdateMerchantStatus(token, json.product_id, 1);
                Console.WriteLine("商品ID:{0},商品名称:{1}, 操作:{2}", 
                    json.product_id, json.product_base.name, result.Success ? "成功" : "失败");
            }

            Thread.Sleep(1000);
            //根据商品ID获取商品信息
            Console.WriteLine("根据商品ID获取商品信息");
            foreach (MerchantJson json in list)
            {
                MerchantJson getJson = api.GetMerchant(token, json.product_id);
                if(json != null)
                {
                    Console.WriteLine("商品ID:{0},商品名称:{1}", getJson.product_id, getJson.product_base.name);
                }
            }
        }

测试后结果如下所示(就是回去自己微店铺里面的商品音信),一切正常。

回来的货品Json数据如下所示:

882828九五至尊手机版 18882828九五至尊手机版 19

{
  "product_id": "pSiLnt6FYDuFtrRRPMlkdKbye-rE",
  "product_base": {
    "category_id": [
      "537103312"
    ],
    "property": [
      {
        "id": "类型",
        "vid": "软件产品设计"
      }
    ],
    "name": "代码生成工具Database2Sharp",
    "sku_info": [],
    "main_img": "http://mmbiz.qpic.cn/mmbiz/mLqH9gr11Gyb2sgiaelcsxYtQENGePp0Rb3AZKbjkicnKTUNBrEdo7Dyic97ar46SoAfKRB5x2R94bDUdNpgqiaZzA/0",
    "img": [
      "http://mmbiz.qpic.cn/mmbiz/mLqH9gr11Gyb2sgiaelcsxYtQENGePp0RiaheJmVXm7tbvTYUQV7OF3DgfGiaQVMh3WbeEcGDOQQiajQXGKK9tfoeA/0"
    ],
    "detail": [],
    "buy_limit": 0,
    "detail_html": ""
  },
  "sku_list": [
    {
      "sku_id": "",
      "ori_price": 100000,
      "price": 50000,
      "icon_url": "",
      "quantity": 1100,
      "product_code": ""
    }
  ],
  "attrext": {
    "location": {
      "country": "中国",
      "province": "广东",
      "city": "广州",
      "address": ""
    },
    "isPostFree": 1,
    "isHasReceipt": 0,
    "isUnderGuaranty": 0,
    "isSupportReplace": 0
  },
  "delivery_info": {
    "delivery_type": 0,
    "template_id": 175807970,
    "express": [
      {
        "id": 10000027,
        "price": 0
      },
      {
        "id": 10000028,
        "price": 0
      },
      {
        "id": 10000029,
        "price": 0
      }
    ]
  },
  "status": 1
}

View Code

测试的局地结果输出如下所示。

882828九五至尊手机版 20

其它,“商品有限辅助管理”的效率测试主要就是测试商品的充实、修改、删除操作,具体代码如下所示。

        private void btnMerchantEdit_Click(object sender, EventArgs e)
        {
            IMerchantApi api = new MerchantApi();
            string img1 = "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjD3ulEKogfsiaua49pvLfUS8Ym0GSYjViaLic0FD3vN0V8PILcibEGb2fPfEOmw/0";
            string img2 = "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjD3ul1UcLcwxrFdwTKYhH9Q5YZoCfX4Ncx655ZK6ibnlibCCErbKQtReySaVA/0";
            string img3 = "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl28bJj62XgfHPibY3ORKicN1oJ4CcoIr4BMbfA8LqyyjzOZzqrOGz3f5KWq1QGP3fo6TOTSYD3TBQjuw/0";

            //商品增删改处理
            MerchantJson merchant = new MerchantJson();
            merchant.product_base = new Merchant_base();
            merchant.product_base.name = "测试产品";
            merchant.product_base.category_id.Add("537074298");
            merchant.product_base.img = new List<string>() { img1, img2, img3 };
            merchant.product_base.main_img = img1;
            merchant.product_base.detail.AddRange(new List<MerchantDetail>() {
                    new MerchantDetail()
                    {
                        text = "test first"
                    },
                    new MerchantDetail()
                    {
                        img = img2
                    }, new MerchantDetail()
                    {
                        text = "test again"
                    }
            });
            merchant.product_base.property.AddRange(new List<MerchantProperty>(){
                new MerchantProperty
                {
                    id= "1075741879",
                    vid="1079749967"
                },
                new MerchantProperty{
                    id= "1075754127",
                    vid= "1079795198"
                },
                new MerchantProperty(){
                    id= "1075777334",
                    vid= "1079837440"
                }
            });
            merchant.product_base.sku_info.AddRange(new List<MerchantSku>(){
                new MerchantSku{
                    id=  "1075741873",
                    vid = new List<string>() {
                        "1079742386",
                        "1079742363"
                    }
                }
            });
            merchant.product_base.buy_limit = 10;
            //merchant.product_base.detail_html = "<div class=\"item_pic_wrp\" style=\"margin-bottom:8px;font-size:0;\"><img class=\"item_pic\" style=\"width:100%;\" alt=\"\" src=\"http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjD3ulEKogfsiaua49pvLfUS8Ym0GSYjViaLic0FD3vN0V8PILcibEGb2fPfEOmw/0\" ></div><p style=\"margin-bottom:11px;margin-top:11px;\">test</p><div class=\"item_pic_wrp\" style=\"margin-bottom:8px;font-size:0;\"><img class=\"item_pic\" style=\"width:100%;\" alt=\"\" src=\"http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjD3ul1UcLcwxrFdwTKYhH9Q5YZoCfX4Ncx655ZK6ibnlibCCErbKQtReySaVA/0\" ></div><p style=\"margin-bottom:11px;margin-top:11px;\">test again</p>";
            merchant.sku_list.AddRange(new List<MerchantSku_list>()
            {
                new MerchantSku_list(){
                sku_id="1075741873:1079742386",
                price=30,
                icon_url="http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjD3ulEKogfsiaua49pvLfUS8Ym0GSYjViaLic0FD3vN0V8PILcibEGb2fPfEOmw/0",
                quantity=800,
                product_code="testing",
                ori_price=9000000
                },
                new MerchantSku_list(){
                    sku_id="1075741873:1079742363",
                    price=30,
                    icon_url="http://mmbiz.qpic.cn/mmbiz/4whpV1VZl28bJj62XgfHPibY3ORKicN1oJ4CcoIr4BMbfA8LqyyjzOZzqrOGz3f5KWq1QGP3fo6TOTSYD3TBQjuw/0",
                    quantity=800,
                    product_code="testingtesting",
                    ori_price=9000000
                }
            });
            merchant.attrext = new MerchantAttrext()
            {
                location = new MerchantLocation()
                {
                    country = "中国",
                    province = "广东省",
                    city = "广州市",
                    address = "T.I.T创意园"
                },
                isPostFree = 0,
                isHasReceipt = 1,
                isUnderGuaranty = 0,
                isSupportReplace = 0
            };
            merchant.delivery_info = new MerchantDelivery()
            {
                delivery_type = 0,
                template_id = 0,
                express = new List<MerchantExpress>(){
                new MerchantExpress() {
                    id=10000027, 
                    price=100
                }, 
                new MerchantExpress(){
                    id=10000028, 
                    price=100
                }, 
                new MerchantExpress(){
                    id=10000029, 
                    price=100
                }}
            };

            Console.WriteLine(merchant.ToJson());

            AddMerchantResult result = api.AddMerchant(token, merchant);
            Console.WriteLine("添加商品:{0}", result.product_id);
            if (!string.IsNullOrEmpty(result.product_id))
            {
                //更新商品
                merchant.product_id = result.product_id;
                merchant.product_base.name = "测试产品22";
                CommonResult updateResult = api.UpdateMerchant(token, merchant);
                Console.WriteLine("更新商品:{0}", updateResult.Success ? "成功" : "失败");


                CommonResult deleteResult = api.DeleteMerchant(token, merchant.product_id);
                Console.WriteLine("删除商品:{0}", deleteResult.Success ? "成功" : "失败");
            }
        }

测试的出口结果如下所示(一切成功)。

882828九五至尊手机版 21

上述就是自己对货品管理接口的API定义和促成,以及对接口进行测试的阐发,基本上把持有相关的情节都贴出来了,希望大家可以对微店开发一些,有更透彻的刺探和认识。

 

万一对那些《C#支出微信门户及使用》连串感兴趣,可以关注自身的此外小说,连串随笔如下所示:

C#支付微信门户及利用(25)-微信集团号的客户端管住功用

C#支付微信门户及采纳(24)-微信小店货架新闻保管

C#支付微信门户及选用(23)-微信小店商品管理接口的包装和测试

C#付出微信门户及选拔(22)-微信小店的开发和运用

C#开发微信门户及使用(21)-微信公司号的音信和事件的收取处理及解密 

C#付出微信门户及利用(20)-微信集团号的食谱管理

C#支付微信门户及运用(19)-微信公司号的音信发送(文本、图片、文件、语音、视频、图文新闻等)

C#支付微信门户及应用(18)-微信公司号的通信录管理支付之成员管理

C#开发微信门户及利用(17)-微信集团号的通信录管理支出之部门管理

C#支出微信门户及运用(16)-微信集团号的布局和采纳

C#开发微信门户及选择(15)-微信菜单增添扫一扫、发图片、发地理地点功效

 C#付出微信门户及应用(14)-在微信菜单中使用重定向获取用户数量

C#支付微信门户及利用(13)-使用地理地方增添相关应用

C#支出微信门户及运用(12)-使用语音处理

C#付出微信门户及利用(11)–微信菜单的种种彰显方法介绍

C#支付微信门户及运用(10)–在管理体系中共同微信用户分组消息

C#付出微信门户及选择(9)-微信门户菜单管理及提交到微信服务器

C#开发微信门户及使用(8)-微信门户应用管理种类作用介绍

C#付出微信门户及利用(7)-微信多客服功能及支付集成

C#开发微信门户及利用(6)–微信门户菜单的管制操作

C#支付微信门户及应用(5)–用户分组音信保管

C#支出微信门户及应用(4)–关切用户列表及详细音讯管理

C#开发微信门户及利用(3)–文本音信和图文音信的答疑

C#支付微信门户及利用(2)–微信音讯的拍卖和回应

C#支出微信门户及利用(1)–起先使用微信接口

Your Comments

近期评论

    功能


    网站地图xml地图