国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
1、微信小店貨架介紹
2、貨架管理的開發(fā)模型
3、貨架資訊的物件建模
4、微信小店貨架管理的介面測試
首頁 微信小程式 微信開發(fā) C#開發(fā)微信入口網(wǎng)站及應(yīng)用-微信小店貨架資訊管理

C#開發(fā)微信入口網(wǎng)站及應(yīng)用-微信小店貨架資訊管理

Feb 18, 2017 am 09:58 AM

在前面微信小店系列篇《C#開發(fā)微信門戶及應(yīng)用(22)-微信小店的開發(fā)與使用》裡面介紹了一些微信小店的基礎(chǔ)知識,以及《C#開發(fā)微信門戶及應(yīng)用(23)-微信小店商品管理介面的封裝與測試》裡面詳細(xì)介紹了微信小店商品的介面定義、實(shí)作與測試的內(nèi)容,本文主要介紹微信小店貨架資訊管理。這個(gè)模組是在微信小店物件裡面,最為複雜,也是最難理解的一個(gè)模組,對於它的物件建模,需要反覆測試才能完善起來,因此這個(gè)貨架管理模組,可以說是最具技術(shù)含量的一個(gè)模組了。

1、微信小店貨架介紹

在微信公眾號的後臺裡面,可以對貨架資訊進(jìn)行維護(hù),介面如下所示。貨架的概念,就是把商品分門別類的很好展示給客戶,貨架就是類似一個(gè)佈局良好的展櫃,我們可以定義不同的貨架,然後公佈不同的URL進(jìn)行體驗(yàn)。

C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理

另外,我們一般創(chuàng)建貨架,都是基於貨架的模板庫來構(gòu)建的,貨架的模板給我們快速構(gòu)建一個(gè)貨架,提供了可視化的參考界面,貨架模板界面如下所示。

C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理

?

2、貨架管理的開發(fā)模型

對於利用API開發(fā)微信店鋪,微信小店的貨架管理操作接口,和常規(guī)的模組差不多,具有下面幾個(gè)功能操作。

C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理

雖然看起來和前面的物件模型差不多,但是貨架的資訊非常複雜,因此你如果需要根據(jù)Json資料把它還原為實(shí)體物件的時(shí)候,需要反覆進(jìn)行斟酌,否則很容易建模錯(cuò)誤。

對應(yīng)著微信小店管理介面的貨架模板,貨架的物件資訊包括了5個(gè)不同的控制模型,它們有的可以進(jìn)行組合使用。

C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理

幾個(gè)貨架的模型展示如下圖所示。

C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理 C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理

C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理 C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理

C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理

透過上面5個(gè)控制模型,我們可以看到它們分別代表不一樣的佈局效果,而且它們可以在貨架上進(jìn)行組合使用的。

3、貨架資訊的物件建模

根據(jù)微信小店的介面說明,我們最終定義的貨架實(shí)體物件訊息,內(nèi)容就非常豐富且彈性化。

C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理

我們透過參考微信小店的API說明,就可以看到貨架的資訊JSON資料很複雜,具體定義如下圖所示。

{????"shelf_data":?{??????"module_infos":?[
????????{??????????"group_info":?{????????????"filter":?{??????????????"count":?2
????????????},????????????"group_id":?50
??????????},??????????"eid":?1
????????},
????????{????????????"group_infos":?{????????????????"groups":?[
??????????????????{????????????????????"group_id":?49
??????????????????},
??????????????????{????????????????????"group_id":?50
??????????????????},
??????????????????{????????????????????"group_id":?51
??????????????????}
????????????????]
??????????},??????????"eid":?2
????????},
????????{??????????"group_info":?{????????????"group_id":?52,????????????"img":?"http://mmbiz.qpic.cn/mmbiz/4whpV1VZl29nqqObBwFwnIX3licVPnFV5Jm64z4I0TTicv0TjN7Vl9bykUUibYKIOjicAwIt6Oy0Y6a1Rjp5Tos8tg/0"
??????????},??????????"eid":?3
????????},
????????{??????????"group_infos":?{??
????????????"groups":?[
??????????????{????????????????"group_id":?49,????????????????"img":?"http://mmbiz.qpic.cn/mmbiz/4whpV1VZl29nqqObBwFwnIX3licVPnFV5uUQx7TLx4tB9qZfbe3JmqR4NkkEmpb5LUWoXF1ek9nga0IkeSSFZ8g/0"
??????????????},
??????????????{????????????????"group_id":?50,????????????????"img":?"http://mmbiz.qpic.cn/mmbiz/4whpV1VZl29nqqObBwFwnIX3licVPnFV5G1kdy3ViblHrR54gbCmbiaMnl5HpLGm5JFeENyO9FEZAy6mPypEpLibLA/0"
??????????????},
??????????????{????????????????"group_id":?52,????????????????"img":?"http://mmbiz.qpic.cn/mmbiz/4whpV1VZl29nqqObBwFwnIX3licVPnFV5uUQx7TLx4tB9qZfbe3JmqR4NkkEmpb5LUWoXF1ek9nga0IkeSSFZ8g/0"
??????????????}
????????????]
??????????},??????????"eid":?4
????????},?
????????{??????????"group_infos":?{????????????"groups":?[
??????????????{????????????????"group_id":?43
??????????????},
??????????????{????????????????"group_id":?44
??????????????},
??????????????{????????????????"group_id":?45
??????????????},
??????????????{????????????????"group_id":?46
??????????????}
????????????],????????????"img_background":?"http://mmbiz.qpic.cn/mmbiz/4whpV1VZl29nqqObBwFwnIX3licVPnFV5uUQx7TLx4tB9qZfbe3JmqR4NkkEmpb5LUWoXF1ek9nga0IkeSSFZ8g/0"
??????????},??????????"eid":?5
????????}
??????]
????},?
????"shelf_banner":?"http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2ibrWQn8zWFUh1YznsMV0XEiavFfLzDWYyvQOBBszXlMaiabGWzz5B2KhNn2IDemHa3iarmCyribYlZYyw/0",?
????"shelf_name":?"測試貨架"}

