欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#微信公眾號開發(fā)之用戶管理

 更新時間:2022年06月15日 14:39:56   作者:艾三元  
這篇文章介紹了C#微信公眾號開發(fā)之用戶管理,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言:

微信公眾號提供了用戶和用戶組的管理,我們可以在微信公眾號官方里面進行操作,添加備注和標(biāo)簽,以及移動用戶組別,同時,微信公眾號提供了相應(yīng)的接口方便我們調(diào)用,可方便的把用戶同步到本地,這樣我們可以自己為用戶定義更多的信息,以及與本地的業(yè)務(wù)更好的對接起來。以方便做各種應(yīng)用分析。所以本節(jié)內(nèi)容主要是用戶和用戶組的管理。

開始:

一、用戶關(guān)注與退訂事件:

在之前的消息處理中,我們在UserMessageHandler.cs,需要繼承Senparc.Weixin.MP.MessageHandlers<TC>這個抽象類,并重寫所有方法,在這里面,我們可以添加2個事件,一個是用戶關(guān)注時候觸發(fā)事件,一個是退訂時候觸發(fā)事件

        public override IResponseMessageBase OnEvent_ScanRequest(RequestMessageEvent_Scan requestMessage)
        {
            //通過掃描關(guān)注
            var responseMessage = CreateResponseMessage<ResponseMessageText>();
            responseMessage.Content = responseMessage.Content ?? string.Format("通過掃描二維碼進入,場景值:{0}", requestMessage.EventKey);
            return responseMessage;
        }

        /// <summary>
        /// 訂閱(關(guān)注)事件
        /// </summary>
        /// <returns></returns>
        public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage)
        {
            var responseMessage = base.CreateResponseMessage<ResponseMessageText>();
            responseMessage.Content = "歡迎關(guān)注";
            return responseMessage;
        }

        /// <summary>
        /// 退訂
        /// 實際上用戶無法收到非訂閱賬號的消息,所以這里可以隨便寫。
        /// unsubscribe事件的意義在于及時刪除網(wǎng)站應(yīng)用中已經(jīng)記錄的OpenID綁定,消除冗余數(shù)據(jù)。并且關(guān)注用戶流失的情況。
        /// </summary>
        /// <returns></returns>
        public override IResponseMessageBase OnEvent_UnsubscribeRequest(RequestMessageEvent_Unsubscribe requestMessage)
        {
            var responseMessage = base.CreateResponseMessage<ResponseMessageText>();
            responseMessage.Content = "有空再來";
            return responseMessage;
        }

二、設(shè)計數(shù)據(jù)庫

根據(jù)微信公眾號開發(fā)文檔,用戶管理對應(yīng)字段而建立,基本與官方提供的用戶信息是一樣的

建立用戶組管理表(WX_Group)和用戶表(WX_User)

三、提交同步數(shù)據(jù)

接口的實現(xiàn)方式我們使用了開源的Senparc.Weixin提供的專業(yè)的微信操作SDK來快速完成操作,在Senparc WX SDK下的Senparc.Weixin.MP.AdvancedAPIs ,通過OpenID到公眾號同步到數(shù)據(jù),再將本地數(shù)據(jù)修改。

        /// <summary>
        /// 同步數(shù)據(jù)
        /// </summary>
        /// <param name="id">用戶id</param>
        /// <param name="officeId">對應(yīng)的公眾號id</param>
        /// <returns></returns>
        [HttpPost]
        [SupportFilter]
        public JsonResult SyncUser(string id,string officeId)
        {
            if (!string.IsNullOrWhiteSpace(id))
            {
                //填充數(shù)據(jù)
                string[] arrs = id.Split(',');
                List<BatchGetUserInfoData> list = new List<BatchGetUserInfoData>();
                foreach (var m in arrs)
                {
                    list.Add(new BatchGetUserInfoData() {
                        openid = m,
                        lang = "zh-CN",
                        LangEnum = Senparc.Weixin.Language.zh_CN
                    });
                }

                //批量同步數(shù)據(jù)
                WC_OfficalAccountsModel accountModel =  account_BLL.GetById(officeId);
                var batchList =  Senparc.Weixin.MP.AdvancedAPIs.UserApi.BatchGetUserInfo(accountModel.AccessToken, list);
                foreach (var info in batchList.user_info_list)
                {
                    WC_UserModel userModel = m_BLL.GetById(info.openid);
                    if (userModel != null)
                    {
                        userModel.City = info.city;
                        userModel.OpenId = info.openid;
                        userModel.Id = info.openid;
                        userModel.HeadImgUrl = info.headimgurl;
                        userModel.Language = info.language;
                        userModel.NickName = info.nickname;
                        userModel.Province = info.province;
                        userModel.Sex = info.sex;
                        m_BLL.Edit(ref errors, userModel);
                    }
                }

                LogHandler.WriteServiceLog(GetUserId(), "Ids:" + id, "成功", "刪除", "WX_User");
                return Json(JsonHandler.CreateMessage(1, Resource.SaveSucceed));
            }
            else
            {
                return Json(JsonHandler.CreateMessage(0, Resource.SaveFail));
            }
        }

