using Senparc.Weixin.Entities;using Senparc.Weixin.HttpUtility;using Senparc.Weixin.QY.AdvancedAPIs.OAuth2;using Senparc.Weixin.QY.CommonAPIs;using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace CRM.CIS.WeiXin{ public partial class TwoVerification : System.Web.UI.Page { PRotected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string code = Request["code"]; string state = Request["state"]; if (!string.IsNullOrEmpty(code) && !string.IsNullOrEmpty(state)) { string CorpId = Properties.Settings.Default.CorpId; string Secret = Properties.Settings.Default.Secret;//注冊corpid if (!accessTokenContainer.CheckRegistered(CorpId)) { AccessTokenContainer.Register(CorpId, Secret); } string accessToken = AccessTokenContainer.GetToken(CorpId); GetUserIdResult guir = Senparc.Weixin.QY.AdvancedAPIs.OAuth2.OAuth2Api.GetUserId(accessToken, code, 1); if (guir.errcode == 0) {//讀取職員狀態 var member = Senparc.Weixin.QY.AdvancedAPIs.MailList.MailListApi.GetMember(accessToken, guir.UserId); hfaccessToken.Value = accessToken;//使用HiddenField保存了信息 hfValue.Value = guir.UserId;//HiddenField 保存了uid ObjectDataSource1.DataBind(); if (member.status == 1) { btnOK.Enabled = false; btnOK.Text = "已關注"; } else if (member.status == 2) { btnOK.Enabled = false; btnOK.Text = "已凍結"; } else { btnOK.Enabled = true; btnOK.Text = "請關注"; } } }#if DEBUG else { hfValue.Value = "MysticBoy"; ObjectDataSource1.DataBind(); }#endif } }//這是從數據庫里面查詢要用ObjectDataSource1顯示的內容的方法, 根據你的情況來寫這段代碼 public bas_Company GetCompanyInfo(string userid) { bas_Company result = null; using (CISDBEntities ef = new CISDBEntities()) { var ci = from c in ef.bas_Company where c.UserName == userid select c; if (ci.Any()) { result = ci.Single(); } } return result; } protected void btnOK_Click(object sender, EventArgs e) { string userId = hfValue.Value; string accessToken = hfaccessToken.Value; var member = Senparc.Weixin.QY.AdvancedAPIs.MailList.MailListApi.GetMember(accessToken, userId);//根據上次保留的accessToken userId 信息查詢這個會員是不是已經被關注,尤其是在手機里面點了返回后! if (member.status == 4)//是未關注 {//https://github.com/JeffreySu/WeiXinMPSDK 里面的 // Senparc.Weixin.QY.AdvancedAPIs.Concern.ConcernApi.TwoVerification//截止2015年4月14日里面的參數沒傳對,因此在這里使用自己的代碼 var url = string.Format("https://qyapi.weixin.QQ.com/cgi-bin/user/authsucc?access_token={0}&userid={1}", accessToken, userId); var result = Get.GetJson<QyJsonResult>(url); if (result.errcode == 0) { btnOK.Enabled = false; btnOK.Text = "已經關注"; } else { btnOK.Text = result.errmsg; } } else if (member.status == 1)//已經關注了 { btnOK.Enabled = false; btnOK.Text = "已關注"; } else if (member.status == 2)//被凍結了 { btnOK.Enabled = false; btnOK.Text = "已凍結"; } } }}
由于本職工作是linux下使用C做嵌入式應用開發,關于微信等BS方面相形見拙,請看官不要見笑
新聞熱點
疑難解答