C#微信小程序訂閱消息

小程序訂閱消息官方配置教程文檔鏈接:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html

wxml頁面代碼:

<view>

<button class="btn" type="primary" bindtap="subscribe">訂閱消息</button>

</view>

js頁面代碼:

subscribe: function(e) {

wx.requestSubscribeMessage({

tmplIds: ['XXXXXXXXXXXXXXXXXXX'],//模板id

success:function(res){

wx.request({

            url: 'xxxxxxxxxxxxxxxxxxxxxxxxx',//接口地址

            data: { },

            success: function(res) {

                 console.log("訂閱成功");

            }

          });

        }

    })

}

後端代碼(C#)(這裏我以“天氣提醒”模板爲示例,在接口中寫了一個方法如下):

#region 發送訂閱消息===============================

        /// <summary>

        /// 發送訂閱消息

       /// <param name="touser">用戶openid</param>

        /// <param name="city">城市</param>

        /// <param name="location">地址</param>

        /// <param name="weather">天氣</param>

        /// <returns>返回值{"errcode":0,"errmsg":"ok"}</returns>

        /// </summary>

        public void Send_Subscribe(string touser, string city, string location, string weather)

        {

            string access_token = "Access_Token";//Access_Token

            string _url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + access_token;

            string timenow = Convert.ToDateTime(DateTime.Now).ToString("yyyy年MM月dd日");

            //json參數

            string jsonParam = "{\"touser\": \"" + touser + "\",\"template_id\": \"XXXXXXXXXXXXXX\",\"page\": \"pages/weather/weather\",\"data\": {\"date1\": { \"value\": \"" + timenow + "\"},\"phrase2\": {\"value\": \"" + city + "\"},\"phrase3\": {\"value\": \"" + location + "\"},\"character_string4\": {\"value\": \"" + weather + "\"}}}";

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_url);

            request.Method = "POST";

            request.Timeout = 5000;

            request.ContentType = "application/json;charset=UTF-8";

            byte[] byteData = Encoding.UTF8.GetBytes(jsonParam);

            int length = byteData.Length;

            request.ContentLength = length;

            using (Stream writer = request.GetRequestStream())

            {

                writer.Write(byteData, 0, length);

                writer.Close();

            }

            string jsonStrings = string.Empty;

            using (HttpWebResponse responses = (HttpWebResponse)request.GetResponse())

            {

                using (Stream streams = responses.GetResponseStream())

                {

                    using (StreamReader readers = new StreamReader(streams, System.Text.Encoding.UTF8))

                    {

                        jsonStrings = readers.ReadToEnd();

                        responses.Close();

                        streams.Close();

                        readers.Close();

                    }

                }

            }

            //{"errcode":0,"errmsg":"ok"}

            JObject jo = (JObject)JsonConvert.DeserializeObject(jsonStrings);

            string errcode = jo["errcode"].ToString();

            string errmsg = jo["errmsg"].ToString();

            //寫日誌

            LogUtils.Write(errcode + "," + errmsg);

        }

        #endregion

 

示例:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章