通過以上方式,將用戶和分組的方式同步提交,實現(xiàn)用戶的分組。

總結(jié):

1.實現(xiàn)用戶的分組,能更好的對關(guān)注者進行管理和分析業(yè)務(wù)應(yīng)用

2.使用了開源的Senparc.Weixin,可以快速的實現(xiàn)分組和同步數(shù)據(jù)

3.參考官網(wǎng)示例源代碼

到此這篇關(guān)于C#微信公眾號開發(fā)之用戶管理的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# Winform調(diào)用百度接口實現(xiàn)人臉識別教程(附源碼)

    C# Winform調(diào)用百度接口實現(xiàn)人臉識別教程(附源碼)

    這篇文章主要介紹了C# Winform調(diào)用百度接口實現(xiàn)人臉識別教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • LINQ基礎(chǔ)之Intersect、Except和Distinct子句

    LINQ基礎(chǔ)之Intersect、Except和Distinct子句

    這篇文章介紹了LINQ使用Intersect、Except和Distinct子句的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • DataGridView實現(xiàn)點擊列頭升序和降序排序

    DataGridView實現(xiàn)點擊列頭升序和降序排序

    這篇文章介紹了DataGridView實現(xiàn)點擊列頭升序和降序排序的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • vista和win7在windows服務(wù)中交互桌面權(quán)限問題解決方法:穿透Session 0 隔離

    vista和win7在windows服務(wù)中交互桌面權(quán)限問題解決方法:穿透Session 0 隔離

    服務(wù)(Service)對于大家來說一定不會陌生,它是Windows 操作系統(tǒng)重要的組成部分。我們可以把服務(wù)想像成一種特殊的應(yīng)用程序,它隨系統(tǒng)的“開啟~關(guān)閉”而“開始~停止”其工作內(nèi)容,在這期間無需任何用戶參與
    2016-04-04
  • C#使用HttpWebRequest重定向方法詳解

    C#使用HttpWebRequest重定向方法詳解

    在本篇內(nèi)容里小編給讀者們整理了關(guān)于C#使用HttpWebRequest重定向方法和相關(guān)知識點,需要的朋友們參考下。
    2019-03-03
  • C#實現(xiàn)將RTF轉(zhuǎn)為HTML的示例代碼

    C#實現(xiàn)將RTF轉(zhuǎn)為HTML的示例代碼

    RTF文檔即富文本格式(Rich?Text?Format)的文檔。我們在處理文件時,遇到需要對文檔格式進行轉(zhuǎn)換時,可以將RTF轉(zhuǎn)為其他格式,如轉(zhuǎn)為DOCX/DOC、PDF或者HTML。本文將利用C#實現(xiàn)RTF轉(zhuǎn)HTML,需要的可以參考一下
    2022-04-04
  • Unity UGUI的ContentSizeFitter內(nèi)容尺寸適應(yīng)器組件使用示例

    Unity UGUI的ContentSizeFitter內(nèi)容尺寸適應(yīng)器組件使用示例

    這篇文章主要為大家介紹了Unity UGUI的ContentSizeFitter內(nèi)容尺寸適應(yīng)器組件使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • WPF InkCanvas繪制矩形和橢圓

    WPF InkCanvas繪制矩形和橢圓

    這篇文章主要為大家詳細(xì)介紹了WPF InkCanvas繪制矩形和橢圓,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • C#實現(xiàn)類似新浪微博長URL轉(zhuǎn)短地址的方法

    C#實現(xiàn)類似新浪微博長URL轉(zhuǎn)短地址的方法

    這篇文章主要介紹了C#實現(xiàn)類似新浪微博長URL轉(zhuǎn)短地址的方法,涉及C#操作正則表達(dá)式的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#適用于like語句的SQL格式化函數(shù)

    C#適用于like語句的SQL格式化函數(shù)

    這篇文章主要介紹了C#適用于like語句的SQL格式化函數(shù),可實現(xiàn)對字符串進行sql格式化,并且符合like查詢的格式,非常實用,需要的朋友可以參考下
    2014-10-10

最新評論