成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > asp.net微信開發(fā)(已關(guān)注用戶管理)

asp.net微信開發(fā)(已關(guān)注用戶管理)

熱門標(biāo)簽:辦公用地圖標(biāo)注網(wǎng)點怎么操作 上海市三維地圖標(biāo)注 聊城智能電銷機器人電話 海東防封電銷卡 云南外呼系統(tǒng)代理 西寧電銷外呼系統(tǒng)公司 南昌自動外呼系統(tǒng)線路 寧德防封版電銷卡 安陸市地圖標(biāo)注app

公眾號可通過本接口來獲取帳號的關(guān)注者列表,關(guān)注者列表由一串OpenID(加密后的微信號,每個用戶對每個公眾號的OpenID是唯一的)組成。一次拉取調(diào)用最多拉取10000個關(guān)注者的OpenID,可以通過多次拉取的方式來滿足需求。

接口調(diào)用請求說明

http請求方式: GET(請使用https協(xié)議)

返回說明

正確時返回JSON數(shù)據(jù)包:

錯誤時返回JSON數(shù)據(jù)包(示例為無效AppID錯誤):

{"errcode":40013,"errmsg":"invalid appid"}
附:關(guān)注者數(shù)量超過10000時

當(dāng)公眾號關(guān)注者數(shù)量超過10000時,可通過填寫next_openid的值,從而多次拉取列表的方式來滿足需求。

具體而言,就是在調(diào)用接口時,將上一次調(diào)用得到的返回中的next_openid值,作為下一次調(diào)用中的next_openid值。

示例如下:

公眾賬號A擁有23000個關(guān)注的人,想通過拉取關(guān)注接口獲取所有關(guān)注的人,那么分別請求url如下:
https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN
返回結(jié)果:

{
 "total":23000,
 "count":10000,
 "data":{"
 openid":[
 "OPENID1",
 "OPENID2",
 ...,
 "OPENID10000"
 ]
 },
 "next_openid":"OPENID10000"
}

https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKENnext_openid=NEXT_OPENID1
返回結(jié)果:

{
 "total":23000,
 "count":10000,
 "data":{
 "openid":[
 "OPENID10001",
 "OPENID10002",
 ...,
 "OPENID20000"
 ]
 },
 "next_openid":"OPENID20000"
}

https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKENnext_openid=NEXT_OPENID2
返回結(jié)果(關(guān)注者列表已返回完時,返回next_openid為空):

{
 "total":23000,
 "count":3000,
 "data":{"
 "openid":[
  "OPENID20001",
  "OPENID20002",
  ...,
  "OPENID23000"
 ]
 },
 "next_openid":"OPENID23000"
}

微信官方網(wǎng)站后臺的接口權(quán)限表里(以服務(wù)號為例)每天調(diào)用的獲取用戶列表能獲取500次,獲取用戶基本信息可以獲取500000次,所以說接下來,我在獲取用戶列表的時候,會用到緩存,別看500次不少了,
可是真正的用起來快得不得了,先上效果圖如下:

先來看看用戶列表,官網(wǎng)說獲取用戶的列表返回的是一組組openID,針對這個特性,我是這么做的,
創(chuàng)建一個用于存儲openId的類

public class WxOpenIdInfo
 {
 public string WxopenId { get; set; }//用戶存放微信用戶的openId
 }

然后再創(chuàng)建用戶信息的基本類

 /// summary>
 /// 微信用戶基本信息類
 /// /summary>
 public class WxUserInfo
 {
 public int subscribe { get; set; }//關(guān)注狀態(tài)

 public string openid { get; set; }//OpenID

 public string nickname { get; set; }//昵稱

 public string sex { get; set; }//性別

 public string city { get; set; }//城市

 public string province { get; set; }//省份

 public string headimgurl { get; set; }//頭像圖片地址

 public string subscribe_time { get; set; }//關(guān)注時間

 public string remark { get; set; }//備注

 public string groupid { get; set; }//分組ID

 }

 用戶列表前臺代碼

%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeiXinUserList.aspx.cs" Inherits="DQWebSite.Administrator.WeiXinUserList" %>

!DOCTYPE html>

html xmlns="http://www.w3.org/1999/xhtml">
head runat="server">
meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 title>/title>
 link href="css/style.css" rel="Stylesheet" type="text/css" />
 style type="text/css">
 #title {width:100%; height:40px;margin-top:10px; text-indent:5px; line-height:40px;}
 .checkstyle { float:left;}
 #DDlAddgroups { text-align:center; width:161px; border:1px solid #d9d9d9; border-radius:5px; height:35px; line-height:35px; font-weight:bold; text-align:center; float:left; margin:auto 5px auto 5px;}
 .DDlAddgroups{ text-align:center; width:161px; border:1px solid #d9d9d9; border-radius:5px; height:35px; line-height:35px; font-weight:bold; text-align:center; float:left; margin:auto 5px auto 5px;}
 #DDLgroups { text-align:center; width:111px; border:1px solid #d9d9d9; border-radius:5px; height:35px; line-height:35px; font-weight:bold; text-align:center; float:left; margin:auto 5px auto 5px;}
 .newGroups { margin:auto 5px auto 5px;}
 .inputstyle { height:35px; line-height:35px; text-indent:5px; width:280px;background-image:url('images/inputbg.gif'); background-repeat:repeat-x;border-top:solid 1px #a7b5bc; border-left:solid 1px #a7b5bc; border-right:solid 1px #ced9df; border-bottom:solid 1px #ced9df; float:left; margin:auto 5px auto 5px;
 }
 .wxusertab { border:1px solid #d9d9d9; width:100%; text-align:left; text-indent:5px;
 } 
 
 th { height:35px;background-image:url('images/th.gif'); background-repeat:repeat-x;
 }
 td {
  border-bottom:1px solid #d9d9d9;
 }
 .trcolor { background-color:#ecd9df;
 }
 tr:hover { cursor:pointer; 
 }
  #FenPage { width:1124px; height:25px; line-height:25px; text-align:center; margin:20px auto 20px auto;
 }
 .linka { color:#0094ff; cursor:pointer;
 }
 .fenyebtn {width:60px; height:25px; border:1px solid #ced9df; border-radius:5px; text-align:center; line-height:25px; float:right;
 }
 .fenyebtn2 { width:60px; height:25px; border:1px solid #ced9df; border-radius:5px; text-align:center; line-height:25px;margin-left:10px;float:right;
 }
 .toPageIndex { width:60px;height:25px; background-image:url('images/inputbg.gif'); margin-left:10px; background-repeat:repeat-x;border-top:solid 1px #a7b5bc; border-left:solid 1px #a7b5bc; border-right:solid 1px #ced9df; border-bottom:solid 1px #ced9df; text-align:center; float:right;
 }
 .gotoPagebtn { width:60px; height:25px; border:1px solid #ced9df; border-radius:5px; text-align:center; line-height:25px;margin-left:10px;float:right; background-color:#ced9df;
 }
 .deletebtn {float:left;width:100px; color:#000; height:25px; background-color:#ced9df; border:1px solid #ced9df; border-radius:5px; text-align:center;
 }
 a { color:#08a5e0;
 }
 .droplist { background-image:url('images/inputbg.gif'); background-repeat:repeat-x; width:120px; height:25px; border:1px solid #ced9df;
 }
 .checkstyle { float:left;
 }
 .imgheadstyle { width:50px; height:50px; margin-top:10px;
 }
 .lbsubscribeCount { font-size:26px;
 }

 #shownewgroup { width:300px; height:200px; background-color:white;z-index:9999; border:2px solid #DDD; top:40%; left:40%; background-color:#fff; position:fixed;margin:-100px auto auto -100px; display:none;
 }
 #shownewgroupzhezhaoceng { height:200%; width:200%; left:0px; top:0px;position:fixed; z-index:9998; background:rgb(50,50,50);background:rgba(0,0,0,0.5); display:none;
 }
 .closeLogin { height:30px; border-bottom:2px solid #31bb34; text-align:right; line-height:30px; font-size:14px; font-weight:bold;
 }
 a:hover { cursor:pointer;
 }


 #updateremark { width:300px; height:200px; background-color:white;z-index:9999; border:2px solid #DDD; top:40%; left:40%; background-color:#fff; position:fixed;margin:-100px auto auto -100px; display:none;
 }
 #updateremark_zhezhaoceng { height:100%; width:100%; left:0px; top:0px;position:fixed; z-index:9998; background:rgb(50,50,50);background:rgba(0,0,0,0.5); display:none;
 }

 /style>

 script src="../js/jquery-1.7.1.min.js" type="text/javascript">/script>
 script type="text/javascript">
 $(document).ready(function () {

  $(".newGroups").click(function () {
  $("#shownewgroupzhezhaoceng").show();
  $("#shownewgroup").show();
  }),
  $('.closeloginpage').click(function () {
  $("#shownewgroupzhezhaoceng").hide();
  $("#shownewgroup").hide();
  })
 })
 /script>
/head>
body>
 form id="form1" runat="server">
 div class="place">
  span>位置:/span>
  ul class="placeul">
   li>a href="WelCome.aspx" target="rightFrame">首頁/a>/li>
   li>微信管理/li>
   li>德橋員工服務(wù)中心--關(guān)注者列表管理/li>
  /ul>
 /div>
  asp:ScriptManager ID="ScriptManager1" runat="server">/asp:ScriptManager>
  asp:UpdatePanel ID="UpdatePanel1" runat="server">
  ContentTemplate>
   div id="shownewgroup">
   div class="closeLogin">a class="closeloginpage">span style="float:left; color:#08a5e0; font-size:18px; text-indent:5px;">新建分組/span>關(guān)閉/a>nbsp;nbsp;/div>
  div style="font-size:12px; height:40px; color:red; line-height:40px;">nbsp;nbsp;30字符以內(nèi)/div>
  input type="text" id="txtgroupsName" name="txtgroupsName" class="inputstyle" maxlength="30" runat="server" value="分組名稱" onfocus="if(value==defaultValue){value='';this.style.color='#000'}" onblur="if(!value){value=defaultValue;this.style.color='#999'}" style="color:#999"/>
  asp:LinkButton ID="LinkBtnCreateGroup" runat="server" OnClick="LinkBtnCreateGroup_Click">div style="background-image:url('images/buttonbg.png'); width:111px; height:35px; line-height:35px; font-weight:bold;float:left; margin-top:20px; margin-left:5px; text-align:center;color:#fff;">nbsp;確定創(chuàng)建/div>/asp:LinkButton>
   /div>
   div id="shownewgroupzhezhaoceng">/div>
  div style=" border-bottom:2px solid #31bb34; height:30px; margin-top:10px; text-indent:10px; font-size:22px; line-height:30px; width:100%;">span style="float:left; font-size:16px;">已關(guān)注人數(shù)/span>span style="color:red;">asp:Label ID="lbsubscribeCount" CssClass="lbsubscribeCount" runat="server" Text="Label">/asp:Label> /span>/div>
  div id="title">
  asp:CheckBox ID="CheckAll" runat="server" CssClass="checkstyle" OnCheckedChanged="CheckAll_CheckedChanged" />span style="float:left;">全選nbsp;/span>
  
  asp:DropDownList ID="DDlAddgroups" CssClass="DDlAddgroups" runat="server" OnSelectedIndexChanged="DDlAddgroups_SelectedIndexChanged">
  /asp:DropDownList>
  asp:DropDownList ID="DDLgroups" runat="server">
  /asp:DropDownList>
  a class="newGroups">div style="background-image:url('images/buttonbg.png'); width:111px; height:35px; line-height:35px; margin:auto 20px auto 10px; font-weight:bold;float:left; text-align:center;color:#fff;">nbsp;+nbsp;新建分組/div>/a>
  a href="WxGroupManageList.aspx">div style="background-image:url('images/buttonbg.png'); width:111px; height:35px; line-height:35px; margin:auto 20px auto 10px; font-weight:bold;float:left; text-align:center;color:#fff;">分組管理/div>/a>
  a href="WeiXinUserList.aspx">div style="background-image:url('images/buttonbg.png'); width:111px; height:35px; line-height:35px; margin:auto 20px auto 10px; font-weight:bold;float:left; text-align:center;color:#fff;">刷nbsp;nbsp;新/div>/a>

%--  input type="text" id="txtName" name="txtName" class="inputstyle" runat="server" value="用戶昵稱" onfocus="if(value==defaultValue){value='';this.style.color='#000'}" onblur="if(!value){value=defaultValue;this.style.color='#999'}" style="color:#999"/>

  asp:LinkButton ID="LinkButton1" runat="server">div style="background-image:url('images/buttonbg.png'); width:111px; height:35px; line-height:35px; font-weight:bold;float:left; text-align:center;color:#fff;">nbsp;查詢/div>/asp:LinkButton>--%>
 /div>
  table class="wxusertab">
 asp:Repeater ID="RepeaterWxUserList" runat="server" OnItemDataBound="RepeaterWxUserList_ItemDataBound">
  HeaderTemplate>
  tr>
   th>/th>
   th>OpenID/th>
   th>頭像/th>
   th>昵稱(備注名)/th>
   th>關(guān)注時間/th>
   th>所屬分組/th>
   th>操作/th>
  /tr>
  /HeaderTemplate>
  ItemTemplate>
   tr style="width:100%; line-height:50px;">
    td style="width:30px;">nbsp;nbsp;asp:CheckBox ID="CheckIn" runat="server" CssClass="checkstyle" /> %--OnCheckedChanged="CheckIn_CheckedChanged"--%>/td>
    td style="width:150px;">asp:Label ID="lbwxopenID" runat="server" Text="">/asp:Label>
    /td>
    td style="width:80px;">asp:Image ID="ImgHeadUrl" runat="server" CssClass="imgheadstyle" /> /td>
    td style="width:150px;">asp:Label ID="lbNickName" runat="server" CssClass="checkstyle" Text="">/asp:Label>
    asp:Label ID="lbRemark" runat="server" Text="">/asp:Label>
    /td>
    td style="width:130px;">
    asp:Label ID="lbSubscrine_time" runat="server" Text="">/asp:Label>
    /td>
    td style="width:100px;"> 
    asp:Label ID="lbgroupId" runat="server" CssClass="checkstyle" Visible="false" Text="">/asp:Label>
    asp:DropDownList ID="DDlAddgroupss" Enabled="false" CssClass="DDlAddgroups" runat="server">
    asp:ListItem Value="0">分組名稱/asp:ListItem>
    /asp:DropDownList>
    /td>
    td style="width:110px;">
    a href='UpdateRemarkName.aspx?id=%# Eval("WxopenId") %>'>div style=" border:1px solid #d9d9d9; border-radius:5px; width:111px; height:35px; line-height:35px; font-weight:bold;float:left; text-align:center;">nbsp;修改備注名稱/div>/a>
    /td>
   /tr>
  /ItemTemplate>
 /asp:Repeater>
  /table>
  div id="FenPage">
  asp:LinkButton ID="LinkBtnToPage" CssClass="gotoPagebtn" runat="server" OnClick="LinkBtnToPage_Click">確定/asp:LinkButton>
  asp:TextBox ID="txtPageIndex" CssClass="toPageIndex" runat="server">/asp:TextBox>nbsp;
  asp:HyperLink ID="lnkLast" runat="server">span class="fenyebtn2">>>|/span>/asp:HyperLink>nbsp;
  asp:HyperLink ID="lnkNext" runat="server">span class="fenyebtn2">>/span>/asp:HyperLink>nbsp;
   asp:HyperLink ID="lnkTop" runat="server">span class="fenyebtn2">/span>/asp:HyperLink>nbsp;
  asp:HyperLink ID="lnkFist" runat="server">span class="fenyebtn">|/span>/asp:HyperLink>nbsp;
  span style="float:left;">當(dāng)前第/span>
  span style="float:left; color:red;">asp:Label ID="lbPageIndex" runat="server" Text="">/asp:Label>/span>
  span style="float:left;margin-left:5px;">頁//span>
  span style="float:left;margin-left:5px;">共/span>
  span style="float:left;color:red;">asp:Label ID="lbCountPage" runat="server" Text="">/asp:Label>/span>
  span style="float:left;margin-left:5px;">頁/span>
  span style="float:left;margin-left:10px;">asp:Label ID="lbPageSize" runat="server" Text="">/asp:Label>/span>
  span style="float:left;margin-left:10px;">共搜索到nbsp;/span>
  span style="float:left;margin-left:5px; color:red;">asp:Label ID="lbCountData" runat="server" Text="">/asp:Label>/span>
  span style="float:left;margin-left:5px;">條記錄./span>
  /div>
  /ContentTemplate>
 /asp:UpdatePanel>
 /form>
/body>
/html>

獲取用戶列表綁定用戶信息的后臺代碼,已包括,修改備注名,將用戶移動到分組,新建分組代碼

分組統(tǒng)計,用于顯示每個分組的已存在人數(shù),無其他作用

