Heim > Web-Frontend > js-Tutorial > Hauptteil

.NET微信公众号开发之创建自定义菜单_javascript技巧

WBOY
Freigeben: 2016-05-16 15:50:00
Original
1365 人浏览过

一.前言

开发之前,我们需要阅读官方的接口说明文档,不得不吐槽一下,微信的这个官方文档真的很烂,但是,为了开发我们需要的功能,我们也不得不去看这些文档.

接口文档地址:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html

看了这些个文档,基本意思明白了,就是我们把我们要创建的菜单创建好,post到微信的服务器上面,微信服务器然后给我们一些状态码,从而判断我们的菜单是否创建成功,只是在发送json数据以前我们要做一些身份验证。

二.准备工作

首先把我们要创建的菜单写在一个txt文本中:

 {
   "button":[
    {
      "type":"view",
      "name":"付停车费",
      "url":"http://www.baidu.com"
  
    },{
      "name":"个人中心",
      "sub_button":[
      {  
        "type":"view",
        "name":"个人信息",
        "url":"http://www.baidu.com"
      },
      {
        "type":"view",
        "name":"订单查询",
        "url":"http://www.baidu.com"
      },
      {
        "type":"view",
        "name":"使用帮助",
        "url":"http://www.baidu.com"
      },
      {
        "type":"view",
        "name":"下载APP",
        "url":"http://www.baidu.com"
      }]
    }]
 }

Nach dem Login kopieren

三.开始编码

首先我们创建一个一般处理程序createMenu.ashx.

复制代码 代码如下:

public string access_token { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
FileStream fs1 = new FileStream(Server.MapPath(".") + "\\menu.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding("UTF-8"));
string menu = sr.ReadToEnd();
sr.Close();
fs1.Close();
var str = GetPage("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxd811f5114e3e56f3&secret=76eb33f66129692da16d148cb3c024f1", "");
JObject jo = JObject.Parse(str);
access_token = jo["access_token"].ToString();
GetPage("https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + access_token + "", menu);
}

  这里需要注意的是appid,secret这些参数需要换成我们自己的,这些参数我们可以放在配置文件中。也可以单独的放在一个帮助类里面。

同时在创建菜单的时候我们需要带上我的access_token这个令牌来验证我们的身份,那么我们首先要做的就是获取我们的这个令牌,那个这个令牌要如何获取了,我们可以通过一个接口获取,只需要传递我们的appid和secret这个两个参数

复制代码 代码如下:

{"access_token":"jVLAT9Rp9dNgxI4pb4RWlSx_9HJLXICmk_uWDlRtAug8wcaWhZZ10eqZCYRZrEwCIJf1-vBhS9YEX00Dj7q__lJCyTIWOxTruOd25opkf-0","expires_in":7200}

  上面的GetPage方法的返回值。这样我们就可以获取我们的令牌了。

最后一步:带上我们的令牌,post我们的json菜单数据就可以创建菜单了。

当你看到如下代码:

{"errcode":0,"errmsg":"ok"}
  说明你的菜单创建成功了。

四:GetPage

代码如下:

    public string GetPage(string posturl, string postData)
    {
      Stream outstream = null;
      Stream instream = null;
      StreamReader sr = null;
      HttpWebResponse response = null;
      HttpWebRequest request = null;
      Encoding encoding = Encoding.UTF8;
      byte[] data = encoding.GetBytes(postData);
      // 准备请求...
      try
      {
        // 设置参数
        request = WebRequest.Create(posturl) as HttpWebRequest;
        CookieContainer cookieContainer = new CookieContainer();
        request.CookieContainer = cookieContainer;
        request.AllowAutoRedirect = true;
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = data.Length;
        outstream = request.GetRequestStream();
        outstream.Write(data, 0, data.Length);
        outstream.Close();
        //发送请求并获取相应回应数据
        response = request.GetResponse() as HttpWebResponse;
        //直到request.GetResponse()程序才开始向目标网页发送Post请求
        instream = response.GetResponseStream();
        sr = new StreamReader(instream, encoding);
        //返回结果网页(html)代码
        string content = sr.ReadToEnd();
        string err = string.Empty;
        Response.Write(content);
        return content;
      }
      catch (Exception ex)
      {
        string err = ex.Message;
        return string.Empty;
      }
    }

Nach dem Login kopieren

以上所述就是本文的全部内容了,希望大家能够喜欢

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!