1. Kata Pengantar
Sebelum pembangunan, kita perlu membaca dokumentasi antara muka rasmi Saya perlu mengadu bahawa dokumentasi rasmi WeChat adalah benar-benar buruk, bagaimanapun, untuk membangunkan fungsi yang kita perlukan, kita juga perlu membaca dokumen ini.
Alamat dokumen antara muka: http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html
Selepas membaca dokumen ini, saya memahami maksud asas Kami mencipta menu yang ingin kami buat dan menyiarkannya ke pelayan WeChat kemudian memberi kami beberapa kod status untuk menentukan sama ada menu kami berjaya dibuat perlu melakukan beberapa pengesahan sebelum menghantar data json.
2. Persediaan
Mula-mula tulis menu yang ingin kita buat dalam teks 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" }] }] }
3. Mulakan pengekodan
Mula-mula kita buat pengendali am createMenu.ashx.
Pada masa yang sama, apabila membuat menu, kami perlu membawa token akses saya untuk mengesahkan identiti kami. Jadi perkara pertama yang perlu kami lakukan ialah mendapatkan token kami , kami hanya perlu lulus parameter appid dan rahsia kami
Apabila anda melihat kod berikut:
{"errcode":0,"errmsg":"ok"}
Ini bermakna menu anda berjaya dibuat.
Empat: 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; } }