上代碼:

 PagedDataSource pds = new PagedDataSource();
 protected void Page_Load(object sender, EventArgs e)
 {
  if(!Page.IsPostBack)
  {
  BindGroupList();
  BindGetAllUserOpenIdList();
  this.DataBind();
  this.CheckAll.AutoPostBack = true;
  this.DDlAddgroups.AutoPostBack = true;
  }
  //this.DDlAddgroups.Enabled = false;
  
 }
 /// summary>
 /// 獲取所有用戶的openId列表
 /// /summary>
 private void BindGetAllUserOpenIdList()
 {
  WeiXinServer wxs = new WeiXinServer();

  ///從緩存讀取accesstoken
  string Access_token = Cache["Access_token"] as string;

  if (Access_token == null)
  {
  //如果為空,重新獲取
  Access_token = wxs.GetAccessToken();

  //設(shè)置緩存的數(shù)據(jù)7000秒后過期
  Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
  }

  string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);

  string jsonres = "";

  string content = Cache["AllUserOpenList_content"] as string;

  if (content == null)
  {
  jsonres = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=" + Access_tokento;

  HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(jsonres);
  myRequest.Method = "GET";
  HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
  StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
  content = reader.ReadToEnd();
  reader.Close();

  //設(shè)置緩存的數(shù)據(jù)7000秒后過期
  Cache.Insert("AllUserOpenList_content", content, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
  }

  //使用前需要引用Newtonsoft.json.dll文件
  JObject jsonObj = JObject.Parse(content);


  int totalnum = int.Parse(jsonObj["count"].ToString());


  ListWxOpenIdInfo> openidlist = new ListWxOpenIdInfo>();


  for (int i = 0; i  totalnum;i++ )
  {
  WxOpenIdInfo wxopeninfo = new WxOpenIdInfo();
  wxopeninfo.WxopenId = jsonObj["data"]["openid"][i].ToString();
  openidlist.Add(wxopeninfo);
  }


  pds.DataSource = openidlist;
  pds.AllowPaging = true;
  pds.PageSize = 20;//每頁顯示為20條
  int CurrentPage;


  if (!String.IsNullOrWhiteSpace(this.txtPageIndex.Text.ToString().Trim()))
  {

  CurrentPage = Convert.ToInt32(this.txtPageIndex.Text.ToString().Trim());
  }
  else if (Request.QueryString["Page"] != null)
  {
  CurrentPage = Convert.ToInt32(Request.QueryString["Page"]);
  }
  else
  {
  CurrentPage = 1;
  }
  pds.CurrentPageIndex = CurrentPage - 1;//當(dāng)前頁的索引就等于當(dāng)前頁碼-1;
  if (!pds.IsFirstPage)
  {
  //Request.CurrentExecutionFilePath 為當(dāng)前請求的虛擬路徑
  this.lnkTop.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage - 1);
  this.lnkFist.Enabled = this.lnkTop.Enabled = true;
  this.lnkNext.Enabled = this.lnkLast.Enabled = true;
  }
  else
  {
  this.lnkFist.Enabled = this.lnkTop.Enabled = false;
  this.lnkNext.Enabled = this.lnkLast.Enabled = true;
  this.lnkFist.Attributes.Add("style", "color:#ced9df;");
  this.lnkTop.Attributes.Add("style", "color:#ced9df;");
  this.lnkNext.Attributes.Remove("style");
  this.lnkLast.Attributes.Remove("style");
  }
  if (!pds.IsLastPage)
  {
  //Request.CurrentExecutionFilePath 為當(dāng)前請求的虛擬路徑
  this.lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurrentPage + 1);
  this.lnkFist.Enabled = this.lnkTop.Enabled = true;
  this.lnkNext.Enabled = this.lnkLast.Enabled = true;
  }
  else
  {
  this.lnkNext.Enabled = this.lnkLast.Enabled = false;
  this.lnkFist.Enabled = this.lnkTop.Enabled = true;
  this.lnkNext.Attributes.Add("style", "color:#ced9df;");
  this.lnkLast.Attributes.Add("style", "color:#ced9df;");
  this.lnkFist.Attributes.Remove("style");
  this.lnkTop.Attributes.Remove("style");
  }
  this.lnkFist.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1);//跳轉(zhuǎn)至首頁
  this.lnkLast.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(pds.PageCount);//跳轉(zhuǎn)至末頁

  this.RepeaterWxUserList.DataSource = pds;
  this.RepeaterWxUserList.DataBind();

  this.lbCountData.Text = openidlist.Count.ToString();
  this.lbPageIndex.Text = (pds.CurrentPageIndex + 1).ToString();
  this.lbPageSize.Text = "每頁" + pds.PageSize.ToString() + "條記錄";
  this.lbCountPage.Text = pds.PageCount.ToString();
  this.txtPageIndex.Text = (pds.CurrentPageIndex + 1).ToString();

  if (int.Parse(openidlist.Count.ToString()) = int.Parse(pds.PageSize.ToString()))
  {
  this.lnkFist.Visible = this.lnkTop.Visible = this.lnkNext.Visible = this.lnkLast.Visible = this.txtPageIndex.Visible = this.LinkBtnToPage.Visible = false;
  }
  else
  {
  this.lnkFist.Visible = this.lnkTop.Visible = this.lnkNext.Visible = this.lnkLast.Visible = this.txtPageIndex.Visible = this.LinkBtnToPage.Visible = true;
  }

  this.lbsubscribeCount.Text = openidlist.Count.ToString();
 }
 /// summary>
 /// 綁定分組列表
 /// /summary>
 private void BindGroupList()
 {
  WeiXinServer wxs = new WeiXinServer();

  ///從緩存讀取accesstoken
  string Access_token = Cache["Access_token"] as string;

  if (Access_token == null)
  {
  //如果為空,重新獲取
  Access_token = wxs.GetAccessToken();

  //設(shè)置緩存的數(shù)據(jù)7000秒后過期
  Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
  }

  string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);

  string jsonres = "";

  string content = Cache["AllGroups_content"] as string;

  if (content == null)
  {
  jsonres = "https://api.weixin.qq.com/cgi-bin/groups/get?access_token=" + Access_tokento;

  HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(jsonres);
  myRequest.Method = "GET";
  HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
  StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
  content = reader.ReadToEnd();
  reader.Close();

  //設(shè)置緩存的數(shù)據(jù)7000秒后過期
  Cache.Insert("AllGroups_content", content, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
  }

  //使用前需要引用Newtonsoft.json.dll文件
  JObject jsonObj = JObject.Parse(content);


  int groupsnum = jsonObj["groups"].Count();

  this.DDLgroups.Items.Clear();//清除
  this.DDlAddgroups.Items.Clear();
  this.DDLgroups.Items.Insert(0, new ListItem("分組統(tǒng)計", "0"));//添加默認(rèn)第一個提示
  this.DDlAddgroups.Items.Insert(0, new ListItem("移動用戶到分組", "0"));
  for (int i = 0; i  groupsnum; i++)
  {
  this.DDLgroups.Items.Add(new ListItem(jsonObj["groups"][i]["name"].ToString() + "(" + jsonObj["groups"][i]["count"].ToString() + ")", jsonObj["groups"][i]["id"].ToString()));
  
  this.DDlAddgroups.Items.Add(new ListItem(jsonObj["groups"][i]["name"].ToString(), jsonObj["groups"][i]["id"].ToString()));
  }
 }
 /// summary>
 /// 輸入頁碼提交跳轉(zhuǎn)
 /// /summary>
 /// param name="sender">/param>
 /// param name="e">/param>
 protected void LinkBtnToPage_Click(object sender, EventArgs e)
 {

  if (String.IsNullOrWhiteSpace(this.txtPageIndex.Text.ToString().Trim()))
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('頁碼不能為空!')", true);
  this.txtPageIndex.Focus();
  return;
  }
  if (IsNum(this.txtPageIndex.Text.ToString().Trim()))
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('頁碼數(shù)只能輸入數(shù)字!')", true);
  this.txtPageIndex.Focus();
  this.txtPageIndex.Text = this.lbPageIndex.Text.ToString();
  return;
  }
  if (int.Parse(this.txtPageIndex.Text.ToString().Trim()) > int.Parse(this.lbCountPage.Text.ToString().Trim()))
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('所輸頁數(shù)不能大于總頁數(shù)!')", true);
  this.txtPageIndex.Focus();
  this.txtPageIndex.Text = this.lbPageIndex.Text.ToString();
  return;
  }

  BindGetAllUserOpenIdList();
 }
 /// summary>
 /// 判斷是否是數(shù)字
 /// /summary>
 /// param name="text">/param>
 /// returns>/returns>
 public static bool IsNum(string text) //
 {
  for (int i = 0; i  text.Length; i++)
  {
  if (!Char.IsNumber(text, i))
  {
   return true; //輸入的不是數(shù)字 
  }
  }
  return false; //否則是數(shù)字
 }
 /// summary>
 /// 綁定用戶基本信息事件
 /// /summary>
 /// param name="sender">/param>
 /// param name="e">/param>
 protected void RepeaterWxUserList_ItemDataBound(object sender, RepeaterItemEventArgs e)
 {
  //CheckBox checkIn = e.Item.FindControl("CheckIn") as CheckBox;

  //checkIn.AutoPostBack = true;


  if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
  {
  WxOpenIdInfo wxopen = e.Item.DataItem as WxOpenIdInfo;


  Label lbwxopenID = e.Item.FindControl("lbwxopenID") as Label;

  lbwxopenID.Text = wxopen.WxopenId.ToString();

  //根據(jù)OpenID獲取用戶基本信息。緩存處理
  WeiXinServer wxs = new WeiXinServer();

  ///從緩存讀取accesstoken
  string Access_token = Cache["Access_token"] as string;

  if (Access_token == null)
  {
   //如果為空,重新獲取
   Access_token = wxs.GetAccessToken();

   //設(shè)置緩存的數(shù)據(jù)7000秒后過期
   Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
  }

  string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);

  string jsonres ="https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + Access_tokento + "openid=" + lbwxopenID.Text.ToString();

  HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(jsonres);
  myRequest.Method = "GET";
  HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
  StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
  string content = reader.ReadToEnd();
  reader.Close();

  //使用前需要引用Newtonsoft.json.dll文件
  JObject jsonObj = JObject.Parse(content);


  Image ImgHeadUrl = e.Item.FindControl("ImgHeadUrl") as Image;
  Label lbNickName = e.Item.FindControl("lbNickName") as Label;
  Label lbRemark = e.Item.FindControl("lbRemark") as Label;
  Label lbSubscrine_time = e.Item.FindControl("lbSubscrine_time") as Label;

  Label lbgroupId = e.Item.FindControl("lbgroupId") as Label;

  DropDownList DDlAddgroupss = e.Item.FindControl("DDlAddgroupss") as DropDownList;

  lbNickName.Text = jsonObj["nickname"].ToString();

  if (!String.IsNullOrWhiteSpace(jsonObj["remark"].ToString()))
  {
   lbRemark.Text = "(" + jsonObj["remark"].ToString() + ")";
  }

  ImgHeadUrl.ImageUrl = jsonObj["headimgurl"].ToString();
  lbgroupId.Text = jsonObj["groupid"].ToString();

  //獲取關(guān)注時間
  int totaltiem = int.Parse(jsonObj["subscribe_time"].ToString());
  //將整型格式時間轉(zhuǎn)換為時間格式
  DateTime t = new DateTime(1970, 1, 1).AddSeconds(totaltiem);
  //轉(zhuǎn)換后的時間會比原有時間小8個小時,因此需要加上8個小時
  lbSubscrine_time.Text = t.AddHours(8).ToString();


  string jjjjjjjjjddd = Cache["AllGroups_content"] as string;

  if (jjjjjjjjjddd == null)
  {
   jsonres = "https://api.weixin.qq.com/cgi-bin/groups/get?access_token=" + Access_tokento;

   HttpWebRequest myRequestss = (HttpWebRequest)WebRequest.Create(jsonres);
   myRequest.Method = "GET";
   HttpWebResponse myResponsess = (HttpWebResponse)myRequest.GetResponse();
   StreamReader readerss = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
   jjjjjjjjjddd = reader.ReadToEnd();
   reader.Close();

   //設(shè)置緩存的數(shù)據(jù)7000秒后過期
   Cache.Insert("AllGroups_content", jjjjjjjjjddd, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
  }

  //使用前需要引用Newtonsoft.json.dll文件
  JObject jsonObjss = JObject.Parse(jjjjjjjjjddd);


  int groupsnumss = jsonObjss["groups"].Count();

  for (int i = 0; i  groupsnumss;i++ )
  {
   if (jsonObjss["groups"][i]["id"].ToString().Equals(lbgroupId.Text.ToString()))
   {
   DDlAddgroupss.SelectedItem.Text = jsonObjss["groups"][i]["name"].ToString();
   }
  }

  }
 }
 /// summary>
 /// 創(chuàng)建分組
 /// /summary>
 /// param name="sender">/param>
 /// param name="e">/param>
 protected void LinkBtnCreateGroup_Click(object sender, EventArgs e)
 {
  if (this.txtgroupsName.Value.ToString().Equals("分組名稱"))
  {
  ////
  ScriptManager.RegisterClientScriptBlock(this.Page,this.GetType(),"","alert('不能為空!')",true);
  this.txtgroupsName.Focus();
  return;
  }


  WeiXinServer wxs = new WeiXinServer();
  string res = "";

  ///從緩存讀取accesstoken
  string Access_token = Cache["Access_token"] as string;

  if (Access_token == null)
  {
  //如果為空,重新獲取
  Access_token = wxs.GetAccessToken();

  //設(shè)置緩存的數(shù)據(jù)7000秒后過期
  Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
  }

  string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);


  string posturl = "https://api.weixin.qq.com/cgi-bin/groups/create?access_token=" + Access_tokento;

  //string postData = "{\"group\":{\"name\":\""+this.txtgroupsName.Value.ToString().Trim()+"\"}}";

  string postData = "{\"group\":{\"name\":\""+this.txtgroupsName.Value.ToString().Trim()+"\"}}";


  res = wxs.GetPage(posturl, postData);


  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('創(chuàng)建成功!如未顯示,請退出重新登錄即可!');location='WeiXinUserList.aspx';", true);
 }
 /// summary>
 /// 全選、全不選
 /// /summary>
 /// param name="sender">/param>
 /// param name="e">/param>
 protected void CheckAll_CheckedChanged(object sender, EventArgs e)
 {
  CheckBox checkAll = (CheckBox)sender;
  foreach (RepeaterItem item in this.RepeaterWxUserList.Items)
  {
  CheckBox checkIn = (CheckBox)item.FindControl("CheckIn");
  checkIn.Checked = checkAll.Checked;
  }
 }

 /// summary>
 /// 移動用戶到分組
 /// /summary>
 /// param name="sender">/param>
 /// param name="e">/param>
 protected void DDlAddgroups_SelectedIndexChanged(object sender, EventArgs e)
 {
  ///取得分組ID
  string groupId = this.DDlAddgroups.SelectedValue.ToString();

  //this.Label1.Text = groupId.ToString();

  Boolean bools = false;

  foreach (RepeaterItem item in this.RepeaterWxUserList.Items)
  {
  CheckBox checkIn = (CheckBox)item.FindControl("CheckIn");

  if (checkIn.Checked)
  {
   bools = true;

   Label lbwxopenID = item.FindControl("lbwxopenID") as Label;


   WeiXinServer wxs = new WeiXinServer();
   string res = "";

   ///從緩存讀取accesstoken
   string Access_token = Cache["Access_token"] as string;

   if (Access_token == null)
   {
   //如果為空,重新獲取
   Access_token = wxs.GetAccessToken();

   //設(shè)置緩存的數(shù)據(jù)7000秒后過期
   Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
   }

   string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);


   string posturl = "https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=" + Access_tokento;


   //POST數(shù)據(jù)例子:{"openid":"oDF3iYx0ro3_7jD4HFRDfrjdCM58","to_groupid":108}
   //string postData = "{\"openid\":\"" + openid.ToString().Trim() + "\",\"remark\":\"" + this.txtRemarkName.Value.ToString() + "\"}";

   string postData = "{\"openid\":\"" + lbwxopenID.Text.ToString() + "\",\"to_groupid\":\"" + groupId.ToString() + "\"}";


   res = wxs.GetPage(posturl, postData);


   //使用前需要引用Newtonsoft.json.dll文件
   JObject jsonObj = JObject.Parse(res);

   ///獲取返回結(jié)果的正確|true|false,
   string isright = jsonObj["errcode"].ToString();//0
   string istrueorfalse = jsonObj["errmsg"].ToString();//ok
   if (isright.Equals("0")  istrueorfalse.Equals("ok"))
   {
   ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('移動用戶成功!');location='WeiXinUserList.aspx';", true);
   }
   else
   {
   ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('移動用戶失敗!');", true);
   return;
   }
  }

  }
  if (!bools)
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('未選中項!');location='WeiXinUserList.aspx';", true);
  return;
  }
 }

 WeiXinServer wxs = new WeiXinServer();是單獨創(chuàng)建的一個類,主要用來獲取通行證和加載流的方法,代碼如下:

 /// summary>
 /// 微信服務(wù)類
 /// /summary>
 public class WeiXinServer
 {
 /// summary>
 /// 獲取通行證
 /// /summary>
 /// returns>/returns>
 public string GetAccessToken()
 {
  string url_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credentialappid=此處應(yīng)該填寫公眾的appidsecret=此處應(yīng)該填寫公眾號的secret";
  HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url_token);
  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 p, 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);
  // 準(zhǔn)備請求...
  try
  {
  // 設(shè)置參數(shù)
  request = WebRequest.Create(p) 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();
  //發(fā)送請求并獲取相應(yīng)回應(yīng)數(shù)據(jù)
  response = request.GetResponse() as HttpWebResponse;
  //直到request.GetResponse()程序才開始向目標(biāo)網(wǎng)頁發(fā)送Post請求
  instream = response.GetResponseStream();
  sr = new StreamReader(instream, encoding);
  //返回結(jié)果網(wǎng)頁(html)代碼
  string content = sr.ReadToEnd();
  string err = string.Empty;
  return content;
  }
  catch (Exception ex)
  {
  string err = ex.Message;
  return string.Empty;
  }
 }
 }

