Maison > Applet WeChat > Développement WeChat > Développement C# du portail WeChat et de l'application - Gestion des informations sur les étagères du magasin WeChat

Développement C# du portail WeChat et de l'application - Gestion des informations sur les étagères du magasin WeChat

高洛峰
Libérer: 2017-02-18 09:58:55
original
1936 Les gens l'ont consulté

Dans 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.

C#开发微信门户及应用-微信小店货架信息管理

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.

C#开发微信门户及应用-微信小店货架信息管理

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.

C#开发微信门户及应用-微信小店货架信息管理

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.

C#开发微信门户及应用-微信小店货架信息管理

Le modèle d'affichage de plusieurs étagères est présenté ci-dessous.

C#开发微信门户及应用-微信小店货架信息管理 C#开发微信门户及应用-微信小店货架信息管理

C#开发微信门户及应用-微信小店货架信息管理 C#开发微信门户及应用-微信小店货架信息管理

C#开发微信门户及应用-微信小店货架信息管理

À 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.

C#开发微信门户及应用-微信小店货架信息管理

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": "测试货架"}
Copier après la connexion

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.

C#开发微信门户及应用-微信小店货架信息管理

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">调用接口凭证</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">调用接口凭证</param>
        /// <param name="shelfId">货架Id</param>
        /// <returns></returns>
        CommonResult DeleteShelf(string accessToken, int shelfId);        /// <summary>
        /// 修改货架        /// </summary>
        /// <param name="accessToken">调用接口凭证</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">调用接口凭证</param>
        /// <returns></returns>
        List<ShelfJson> GetAllShelf(string accessToken);        /// <summary>
        /// 根据货架ID获取货架信息        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="shelfId">货架Id</param>
        /// <returns></returns>
        ShelfJson GetShelfById(string accessToken, int shelfId); 

        #endregion
Copier après la connexion

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">调用接口凭证</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("//m.sbmmt.com/{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">调用接口凭证</param>
        /// <param name="shelfId">货架Id</param>
        /// <returns></returns>
        public CommonResult DeleteShelf(string accessToken, int shelfId)
        {            var url = string.Format("//m.sbmmt.com/{0}", accessToken);            var data = new
            {
                shelf_id = shelfId
            };            string postData = data.ToJson();            return Helper.GetExecuteResult(url, postData);
        }        /// <summary>
        /// 修改货架        /// </summary>
        /// <param name="accessToken">调用接口凭证</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("//m.sbmmt.com/{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);
        }
Copier après la connexion

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.

C#开发微信门户及应用-微信小店货架信息管理

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 = "//m.sbmmt.com/";            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 ? "成功" : "失败");
            }
        }
Copier après la connexion

C#开发微信门户及应用-微信小店货架信息管理

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 !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal