最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用c#開(kāi)發(fā)公眾平臺(tái)自定義菜單功能

 更新時(shí)間:2014年01月24日 14:35:15   作者:  
微信公眾平臺(tái)服務(wù)號(hào)開(kāi)放了自定義菜單API,本案例介紹C#開(kāi)發(fā)微信公眾號(hào)自定義菜單功能。在此基礎(chǔ)上可以開(kāi)發(fā)更完善的自定義菜單管理功能

復(fù)制代碼 代碼如下:

<%@ 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>

復(fù)制代碼 代碼如下:

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();
            }
        }
    }
}

復(fù)制代碼 代碼如下:

namespace guotaotao_weixin {

   
    public partial class cm {

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

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

復(fù)制代碼 代碼如下:

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 "構(gòu)造函數(shù)"
            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\":\"產(chǎn)品\"," + "\r\n";
            postData += "\"sub_button\":[" + "\r\n";
            postData += "{ " + "\r\n";
            postData += "   \"type\":\"click\"," + "\r\n";
            postData += "   \"name\":\"無(wú)糖系列\(zhòng)", " + "\r\n";
            postData += "   \"key\":\"gtt_menu_001001\"" + "\r\n";
            postData += "}," + "\r\n";
            postData += "{ " + "\r\n";
            postData += "   \"type\":\"click\"," + "\r\n";
            postData += "   \"name\":\"干果系列\(zhòng)", " + "\r\n";
            postData += "   \"key\":\"gtt_menu_001002\"" + "\r\n";
            postData += "}," + "\r\n";
            postData += "{ " + "\r\n";
            postData += "   \"type\":\"click\"," + "\r\n";
            postData += "   \"name\":\"休閑系列\(zhòng)", " + "\r\n";
            postData += "   \"key\":\"gtt_menu_001003\"" + "\r\n";
            postData += "}," + "\r\n";
            postData += "{ " + "\r\n";
            postData += "   \"type\":\"click\"," + "\r\n";
            postData += "   \"name\":\"兒童系列\(zhòng)", " + "\r\n";
            postData += "   \"key\":\"gtt_menu_001004\"" + "\r\n";
            postData += " }]" + "\r\n";
            postData += "}," + "\r\n";
            postData += "{" + "\r\n";
            postData += "\"name\":\"活動(dòng)\", " + "\r\n";
            postData += "\"sub_button\":[" + "\r\n";
            postData += "{ " + "\r\n";
            postData += "   \"type\":\"click\"," + "\r\n";
            postData += "   \"name\":\"抽獎(jiǎng)\", " + "\r\n";
            postData += "   \"key\":\"gtt_menu_002001\"" + "\r\n";
            postData += "}," + "\r\n";
            postData += "{ " + "\r\n";
            postData += "   \"type\":\"view\"," + "\r\n";
            postData += "   \"name\":\"獲獎(jiǎng)名單\", " + "\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\":\"優(yōu)惠券\", " + "\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\":\"關(guān)于我們\", " + "\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\":\"聯(lián)系我們\", " + "\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\":\"查詢(xún)訂單\", " + "\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地址換成自己的

復(fù)制代碼 代碼如下:

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 = ""; //微信里面開(kāi)發(fā)者模式Token
        private string devlopID = "";//微信里面開(kāi)發(fā)者模式:開(kāi)發(fā)者ID
        private string devlogPsw = "";//微信里面開(kāi)發(fā)者模式: 開(kāi)發(fā)者密碼
        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() //獲取當(dāng)前菜單情況
        {
            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() //設(shè)置最新菜單
        {
            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>
        /// 驗(yàn)證微信簽名
        /// </summary>
        /// * 將token、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序
        /// * 將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密
        /// * 開(kāi)發(fā)者獲得加密后的字符串可與signature對(duì)比,標(biāo)識(shí)該請(qǐng)求來(lái)源于微信。
        /// <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; }
        }
    }

 }

相關(guān)文章

  • C# 中用 Sqlparameter 的兩種用法

    C# 中用 Sqlparameter 的兩種用法

    這篇文章主要介紹了C# 中用 Sqlparameter 的幾種用法,文中給大家列舉了兩種用法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • C#圖片按比例縮放實(shí)例

    C#圖片按比例縮放實(shí)例

    這篇文章主要為大家詳細(xì)介紹了C#圖片按比例縮放的實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • WPF實(shí)現(xiàn)動(dòng)畫(huà)效果(一)之基本概念

    WPF實(shí)現(xiàn)動(dòng)畫(huà)效果(一)之基本概念

    這篇文章介紹了WPF實(shí)現(xiàn)動(dòng)畫(huà)效果之基本概念,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 完成OSS.Http底層HttpClient重構(gòu)封裝 支持標(biāo)準(zhǔn)庫(kù)

    完成OSS.Http底層HttpClient重構(gòu)封裝 支持標(biāo)準(zhǔn)庫(kù)

    OSS.Http項(xiàng)目對(duì)于.Net Standard標(biāo)準(zhǔn)庫(kù)的支持已經(jīng)遷移完畢,OSS開(kāi)源系列兩個(gè)最底層的類(lèi)庫(kù)已經(jīng)具備跨運(yùn)行時(shí)支持的能力。本篇文章主要包含 1. HttpClient的介紹,2. 重構(gòu)的思路, 3. 容易遇到的問(wèn)題。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • C#與Java的MD5簡(jiǎn)單驗(yàn)證(實(shí)例代碼)

    C#與Java的MD5簡(jiǎn)單驗(yàn)證(實(shí)例代碼)

    下面小編就為大家?guī)?lái)一篇C#與Java的MD5簡(jiǎn)單驗(yàn)證(實(shí)例代碼)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • 為IObservable實(shí)現(xiàn)自己的運(yùn)算符(詳解)

    為IObservable實(shí)現(xiàn)自己的運(yùn)算符(詳解)

    下面小編就為大家?guī)?lái)一篇為IObservable實(shí)現(xiàn)自己的運(yùn)算符(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • C#判斷三角形的類(lèi)型

    C#判斷三角形的類(lèi)型

    這篇文章主要介紹了C#判斷三角形的類(lèi)型的方法,通過(guò)輸入三角形的三條邊長(zhǎng),判斷是否能構(gòu)成一個(gè)三角形,感興趣的小伙伴們可以參考一下
    2015-11-11
  • .NET程序頁(yè)面中,操作并輸入cmd命令的小例子

    .NET程序頁(yè)面中,操作并輸入cmd命令的小例子

    .NET程序頁(yè)面中,操作并輸入cmd命令的小例子,需要的朋友可以參考一下
    2013-03-03
  • C#數(shù)字圖像處理之圖像縮放的方法

    C#數(shù)字圖像處理之圖像縮放的方法

    這篇文章主要介紹了C#數(shù)字圖像處理之圖像縮放的方法,涉及C#針對(duì)圖像的縮放技巧,需要的朋友可以參考下
    2015-04-04
  • 詳解WCF服務(wù)中的svc文件

    詳解WCF服務(wù)中的svc文件

    本文詳細(xì)講解了WCF服務(wù)中的svc文件,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論

宣城市| 汨罗市| 施甸县| 浪卡子县| 泗洪县| 光山县| 台中县| 扎鲁特旗| 三门县| 阿克苏市| 深州市| 迁安市| 柳河县| 安图县| 吕梁市| 德州市| 永德县| 龙门县| 绥宁县| 宁国市| 文化| 阜新| 德格县| 奉节县| 台湾省| 长白| 屯昌县| 宁夏| 竹山县| 光泽县| 广汉市| 小金县| 海南省| 蓬溪县| 沂南县| 集安市| 泊头市| 财经| 武宣县| 延寿县| 玉门市|