修改備注頁面的代碼:

 protected void Page_Load(object sender, EventArgs e)
 {
  if(Request.QueryString["id"]!=null)
  {
  String openid = Request.QueryString["id"].ToString();
  this.txtOpenId.Value = openid.ToString();

  //根據(jù)OpenID獲取用戶基本信息。緩存處理
  WeiXinServer wxs = new WeiXinServer();

  ///從緩存讀取accesstoken
  string Access_token = Cache["Access_token"] as string;

  if (Access_token == null)
  {
   //如果為空,重新獲取
   Access_token = wxs.GetAccessToken();

   //設(shè)置緩存的數(shù)據(jù)7000秒后過期
   Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
  }

  string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);

  string jsonres = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + Access_tokento + "openid=" + openid;

  HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(jsonres);
  myRequest.Method = "GET";
  HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
  StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
  string content = reader.ReadToEnd();
  reader.Close();

  //使用前需要引用Newtonsoft.json.dll文件
  JObject jsonObj = JObject.Parse(content);

        //假如備注名不為空,給備注名文本框賦值,顯示原有的備注名
  if (!String.IsNullOrWhiteSpace(jsonObj["remark"].ToString()))
  {
   this.txtRemarkName.Value = jsonObj["remark"].ToString();
  }

  }
 }
 /// summary>
 /// 設(shè)置備注名
 /// /summary>
 /// param name="sender">/param>
 /// param name="e">/param>
 protected void LinkBtnSet_Click(object sender, EventArgs e)
 {
  

  String openid = Request.QueryString["id"].ToString();

  WeiXinServer wxs = new WeiXinServer();
  string res = "";

  ///從緩存讀取accesstoken
  string Access_token = Cache["Access_token"] as string;

  if (Access_token == null)
  {
  //如果為空,重新獲取
  Access_token = wxs.GetAccessToken();

  //設(shè)置緩存的數(shù)據(jù)7000秒后過期
  Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
  }

  string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);


  string posturl = "https://api.weixin.qq.com/cgi-bin/user/info/updateremark?access_token=" + Access_tokento;

  string postData = "{\"openid\":\"" + openid.ToString().Trim() + "\",\"remark\":\"" + this.txtRemarkName.Value.ToString() + "\"}";


  res = wxs.GetPage(posturl, postData);


  //使用前需藥引用Newtonsoft.json.dll文件
  JObject jsonObj = JObject.Parse(res);

  ///獲取返回結(jié)果的正確|true|false,
  string isright = jsonObj["errcode"].ToString();//0
  string istrueorfalse = jsonObj["errmsg"].ToString();//ok
  if (isright.Equals("0")  istrueorfalse.Equals("ok"))
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('修改備注成功!');location='WeiXinUserList.aspx';", true);
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('修改備注失??!');", true);
  }

 }