View Code

我們根據(jù)JSON資料的定義,定義了幾個(gè)貨架控制項(xiàng)的對象,他們的關(guān)係如下所示。

C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理

我們可以根據(jù)JSON資料進(jìn)行實(shí)體對象的建模,然後有了這些對象,我們就可以進(jìn)一步定義好貨架的相關(guān)操作接口了,接口定義如下所示。

????????#region?貨架管理????????///?<summary>
????????///?增加貨架????????///?</summary>
????????///?<param name="accessToken">調(diào)用接口憑證</param>
????????///?<param name="shelfBanner">貨架招牌圖片Url</param>
????????///?<param name="shelfName">貨架名稱</param>
????????///?<param name="controls">貨架控件1,2,3,4,5類型的集合</param>
????????///?<returns></returns>
????????AddShelfResult?AddShelf(string?accessToken,?string?shelfBanner,?string?shelfName,?List<ShelfControlBase>?controls);????????///?<summary>
????????///?刪除貨架????????///?</summary>
????????///?<param name="accessToken">調(diào)用接口憑證</param>
????????///?<param name="shelfId">貨架Id</param>
????????///?<returns></returns>
????????CommonResult?DeleteShelf(string?accessToken,?int?shelfId);????????///?<summary>
????????///?修改貨架????????///?</summary>
????????///?<param name="accessToken">調(diào)用接口憑證</param>
????????///?<param name="shelfId">貨架Id</param>
????????///?<param name="shelfBanner">貨架招牌圖片Url</param>
????????///?<param name="shelfName">貨架名稱</param>
????????///?<param name="controls">貨架控件1,2,3,4,5類型的集合</param>
????????///?<returns></returns>
????????CommonResult?UpdateShelf(string?accessToken,?int?shelfId,?string?shelfBanner,?string?shelfName,?List<ShelfControlBase>?controls);????????///?<summary>
????????///?獲取所有貨架????????///?</summary>
????????///?<param name="accessToken">調(diào)用接口憑證</param>
????????///?<returns></returns>
????????List<ShelfJson>?GetAllShelf(string?accessToken);????????///?<summary>
????????///?根據(jù)貨架ID獲取貨架信息????????///?</summary>
????????///?<param name="accessToken">調(diào)用接口憑證</param>
????????///?<param name="shelfId">貨架Id</param>
????????///?<returns></returns>
????????ShelfJson?GetShelfById(string?accessToken,?int?shelfId);?

????????#endregion

有了這些接口的定義,我們就需要實(shí)現(xiàn)對應(yīng)的接口,從而實(shí)現(xiàn)我們向微信API的封裝處理了。

微信小店的貨架管理實(shí)作內(nèi)容如下所示(部分內(nèi)容,增刪改)。

