


Développement C# du portail WeChat et de l'application - Gestion des informations sur les étagères du magasin WeChat
Feb 18, 2017 am 09:58 AMDans l'article précédent de la série WeChat Store ? Développement C# du portail et de l'application WeChat (22) - Développement et utilisation du WeChat Store ?, certaines connaissances de base du WeChat Store sont introduites, ainsi que ? Développement C# du portail et de l'application WeChat ?. (23) -Encapsulation et test de l'interface de gestion des produits du magasin WeChat" détaille la définition de l'interface, la mise en ?uvre et les tests des produits du magasin WeChat. Cet article présente principalement la gestion des informations sur les étagères du magasin WeChat. Ce module est le plus complexe et le plus difficile à comprendre parmi les objets du magasin WeChat. Sa modélisation d'objet nécessite des tests répétés avant de pouvoir être perfectionné. Par conséquent, ce module de gestion d'étagères peut être considéré comme le plus technique.
1. Introduction aux étagères des magasins WeChat
En arrière-plan du compte officiel WeChat, les informations sur les étagères peuvent être conservées et l'interface est la suivante. Le concept d'une étagère est de présenter des produits par catégories aux clients. Une étagère est similaire à une vitrine bien aménagée. Nous pouvons définir différentes étagères puis publier différentes URL pour l'expérience.
De plus, nous créons généralement des étagères basées sur la bibliothèque de modèles d'étagères. Le modèle d'étagère nous permet de construire rapidement une étagère et fournit une interface de référence visuelle. est montré ci-dessous.
2. Modèle de développement de la gestion des rayons
Pour le développement des magasins WeChat utilisant l'API, l'interface d'opération de gestion des rayons de WeChat magasins, il est similaire à un module ordinaire et comporte les opérations fonctionnelles suivantes.
Bien qu'elles ressemblent au modèle objet précédent, les informations de l'étagère sont très complexes, donc si vous devez les restaurer dans un objet entité basé sur des données Json, vous avez besoin pour le répéter Considérez-le attentivement, sinon il est facile de modéliser des erreurs.
Correspond au modèle d'étagère de l'interface de gestion de magasin WeChat. Les informations d'objet de l'étagère comprennent 5 modèles de contr?le différents, et certains d'entre eux peuvent être utilisés en combinaison.
Le modèle d'affichage de plusieurs étagères est présenté ci-dessous.
à travers les 5 modèles de contr?le ci-dessus, nous pouvons voir qu'ils représentent respectivement différents effets de disposition et peuvent être utilisés en combinaison sur les étagères.
3. Modélisation objet des informations d'étagère
Selon la description de l'interface du magasin WeChat, les informations d'objet d'entité d'étagère que nous avons finalement définies sont très riches et flexibles en termes de contenu.
En nous référant à la description de l'API de la boutique WeChat, nous pouvons voir que les données JSON des informations d'étagère sont très complexes, et la définition spécifique est la suivante.
{????"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":?"測試貨架"}
Voir le code
Nous nous basons sur la définition des données JSON, plusieurs objets de contr?le d'étagère sont définis et leurs relations sont les suivantes.
Nous pouvons modéliser des objets d'entité basés sur des données JSON. Ensuite, avec ces objets, nous pouvons définir plus en détail les interfaces de fonctionnement pertinentes des étagères. La définition de l'interface est la suivante.
????????#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
Avec la définition de ces interfaces, nous devons implémenter les interfaces correspondantes pour réaliser notre encapsulation vers l'API WeChat.
Le contenu de la mise en ?uvre de la gestion des rayons de la boutique WeChat est le suivant (une partie du contenu, des ajouts, des suppressions et des modifications).
????????///?<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. Test d'interface de la gestion des rayons du magasin WeChat
La définition de l'objet et de l'interface de la gestion des rayons étant plus compliquée, Doit être Il nécessite des tests répétés avant de pouvoir être officiellement utilisé. Si vous n'y prêtez pas attention, il est possible que la classe d'entité que vous avez définie ne puisse pas obtenir certaines informations de champ.
Pour plus de commodité, j'ai créé un projet Winform pour tester chaque interface séparément.
Pour le test d'interface des contenus de gestion des rayons, le code de test est le suivant.
????????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???"成功"?:?"失敗"); ????????????} ????????}
Plus de développement C# des portails et applications WeChat - Informations sur les étagères des magasins WeChat Pour articles liés à la gestion, veuillez faire attention au site Web PHP chinois !

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)