本文已被整理到了《ASP.NET微信開發(fā)教程匯總》,歡迎大家學(xué)習(xí)閱讀。

以上就是已關(guān)注用戶管理的全部核心代碼,僅供參考,希望對大家的學(xué)習(xí)有所幫助。

您可能感興趣的文章:
  • .NET微信公眾號 用戶分組管理
  • asp.net微信開發(fā)(用戶分組管理)
  • 微信開發(fā)(一) asp.net接入
  • asp.net微信開發(fā)(永久素材管理)
  • asp.net微信開發(fā)(高級群發(fā)圖文)
  • asp.net微信開發(fā)(高級群發(fā)文本)
  • asp.net微信開發(fā)(消息應(yīng)答)
  • asp.net微信開發(fā)(開發(fā)者接入)
  • asp.net開發(fā)微信公眾平臺之獲取用戶消息并處理
  • ASP.NET微信公眾號之用戶分組管理web頁面

標(biāo)簽:洛陽 贛州 崇左 汕尾 青海 南寧 衢州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net微信開發(fā)(已關(guān)注用戶管理)》,本文關(guān)鍵詞  asp.net,微信,開發(fā),已,關(guān)注,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《asp.net微信開發(fā)(已關(guān)注用戶管理)》相關(guān)的同類信息!
  • 本頁收集關(guān)于asp.net微信開發(fā)(已關(guān)注用戶管理)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日韩不卡在线观看| 91精品久久久久久久久久久久久久| 99视频精品免费视频| 欧美久久久久久久| 亚洲av鲁丝一区二区三区| 久久综合香蕉| 国产精品久久二区二区| 麻豆国产入口在线观看免费| 精品调教chinesegay| 国产一区第一页| 亚洲少妇一区二区| 亚洲欧美综合久久久久久v动漫| 亚洲欧美日韩一区二区三区在线| 色综合久久久久久久久久久| 国内精品视频在线播放| 日韩一区二区三区免费视频| 久久精品99久久无色码中文字幕| 国产日韩v精品一区二区| 男人添女人下部视频免费| 一级黄色高清视频| 日韩一区二区三免费高清在线观看| 一级肉体全黄裸片| 欧美日韩夜夜| 亚洲免费大片在线观看| 国产伦精品一区二区三区在线观看| 日韩在线综合网| 久久国产日韩欧美精品| 精品调教chinesegay| 五月天久久久| 国产中文在线视频| 久久精品免费网站| free性欧美高清另类| 亚洲av无码一区二区三区性色| 99久久精品免费看国产一区二区三区| 久久一二三四| 国产精品吹潮在线观看| 黄色三级在线观看| 青青草原亚洲| 亚洲精品久久久成人| 久久国产精品久久久久久小说| 涩涩涩在线视频| 久久爱www.| 宅男噜噜噜66国产免费观看| 欧美捆绑视频| 久久视频在线免费观看| 风间由美一区二区av101| 91麻豆精品国产综合久久久久久| 99久久99久久精品免费观看| www.99riav| 日本精品不卡| 日韩精品久久久久久免费| 国产亚洲精品一区二555| 成在线人视频免费视频| 亚洲欧美视频在线播放| 欧美一级在线看| 韩国一区二区三区视频| 香蕉成人啪国产精品视频综合网| 国产一级特黄a高潮片| 91久久国产综合| 欧美激情一区二区三级高清视频| 中文字幕av一区二区三区谷原希美| 欧美成人性战久久| 日本福利在线| 99久久精品免费看国产| www.成人av.com| 成年人视频在线免费看| 99久久亚洲一区二区三区青草| 亚洲精选在线| 91大神福利视频在线| 白嫩白嫩国产精品| 欧美做暖暖视频| 亚洲精品综合久久中文字幕| 青青操在线视频| 久久精品亚洲欧美日韩精品中文字幕| 久久久久久香蕉| 欧美狂猛xxxxx乱大交3| 欧美性猛交xxxx乱大交丰满| 免费人成精品欧美精品| 久久精品小视频| 中文字幕中文字幕一区三区| 成人香蕉视频| 久草视频国产在线| 欧美成人激情| 人妻aⅴ无码一区二区三区| 欧美日韩激情美女| 欧美日韩午夜精品| 无码国产伦一区二区三区视频| 97精品久久久午夜一区二区三区| 麻豆精品传媒视频观看| 欧美这里有精品| 色香色香欲天天天影视综合网| 免费看日韩av| 中文字幕视频精品一区二区三区| 欧美在线xxxx| av福利在线播放| 欧美日韩激情一区二区三区| 老头老太做爰xxx视频| 91精品在线免费视频| 欧美s码亚洲码精品m码| 国产拍揄自揄精品视频麻豆| 国产精品专区第二| 少妇高潮喷水久久久久久久久久| 18精品爽视频在线观看| 男女猛烈激情xx00免费视频| 精品国产百合女同互慰| 人妻丰满熟妇av无码久久洗澡| 久久综合九色| 国产精品精品视频一区二区三区| 青春有你2免费观看完整版在线播放高清| 激情深爱综合网| 972aa.com艺术欧美| 在线视频观看一区| 午夜xxxxx| 免费在线观看黄色av| 久久麻豆视频| www.欧美三级电影.com| 2023国产精品自拍| 国产精品久久久久影院| 黑色丝袜福利片av久久| 亚洲女人天堂在线| 久久香蕉精品香蕉| 久久亚洲国产精品一区二区| 国产av无码专区亚洲av麻豆| 国产日韩欧美一区二区东京热| 国产精品久久久久久久久久久新郎| 久久精品免费观看| 天天操中文字幕| 欧美精品videos| 亚洲欧美日韩国产综合| 日本丰满少妇一区二区三区| 国产一区二区播放| 99久久久久久中文字幕一区| 一本色道久久综合精品婷婷| 91sao在线观看国产| xxxx日本免费| 性高潮久久久久久久久久| 伊人精品在线| 日韩欧美综合在线视频| 日韩大胆人体| 西野翔中文久久精品字幕| 黄色免费在线播放| 日本高清在线观看wwwww色| 精品久久中文字幕| 91日本视频在线| 黄网站免费入口| 欧美精品中文字幕亚洲专区| 毛片av一区二区| 一二三四在线观看免费高清中文在线观看| 影音先锋日韩资源| 伦理av在线| 蜜桃999成人看片在线观看| 亚洲一区二区精品在线观看| 欧美久久一区| 91大神网址| 免费一级欧美在线观看视频| 喜爱夜蒲2在线| 日韩成人在线免费视频| 性高潮久久久久久久久| 中文资源在线播放| 精品国内一区二区三区免费视频| 久久九九国产精品| 久久午夜鲁丝片午夜精品| 日韩有吗在线观看| 在线视频中文字幕| 久草在线免费资源站| 亚洲色图17p| 久久99国产精品久久99果冻传媒| 国产乱码精品一区二区三区av| 99在线精品免费视频九九视| 一区二区传媒有限公司| 免费看日b视频| 色欲狠狠躁天天躁无码中文字幕| 奇米色一区二区三区四区| 麻豆md0077饥渴少妇| 国产三级在线播放| 国产亚洲视频中文字幕视频| 国产精品一色哟哟| 欧美日韩国产一级片| 色综合伊人色综合网站| 黑人と日本人の交わりビデオ| 口述被爽到呻吟高潮自述| 国产精品无码白浆高潮| 欧美精品日韩一本| 色999日韩国产欧美一区二区| 91青青草免费观看| 爱爱爱视频网站| 日韩一区二区三区四区区区| 久久出品必属精品| 精品一区久久| 中文字幕av一区二区三区| 四虎影院观看视频在线观看| 雨宫琴音一区二区在线| 成人午夜激情在线| www.四虎成人| 亚洲第一成人在线视频| 久久免费手机视频| 99久久精品一区二区成人| 国产一区二区免费视频| 五月天激情在线| 成人激情视频网| 国产精品美乳一区二区免费| 精品无人区太爽高潮在线播放| 在线日韩av观看| 亚洲精品在线91| 91资源在线观看| 久久人人爽av| 欧美激情一区二区三区| 搡老女人一区二区三区视频tv| 成人影院在线| 亚洲国产精品久久人人爱蜜臀| 一区二区三区欧美精品| 久久国产情侣| 猛男gaygay欧美视频| 国产黄色在线| eeuss免费天堂影院| 日韩免费一二三区| 亚洲视频欧洲视频| 黄色在线视频网址| 99爱视频在线观看| 紧缚奴在线一区二区三区| 亚洲精品一二三四五区| 亚洲av成人无码一二三在线观看| 日韩一区二区中文字幕| 天天爽夜夜爽一区二区三区| 中文字幕日韩av综合精品| 黄色av免费| 精品影院一区二区久久久| 欧美三根一起进三p| 免费无码国产v片在线观看| 欧美日韩中文字幕综合视频| 免费97视频在线精品国自产拍| 超碰在线caoporen| jizz中国免费| 国产丝袜在线精品| 成人免费xxxxx在线视频| 顶级嫩模一区二区三区| 中文字幕毛片| 中文视频一区视频二区视频三区| 欧美性视频精品| 国产精品99导航| 欧美一级黄色录像片| 欧美videos极品另类| 日韩一区二区三区高清在线观看| 91成人国产综合久久精品| 精品一区二区av| 欧美成人高潮一二区在线看| 日韩电影在线免费看| 欧美大学生性色视频| 97国产成人精品视频| 午夜激情av在线| 国产午夜精品无码一区二区| 日本1区2区3区中文字幕| 日韩一区二区三区中文字幕| 成人亚洲欧美日韩在线观看| 国产亚洲xxx| 国产乱人视频免费播放| 色一色在线观看视频网站| 中文字幕国产传媒| 色爱综合网站| 狠狠操五月天| 岛国视频午夜一区免费在线观看| 免费视频中文字幕| 日韩国产欧美一区| 国产午夜三区视频在线| 亚洲午夜黄色| 免费av不卡在线观看| 亚洲系列另类av| 日韩国产在线| 亚洲美女综合网| 农村末发育av片一区二区| 欧美丝袜丝交足nylons| gratisvideos另类灌满| 亚洲黄色影片| 日韩久久精品网| 国产传媒久久久| 亚洲女与黑人做爰| 99热免费精品| 人妻少妇偷人精品久久久任期| 波多野结衣国产精品| 中文字幕一区二区三区人妻在线视频| 青檬在线电视剧在线观看| 天堂中文在线播放| 国产欧美一区二区三区米奇| 三级网站免费观看| 欧美成人久久久免费播放| 成人xxx免费视频播放| 日韩中文字幕精品视频| 欧美一区二区三区免费观看视频| 国产一区导航| jizzjizz16| 免费人成在线观看视频播放| 日韩欧美中文一区二区| 色视频欧美一区二区三区| 国产又猛又黄的视频| 欧美精品色婷婷五月综合| 中文人妻一区二区三区| 久久久久99精品成人片三人毛片| 国产精品久久久久久久久久尿| 欧美自拍偷拍一区| 黄色网页在线看| 成人免费在线观看视频| 欧美性xxxxx极品少妇| 国产精品久久99| 777精品伊人久久久久大香线蕉| 91国产在线免费观看| 蜜臀在线免费观看| 国产午夜麻豆影院在线观看| www.av天天| 欧美中文高清| 色一情一乱一伦一区二区三区日本| 国内精品女同女同一区二区三区| 韩国毛片一区二区三区| 日韩中文字幕在线视频播放| 国产网站免费观看| 国产精品秘入口| 亚洲免费av观看| 麻豆一区二区三| 色播五月激情综合网| 欧美亚洲国产免费| 日韩欧美伦理| 不许穿内裤随时挨c调教h苏绵| 欧美一级片免费| 亚洲第一黄网| 日韩成人一级大片| 男女性色大片免费观看一区二区| 国产色综合视频| 高清电影在线观看免费| 91超薄丝袜肉丝一区二区|