亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

使用c#開發公眾平臺自定義菜單功能

2020-01-24 02:50:02
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="cm.aspx.cs" Inherits="guotaotao_weixin.cm" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>test</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <asp:Literal ID="lt_msg" runat="server" ></asp:Literal>
    </div>
    </form>
</body>
</html>

復制代碼 代碼如下:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace guotaotao_weixin
{
    public partial class cm : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                weixin wx = new weixin();
                //lt_msg.Text = wx.GetAccessToken();
                lt_msg.Text = wx.DelMenu();

                lt_msg.Text += wx.SetMenu();
            }
        }
    }
}

復制代碼 代碼如下:

namespace guotaotao_weixin {

   
    public partial class cm {

        /// <summary>
        /// form1 控件。
        /// </summary>
        /// <remarks>
        /// 自動生成的字段。
        /// 若要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。
        /// </remarks>
        protected global::System.Web.UI.HtmlControls.HtmlForm form1;

        /// <summary>
        /// lt_msg 控件。
        /// </summary>
        /// <remarks>
        /// 自動生成的字段。
        /// 若要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。
        /// </remarks>
        protected global::System.Web.UI.WebControls.Literal lt_msg;
    }
}

復制代碼 代碼如下:

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using guotaotao_weixin.database;
using guotaotao.database;

namespace guotaotao_weixin
{
    public class guotaotao
    {
        private string _content = "";
        private string _FromUserName = "";
        public int msgType = 0;
        public int isFirst = 0;
        public int pid = 0;

        #region "構造函數"
            public guotaotao()
            {
            }
            public guotaotao(string content)
            {
                this._content = content;
            }
            public guotaotao(string content,string FromUserName)
            {
                this._content = content;
                this._FromUserName = FromUserName;
            }
        #endregion

        
        public string createMenuDate()
        {
            string postData = "{" + "/r/n";
            postData += "/"button/":[ " + "/r/n";
            postData += "{ " + "/r/n";
            postData += "/"name/":/"產品/"," + "/r/n";
            postData += "/"sub_button/":[" + "/r/n";
            postData += "{ " + "/r/n";
            postData += "   /"type/":/"click/"," + "/r/n";
            postData += "   /"name/":/"無糖系列/", " + "/r/n";
            postData += "   /"key/":/"gtt_menu_001001/"" + "/r/n";
            postData += "}," + "/r/n";
            postData += "{ " + "/r/n";
            postData += "   /"type/":/"click/"," + "/r/n";
            postData += "   /"name/":/"干果系列/", " + "/r/n";
            postData += "   /"key/":/"gtt_menu_001002/"" + "/r/n";
            postData += "}," + "/r/n";
            postData += "{ " + "/r/n";
            postData += "   /"type/":/"click/"," + "/r/n";
            postData += "   /"name/":/"休閑系列/", " + "/r/n";
            postData += "   /"key/":/"gtt_menu_001003/"" + "/r/n";
            postData += "}," + "/r/n";
            postData += "{ " + "/r/n";
            postData += "   /"type/":/"click/"," + "/r/n";
            postData += "   /"name/":/"兒童系列/", " + "/r/n";
            postData += "   /"key/":/"gtt_menu_001004/"" + "/r/n";
            postData += " }]" + "/r/n";
            postData += "}," + "/r/n";
            postData += "{" + "/r/n";
            postData += "/"name/":/"活動/", " + "/r/n";
            postData += "/"sub_button/":[" + "/r/n";
            postData += "{ " + "/r/n";
            postData += "   /"type/":/"click/"," + "/r/n";
            postData += "   /"name/":/"抽獎/", " + "/r/n";
            postData += "   /"key/":/"gtt_menu_002001/"" + "/r/n";
            postData += "}," + "/r/n";
            postData += "{ " + "/r/n";
            postData += "   /"type/":/"view/"," + "/r/n";
            postData += "   /"name/":/"獲獎名單/", " + "/r/n";
            postData += "   /"url/":/"http://www.aaa.com/apps/honor_list.aspx/"" + "/r/n";
            postData += "}," + "/r/n";
            postData += "{ " + "/r/n";
            postData += "   /"type/":/"click/"," + "/r/n";
            postData += "   /"name/":/"優惠券/", " + "/r/n";
            postData += "   /"key/":/"gtt_menu_002003/"" + "/r/n";
            postData += " }]" + "/r/n";
            postData += "}," + "/r/n";
            postData += "{" + "/r/n";
            postData += "/"name/":/"幫助/"," + "/r/n";
            postData += "/"sub_button/":[" + "/r/n";
            postData += "{ " + "/r/n";
            postData += "   /"type/":/"view/"," + "/r/n";
            postData += "   /"name/":/"關于我們/", " + "/r/n";
            postData += "   /"url/":/"http://www.aaa.com/apps/aboutus.aspx/"" + "/r/n";
            postData += "}," + "/r/n";
            postData += "{ " + "/r/n";
            postData += "   /"type/":/"view/"," + "/r/n";
            postData += "   /"name/":/"聯系我們/", " + "/r/n";
            postData += "   /"url/":/"http://www.aaa.com/apps/contactus.aspx/"" + "/r/n";
            postData += "}," + "/r/n";
            postData += "{ " + "/r/n";
            postData += "   /"type/":/"view/"," + "/r/n";
            postData += "   /"name/":/"查詢訂單/", " + "/r/n";
            postData += "   /"url/":/"http://www.aaa.com/apps/orders_chaxun.aspx/"" + "/r/n";
            postData += "}," + "/r/n";
            postData += "{ " + "/r/n";
            postData += "   /"type/":/"view/"," + "/r/n";
            postData += "   /"name/":/"留言反饋/", " + "/r/n";
            postData += "   /"url/":/"http://www.aaa.com/apps/feedback.aspx/"" + "/r/n";
            postData += " }]" + "/r/n";
            postData += "}]" + "/r/n";
            postData += "}" + "/r/n";

            return postData;
        }

    }
}


