国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#開發微信門戶及應用(23)-微信小店商品管理接口的封裝和測試

2019-11-17 02:39:32
字體:
來源:轉載
供稿:網友

C#開發微信門戶及應用(23)-微信小店商品管理接口的封裝和測試

在上篇《C#開發微信門戶及應用(22)-微信小店的開發和使用》里面介紹了一些微信小店的基礎知識,以及對應的對象模型,本篇繼續微信小店的主題,介紹其中API接口的封裝和測試使用。微信小店的相關對象模型,基本上包括了常規的商品、商品分組、貨架、庫存、訂單這些模型,還有商品分類,商品分類屬性、商品分類SKU、快遞郵寄模板、圖片管理等功能。本文介紹的接口封裝也就是基于這些內容進行的,并針對接口的實現進行測試和使用。

1、商品管理接口的定義

前面文章介紹了微信小店的對象模型,如下所示。

這個圖形基本上覆蓋了微信小店的相關對象,并介紹了它們之間的關系了。

我們從基礎的商品信息管理入手,我們知道,商品接口包含了增加、修改、查詢、刪除等接口,如下所示。

商品信息是所有微店的基礎,因此對它的管理操作,我們需要更加清晰和完善。

綜上所述的功能,我們可以定義好微信商品的接口如下所示。

        #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="

當然,微信的商品還包含了分類、分類屬性、分類SKU的基礎管理,因此商品管理還需要增加這個內容

它們的功能接口定義如下所示。通過下面的接口,我們就很容易實現商品分類(不是商品分組)、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、商品管理接口的實現

上面的接口定義了對應商品的接口。

對于接口的實現,我們一般都是根據官方網站的接口說明,提交到那個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);        }

為了獲取商品的詳細信息,我們需要定義一個商品的實體對象,以便我們把獲取到的信息轉換為實體類信息,方便使用和處理。

商品的信息,包含了不少細小定義的類,他們構成了商品的各個部分的內容,主體的實體類信息如下所示。

定義好相對比較復雜的商品信息實體后,我們就可以通過對象進行處理了。

獲取商品詳細信息的實現代碼如下所示。

        /// <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;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肥城市| 湾仔区| 札达县| 黑水县| 惠东县| 河津市| 承德县| 绥江县| 南宁市| 柯坪县| 宜兰市| 介休市| 五寨县| 揭西县| 海南省| 富裕县| 白城市| 拜泉县| 五大连池市| 尼木县| 柳州市| 山丹县| 湘潭市| 贡嘎县| 镇平县| 五河县| 富源县| 汕尾市| 化州市| 朔州市| 巴楚县| 北安市| 潞西市| 新邵县| 荥阳市| 赤城县| 嵊州市| 金溪县| 平原县| 青川县| 理塘县|