using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Web.Script.Serialization;
using WeChatBiz;
using WeChatCommon;
namespace WeChat
{
public partial class Menu : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
#region 获取AccessToken
string to = new WeiXin().getGlobalAccessToken(CommomConst.APPID, CommomConst.SECRET);
#endregion
string delResult = GetData("https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" + to);
string reserveTryUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + CommomConst.APPID + "&redirect_uri=" + CommomConst.HTTPURL + "/ReserveTry.aspx&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
#region 创建主菜单
string weixin1 = @" {
""button"":[
{
""type"":""click"",
""name"":""你好!"",
""key"":""Hello""
},
{
""type"":""view"",
""name"":""公司简介"",
""url"":""http://www.4ugood.net""
},
{
""name"":""产品介绍"",
""sub_button"":[
{
""type"":""click"",
""name"":""产品1"",
""key"":""P1""
},
{
""type"":""click"",
""name"":""产品2"",
""key"":""P2""
}]
}]
}
";
string i = GetPage("https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + to, weixin1);
#endregion
#region 创建会员菜单
string signUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + CommomConst.APPID + "&redirect_uri=" + CommomConst.HTTPURL + "/Sign.aspx&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
string menu1 = "";
menu1 += "{\n";
menu1 += "\"button\":[ \n";
menu1 += "{\n";
menu1 += "\"type\":\"view\",\n";
menu1 += "\"name\":\"用户绑定\",\n";
menu1 += "\"url\":\"" + bindUrl + "\"\n";
menu1 += "},\n";
menu1 += "{\n";
menu1 += "\"type\":\"view\",\n";
menu1 += "\"name\":\"课程表\",\n";
menu1 += "\"url\":\"" + CourseUrl + "\"\n";
menu1 += "},\n";
menu1 += "{\n";
menu1 += "\"type\":\"view\",\n";
menu1 += "\"name\":\"签到\",\n";
menu1 += "\"url\":\"" + signUrl + "\" \n";
menu1 += "}";
menu1 += "],\n";
menu1 += "\"matchrule\": { \n";
menu1 += "\"group_id\": \"100\" ";
menu1 += "}";
menu1 += "}";
string menuid1 = GetPage("https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=" + to, menu1);
#endregion
}
private string GetData(string url)
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
myRequest.Method = "GET";
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();
reader.Close();
return content;
}
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;
instream = response.GetResponseStream();
sr = new StreamReader(instream, encoding);
string content = sr.ReadToEnd();
string err = string.Empty;
return content;
}
catch (Exception ex)
{
string err = ex.Message;
return string.Empty;
}
}
private string getGroupId(string accessToken)
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://api.weixin.qq.com/cgi-bin/groups/get?access_token=" + accessToken);
myRequest.Method = "GET";
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();
reader.Close();
return content;
}
public string GetUserGroupId(string accessToken, string openid)
{
string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/getid?access_token={0}", accessToken);
string result = GetPage(url, "{\"openid\":" + openid + "}");
JavaScriptSerializer js = new JavaScriptSerializer();
Dictionary<string, object> list = new Dictionary<string, object>();
list = js.Deserialize<Dictionary<string, object>>(result);
if (list.ContainsKey("groupid"))
{
return list["groupid"].ToString();
}
return "";
}
}
}