菜單中的URL地址換成自己的

復制代碼 代碼如下:

using System;
using System.Web.Security;
using System.Xml;
using aaa_weixin.database;
using Newtonsoft.Json;

namespace aaa_weixin
{
    public class weixin
    {
        private string Token = ""; //微信里面開發者模式Token
        private string devlopID = "";//微信里面開發者模式:開發者ID
        private string devlogPsw = "";//微信里面開發者模式: 開發者密碼
        public string AccessToken = ""; //獲取的通行證

        public void Auth()
        {
            string echoStr = System.Web.HttpContext.Current.Request.QueryString["echoStr"];
            if (CheckSignature())
            {
                if (!string.IsNullOrEmpty(echoStr))
                {
                    System.Web.HttpContext.Current.Response.Write(echoStr);
                    System.Web.HttpContext.Current.Response.End();
                }
            }
        }

        public string GetAccessToken() //獲取通行證
        {           
            string url_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + devlopID + "&secret=" + devlogPsw;
            string result = func.webRequestGet(url_token);
            accessToken deserializedProduct = (accessToken)JsonConvert.DeserializeObject(result, typeof(accessToken));
            this.AccessToken  = deserializedProduct.access_Token;
            return this.AccessToken;
        }

        public string GetMenu() //獲取當前菜單情況
        {
            string url_Menu_Get = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=" + this.AccessToken;
            string output = func.webRequestGet(url_Menu_Get);
            //wxErr deserializedProduct = (wxErr)JsonConvert.DeserializeObject(output, typeof(wxErr));
            //return deserializedProduct.errmsg;
            return output;
        }

        public string SetMenu() //設置最新菜單
        {
            string url_Menu_Create = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + this.GetAccessToken();

            aaa gtt = new aaa();
            string postData = gtt.createMenuDate();
            string result = func.webRequestPost(url_Menu_Create,postData);

            return result;
        }

        public string DelMenu() //刪除菜單
        {
            string url_Menu_Delete = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" + this.GetAccessToken();
            string result = func.webRequestGet(url_Menu_Delete);

            return result;
        }
        /// <summary>
        /// 驗證微信簽名
        /// </summary>
        /// * 將token、timestamp、nonce三個參數進行字典序排序
        /// * 將三個參數字符串拼接成一個字符串進行sha1加密
        /// * 開發者獲得加密后的字符串可與signature對比,標識該請求來源于微信。
        /// <returns></returns>
        private bool CheckSignature()
        {
            string signature = System.Web.HttpContext.Current.Request.QueryString["signature"];
            string timestamp = System.Web.HttpContext.Current.Request.QueryString["timestamp"];
            string nonce = System.Web.HttpContext.Current.Request.QueryString["nonce"];
            string[] ArrTmp = { Token, timestamp, nonce };
            Array.Sort(ArrTmp);     //字典排序
            string tmpStr = string.Join("", ArrTmp);
            tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
            tmpStr = tmpStr.ToLower();
            if (tmpStr == signature)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

    }

    public class wxErr
    {
        private int Errcode;
        public int errcode
        {
            get { return Errcode; }
            set { Errcode = value; }
        }

