Heim  >  Artikel  >  Web-Frontend  >  Entwicklung eines öffentlichen .NET WeChat-Kontos zur Erstellung benutzerdefinierter Menü-Javascript-Fähigkeiten

Entwicklung eines öffentlichen .NET WeChat-Kontos zur Erstellung benutzerdefinierter Menü-Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 15:50:001482Durchsuche

1. Vorwort

Vor der Entwicklung müssen wir die offizielle Schnittstellendokumentation lesen. Ich muss mich darüber beschweren, dass die offizielle Dokumentation von WeChat wirklich schlecht ist. Um die Funktionen zu entwickeln, die wir benötigen, müssen wir jedoch auch diese Dokumente lesen.

Adresse des Schnittstellendokuments: http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html

Nachdem ich diese Dokumente gelesen habe, verstehe ich die grundlegende Bedeutung. Wir erstellen das Menü, das wir erstellen möchten, und veröffentlichen es auf dem WeChat-Server Vor dem Senden von JSON-Daten muss eine Authentifizierung durchgeführt werden.

2. Vorbereitung

Schreiben Sie zunächst das Menü, das wir erstellen möchten, in einen TXT-Text:

 {
   "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"
      }]
    }]
 }

3. Beginnen Sie mit dem Codieren

Zuerst erstellen wir einen allgemeinen Handler createMenu.ashx.

Code kopieren Der Code lautet wie folgt:

Öffentlicher String access_token { get; 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); }

Hierbei ist zu beachten, dass die Parameter appid und Secret durch unsere eigenen ersetzt werden müssen. Wir können diese Parameter in die Konfigurationsdatei einfügen. Es kann auch separat in einer Hilfsklasse platziert werden.

Gleichzeitig müssen wir beim Erstellen eines Menüs mein access_token mitbringen, um unsere Identität zu überprüfen. Das erste, was wir tun müssen, ist, dieses Token über eine Schnittstelle zu erhalten , wir müssen nur unsere Appid- und Secret-Parameter

übergeben

{"access_token://


Der Rückgabewert der obigen GetPage-Methode. Damit wir unseren Token bekommen können.
Der letzte Schritt: Bringen Sie unser Token mit und veröffentlichen Sie unsere JSON-Menüdaten, um das Menü zu erstellen.

Wenn Sie den folgenden Code sehen:

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

Das bedeutet, dass Ihr Menü erfolgreich erstellt wurde.

Viertens: GetPage

Der Code lautet wie folgt:

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er gefällt euch allen
    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;
      }
    }

Stellungnahme:
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