????????///?<summary>
????????///?增加貨架????????///?</summary>
????????///?<param name="accessToken">調(diào)用接口憑證</param>
????????///?<param name="shelfBanner">貨架招牌圖片Url</param>
????????///?<param name="shelfName">貨架名稱</param>
????????///?<param name="controls">貨架控件1,2,3,4,5類型的集合</param>
????????///?<returns></returns>
????????public?AddShelfResult?AddShelf(string?accessToken,?string?shelfBanner,?string?shelfName,?List<ShelfControlBase>?controls)
????????{????????????var?url?=?string.Format("http://m.miracleart.cn/{0}",?accessToken);????????????var?data?=?new
????????????{
????????????????shelf_data?=?new
????????????????{
????????????????????module_infos?=?controls
????????????????},
????????????????shelf_banner?=?shelfBanner,
????????????????shelf_name?=?shelfName
????????????};????????????string?postData?=?data.ToJson();????????????return?JsonHelper<AddShelfResult>.ConvertJson(url,?postData);
????????}????????///?<summary>
????????///?刪除貨架????????///?</summary>
????????///?<param name="accessToken">調(diào)用接口憑證</param>
????????///?<param name="shelfId">貨架Id</param>
????????///?<returns></returns>
????????public?CommonResult?DeleteShelf(string?accessToken,?int?shelfId)
????????{????????????var?url?=?string.Format("http://m.miracleart.cn/{0}",?accessToken);????????????var?data?=?new
????????????{
????????????????shelf_id?=?shelfId
????????????};????????????string?postData?=?data.ToJson();????????????return?Helper.GetExecuteResult(url,?postData);
????????}????????///?<summary>
????????///?修改貨架????????///?</summary>
????????///?<param name="accessToken">調(diào)用接口憑證</param>
????????///?<param name="shelfId">貨架Id</param>
????????///?<param name="shelfBanner">貨架招牌圖片Url</param>
????????///?<param name="shelfName">貨架名稱</param>
????????///?<param name="controls">貨架控件1,2,3,4,5類型的集合</param>
????????///?<returns></returns>
????????public?CommonResult?UpdateShelf(string?accessToken,?int?shelfId,?string?shelfBanner,?string?shelfName,?List<ShelfControlBase>?controls)
????????{????????????var?url?=?string.Format("http://m.miracleart.cn/{0}",?accessToken);????????????var?data?=?new
????????????{
????????????????shelf_id?=?shelfId,
????????????????shelf_data?=?new
????????????????{
????????????????????module_infos?=?controls
????????????????},
????????????????shelf_banner?=?shelfBanner,
????????????????shelf_name?=?shelfName
????????????};????????????string?postData?=?data.ToJson();????????????return?Helper.GetExecuteResult(url,?postData);
????????}

4、微信小店貨架管理的介面測試

由於貨架管理的物件和介面定義比較複雜一些,一定需要進(jìn)行反覆的測試才能正式使用,如果不注意有可能你定義的實(shí)體類,取得不到某個(gè)欄位資訊。

我為了方便,創(chuàng)建了一個(gè)Winform項(xiàng)目,分別對各個(gè)介面進(jìn)行測試。

C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理

對於貨架管理內(nèi)容的介面測試,測試程式碼如下所示。

????????private?void?btnShelf_Click(object?sender,?EventArgs?e)
????????{
????????????IMerchantApi?api?=?new?MerchantApi();
????????????List<ShelfJson>?list?=?api.GetAllShelf(token);
????????????Console.WriteLine(list.ToJson());????????????foreach(ShelfJson?json?in?list)
????????????{
????????????????Console.WriteLine("貨架信息:");
????????????????ShelfJson?getJson?=?api.GetShelfById(token,?json.shelf_id.Value);
????????????????Console.WriteLine(getJson.ToJson());
????????????}????????????string?shelf_banner?=?"http://m.miracleart.cn/";????????????string?shelf_name?=?"測試貨架";
????????????ShelfControl1?c11?=?new?ShelfControl1(6,?202797386);????????????
????????????ShelfControl1?c12?=?new?ShelfControl1(4,?202797397);
????????????List<ShelfControlBase>?controlList?=?new?List<ShelfControlBase>(){c11,?c12};
????????????AddShelfResult?result?=?api.AddShelf(token,?shelf_banner,?shelf_name,?controlList);????????????if?(result?!=?null?&&?result.shelf_id?>?0)
????????????{
????????????????Console.WriteLine("增加的貨架信息:");
????????????????ShelfJson?getJson?=?api.GetShelfById(token,?result.shelf_id);
????????????????Console.WriteLine(getJson.ToJson());

????????????????shelf_name?=?"測試貨架-修改";
????????????????controlList?=?new?List<ShelfControlBase>(){c11};
????????????????CommonResult?updateReuslt?=?api.UpdateShelf(token,?result.shelf_id,?shelf_banner,?shelf_name,?controlList);
????????????????Console.WriteLine("修改貨架操作:{0}",?updateReuslt.Success???"成功"?:?"失敗");

????????????????CommonResult?deleteResult?=?api.DeleteShelf(token,?result.shelf_id);
????????????????Console.WriteLine("刪除貨架操作:{0}",?deleteResult.Success???"成功"?:?"失敗");
????????????}
????????}

C#開發(fā)微信門戶及應(yīng)用-微信小店貨架信息管理

?

更多C#開發(fā)微信入口網(wǎng)站及應(yīng)用-微信小店貨架資訊管理?相關(guān)文章請關(guān)注PHP中文網(wǎng)!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)