        private string Errmsg;
        public string errmsg
        {
            get { return Errmsg; }
            set { Errmsg = value; }
        }
    }
    public class accessToken
    {
        private string access_token;
        public string access_Token
        {
            get { return access_token; }
            set { access_token = value; }
        }
        private int expires_in;
        public int expires_In
        {
            get { return expires_in; }
            set { expires_in = value; }
        }
    }

 }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电影免费观看在线观看| 亚洲欧美资源在线| 亚洲偷熟乱区亚洲香蕉av| 日韩最新中文字幕电影免费看| 欧美日韩精品在线| 亚洲免费av电影| 亚洲人成网站999久久久综合| 亚洲精品一二区| 国产精品毛片a∨一区二区三区|国| 97超级碰在线看视频免费在线看| 亚洲天堂日韩电影| 亚洲视频国产视频| 欧美精品制服第一页| 亚洲丝袜在线视频| 91大神在线播放精品| 黑人巨大精品欧美一区二区| 亚洲欧洲一区二区三区久久| 亚洲精品日韩激情在线电影| 国产精品aaaa| 高清视频欧美一级| 欧美第一淫aaasss性| 日韩在线观看成人| 成人免费网站在线| 亚洲精品一区av在线播放| 欧美中文字幕在线观看| 国产偷亚洲偷欧美偷精品| 国产丝袜精品视频| 精品自在线视频| 91精品国产成人| 国产精品扒开腿做| 亚洲综合自拍一区| 日韩欧美在线中文字幕| 奇米成人av国产一区二区三区| 国产精品444| 国产欧美一区二区三区在线| 7777kkkk成人观看| 亚洲激情中文字幕| 欧美高清一级大片| 国产精品久久久久久超碰| 日韩精品中文字幕在线观看| 欧美激情欧美激情| 亚洲伊人成综合成人网| 午夜美女久久久久爽久久| 国产视频综合在线| 亚洲第一天堂无码专区| 亚洲综合中文字幕在线| 欧美高清自拍一区| 91麻豆桃色免费看| 97视频在线观看成人| 国产精品99久久久久久人| 国产精品18久久久久久麻辣| 亚洲国产成人在线视频| 92版电视剧仙鹤神针在线观看| 韩国一区二区电影| 久久成年人视频| 欧美视频国产精品| 日韩在线观看免费全集电视剧网站| 青草青草久热精品视频在线网站| 欧美性受xxxx黑人猛交| 国产成人精品av| 欧美与欧洲交xxxx免费观看| 成人网址在线观看| 国产在线精品自拍| 欧美黄色小视频| 最近2019中文字幕mv免费看| 国产亚洲精品激情久久| 亚洲精品国产精品乱码不99按摩| 最近中文字幕2019免费| 国产精品高潮粉嫩av| 国产精品吊钟奶在线| 亚洲a级在线播放观看| 国产精品一区久久| 亚洲a成v人在线观看| 国产亚洲精品久久久久久777| 亚洲free性xxxx护士hd| 国产91精品久久久久久久| 欧美二区乱c黑人| 国产有码在线一区二区视频| 91欧美精品午夜性色福利在线| 亚洲欧美国产视频| 欧美激情综合色| 欧美猛交ⅹxxx乱大交视频| 91久久综合亚洲鲁鲁五月天| 自拍视频国产精品| 欧美激情极品视频| 国产精品影院在线观看| 精品国产户外野外| 久久视频在线视频| 国产精品白丝av嫩草影院| 欧美性生活大片免费观看网址| 欧美黑人巨大xxx极品| 亚洲国产成人爱av在线播放| 中文字幕精品一区久久久久| 国产欧美日韩高清| 日韩小视频网址| 欧美天堂在线观看| 亚洲一区国产精品| 欧美日韩激情小视频| 日韩av黄色在线观看| 91久久在线观看| 欧美国产视频日韩| 亚洲午夜精品久久久久久性色| 亚洲欧美一区二区三区情侣bbw| 国产婷婷成人久久av免费高清| 中文字幕视频一区二区在线有码| 日韩中文字幕不卡视频| 欧美极品在线播放| 欧美巨乳美女视频| 国产精品久久久久福利| 亚洲aⅴ日韩av电影在线观看| www.日韩视频| 最新国产成人av网站网址麻豆| 久久亚洲精品国产亚洲老地址| 国产成+人+综合+亚洲欧美丁香花| 孩xxxx性bbbb欧美| 久久91精品国产91久久跳| 亚洲第一视频网| 亚洲人成伊人成综合网久久久| 成人在线中文字幕| 久久91亚洲人成电影网站| 精品无人区太爽高潮在线播放| 欧美专区日韩视频| 国产成人福利夜色影视| 亚洲综合国产精品| 成人免费视频a| 亚洲精品之草原avav久久| 成人欧美一区二区三区黑人| 日韩欧美国产网站| 国产成人亚洲综合91| 欧美精品在线观看| 日韩免费中文字幕| 欧美激情国产日韩精品一区18| 久久久伊人日本| 超碰日本道色综合久久综合| 久久人人爽人人爽人人片亚洲| 亚洲美女动态图120秒| 亚洲精品国产电影| 欧美做受高潮1| 中文字幕精品www乱入免费视频| 国产精品久久久久久久久粉嫩av| 欧美多人爱爱视频网站| 日本高清视频一区| 日韩电影在线观看永久视频免费网站| 欧美视频在线观看免费| 久久这里只有精品99| 亚洲肉体裸体xxxx137| 亚洲一区二区三区在线免费观看| 久久久噜噜噜久久久| 国产成人亚洲综合青青| 欧美激情a在线| 亚洲欧美国产高清va在线播| 国产一区二区三区毛片| 久久九九国产精品怡红院| 欧美日韩性视频| 欧美亚洲另类制服自拍| 久久精品成人一区二区三区| 久久精品91久久香蕉加勒比| 色综合久综合久久综合久鬼88| 久久综合色影院| 国产91在线播放精品91| 狠狠干狠狠久久| 国语自产在线不卡| 欧美大片免费看| 亚洲日本成人女熟在线观看|