AuthorizeCallback.aspx.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. using LYFZ.Weixin.SDK;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Web;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. namespace LYFZ.WeixinServers
  9. {
  10. public partial class AuthorizeCallback : System.Web.UI.Page
  11. {
  12. public string retText = "";
  13. LYFZ.WeixinServiceDate.DAL.DAL_Authorization_info Authorization_infoDal = new WeixinServiceDate.DAL.DAL_Authorization_info();
  14. protected void Page_Load(object sender, EventArgs e)
  15. {
  16. /* LYFZ.WeixinServiceDate.Model.Model_Authorization_info Authorization_infoModel2 = Authorization_infoDal.GetModel(1);
  17. var retObj = LYFZ.Weixin.SDK.BasicAPI.JsonToDynamic(Authorization_infoModel2.Authorization_info);
  18. string authorizer_appid2 = retObj.authorization_info.authorizer_appid;
  19. string authorizer_access_token = retObj.authorization_info.authorizer_access_token;
  20. int expires_in2 =Convert.ToInt32(retObj.authorization_info.expires_in);
  21. var func_infos = retObj.authorization_info.func_info;
  22. string funcscope_categoryID1 = func_infos[0].funcscope_category.id.ToString();
  23. string funcscope_categoryID2 = func_infos[1].funcscope_category.id.ToString();
  24. string funcscope_categoryID3 = func_infos[2].funcscope_category.id.ToString();
  25. retObj.authorization_info.authorizer_access_token = "DDDDDDDDDDDDD";
  26. string tempstr = retObj.ToString();*/
  27. //开始授权
  28. this.Title = "微信公众号授权失败";
  29. retText = this.Title + ",请在管理软件中重新发起授权";
  30. if (!IsPostBack)
  31. {
  32. if (this.Request.QueryString["auth_code"] != null && this.Request.QueryString["expires_in"] != null)
  33. {
  34. //授权是否成功
  35. bool AuthorizeSuccess = false;
  36. //使用授权码换取公众号的接口调用凭据和授权信息
  37. /* string auth_code = this.Request.QueryString["auth_code"].ToString();
  38. int expires_in = Convert.ToInt32(this.Request.QueryString["expires_in"].ToString());
  39. Dictionary<string, string> dic = new Dictionary<string, string>
  40. {
  41. {"component_appid",LYFZ.WXLibrary.OpenPlatformConfig.OpenAppID},
  42. {"authorization_code",auth_code},
  43. };
  44. */
  45. string JMGDomainName = "";
  46. string AuthorizedAPPID = "";
  47. if (this.Request.QueryString["authorizeParameter"] != null)
  48. {
  49. //string tempstr = LYFZ.WinAPI.SDKSecurity.Encode("wx05b2b9320ce2cfae&20170225727232.lyfz.com");
  50. string[] authorizeParameters = LYFZ.WinAPI.SDKSecurity.Decode(Request["authorizeParameter"].ToString().Trim()).Split('&');
  51. AuthorizedAPPID = authorizeParameters[0];
  52. JMGDomainName = authorizeParameters[1];
  53. }
  54. try
  55. {
  56. LYFZ.WeixinServiceDate.Model.Model_CustomerInterfaces cusModel = Global.GetCustomerModel(JMGDomainName);
  57. if (cusModel != null && cusModel.ID > 0 && cusModel.AppID.Trim().ToLower() == AuthorizedAPPID.Trim().ToLower())
  58. {
  59. LYFZ.WeixinServiceDate.Model.Model_Authorization_info Authorization_infoModel = new LYFZ.WeixinServiceDate.Model.Model_Authorization_info();
  60. int tempCount = 0;
  61. while (tempCount<10)
  62. {
  63. tempCount++;
  64. System.Threading.Thread.Sleep(500);
  65. bool isExistsAuthorization_info = Authorization_infoDal.Exists("authorizer_appid", AuthorizedAPPID);
  66. if (isExistsAuthorization_info)
  67. {
  68. Authorization_infoModel = (LYFZ.WeixinServiceDate.Model.Model_Authorization_info)Authorization_infoDal.GetModelObject("authorizer_appid", AuthorizedAPPID);
  69. Authorization_infoModel.CompanyName = cusModel.CompanyName;
  70. Authorization_infoModel.JMGDomainName = cusModel.JMGDomainName;
  71. LYFZ.WXLibrary.CommonHandleClass.WriteLog("邦定接口:CompanyName=" + Authorization_infoModel.CompanyName + " &JMGDomainName=" + Authorization_infoModel.JMGDomainName, "-2", Global.LogsDongleDomainList);
  72. AuthorizeSuccess = Authorization_infoDal.Update(Authorization_infoModel);
  73. if (!AuthorizeSuccess)
  74. {
  75. retText = this.Title + ",请点击“<a href=\"Authorize.aspx?appid=" + AuthorizedAPPID + "&yuname=" + Request["yuname"].ToString().Trim() + "\">重新授权</a>”<br />失败原因:更新数据库操作失败";
  76. }
  77. else {
  78. Global.AddAuthorizedAPPIDHand(Authorization_infoModel);
  79. Global.UpdateAuthorizationInfoDaTable(Authorization_infoModel.Authorizer_appid, Authorization_infoModel);
  80. }
  81. break;
  82. }
  83. else
  84. {
  85. retText = this.Title + ",失败原因:请求授权公众号APPID“" + AuthorizedAPPID + "”与管理软件中配置的公众号APPID不匹配";
  86. }
  87. }
  88. /* string json = (new System.Web.Script.Serialization.JavaScriptSerializer()).Serialize(dic);
  89. string retmsg = "";
  90. var Authorization_InfoObj = BasicAPI.GetAuthorization_Info(LYFZ.WXLibrary.OpenPlatformConfig.Component_Access_Token, json,out retmsg);
  91. if (Authorization_InfoObj != null)
  92. {
  93. if (Authorization_InfoObj != null && Authorization_InfoObj.authorization_info.authorizer_appid.ToString().Trim().Length > 0)
  94. {
  95. string authorizer_appid = Authorization_InfoObj.authorization_info.authorizer_appid.ToString().Trim();
  96. LYFZ.WeixinServiceDate.Model.Model_Authorization_info Authorization_infoModel = new LYFZ.WeixinServiceDate.Model.Model_Authorization_info();
  97. if (Authorization_infoDal.Exists("authorizer_appid", authorizer_appid))
  98. {
  99. Authorization_infoModel = (LYFZ.WeixinServiceDate.Model.Model_Authorization_info)Authorization_infoDal.GetModelObject("authorizer_appid", authorizer_appid);
  100. }
  101. Authorization_infoModel.Authorizer_appid = authorizer_appid;
  102. Authorization_infoModel.Authorization_info = Authorization_InfoObj.ToString();
  103. Authorization_infoModel.Authorizer_access_token = Authorization_InfoObj.authorization_info.authorizer_access_token;
  104. Authorization_infoModel.Expires_in = Convert.ToInt32(Authorization_InfoObj.authorization_info.expires_in);
  105. Authorization_infoModel.Authorizer_refresh_token = Authorization_InfoObj.authorization_info.authorizer_refresh_token;
  106. Authorization_infoModel.AuthorizeStatus = 1;
  107. Authorization_infoModel.UpdateTime = DateTime.Now;
  108. Authorization_infoModel.CompanyName = cusModel.CompanyName;
  109. Authorization_infoModel.JMGDomainName = cusModel.JMGDomainName;
  110. if (Authorization_infoModel.ID > 0)
  111. {
  112. AuthorizeSuccess = Authorization_infoDal.Update(Authorization_infoModel);
  113. }
  114. else
  115. {
  116. Authorization_infoModel.CreateTime = DateTime.Now;
  117. AuthorizeSuccess = Authorization_infoDal.Add(Authorization_infoModel);
  118. }
  119. if (!AuthorizeSuccess)
  120. {
  121. retText = this.Title + ",请点击“<a href=\"Authorize.aspx?yuname=" + Request["yuname"].ToString().Trim() + "\">重新授权</a>”<br />失败原因:更新数据库操作失败";
  122. }
  123. }
  124. else
  125. {
  126. LYFZ.WXLibrary.CommonHandleClass.WriteLog("获取授权失败请重试", "-2", Global.LogsDongleDomainList);
  127. }
  128. }
  129. else {
  130. LYFZ.WXLibrary.CommonHandleClass.WriteLog("获取授权失败,原因:" + retmsg, "-2", Global.LogsDongleDomainList);
  131. }*/
  132. }
  133. else
  134. {
  135. retText = this.Title + ",失败原因:请求授权公众号为非法公众号";
  136. }
  137. }
  138. catch (Exception ex)
  139. {
  140. LYFZ.WXLibrary.CommonHandleClass.WriteLog("解析返回授权信息时出错:" + ex.Message, "-2", Global.LogsDongleDomainList);
  141. }
  142. if (AuthorizeSuccess)
  143. {
  144. this.Title = "微信公众号授权成功";
  145. retText = this.Title + ",可以关闭此页";
  146. }
  147. }
  148. else
  149. {
  150. retText = this.Title + ",授权请求无效,请在管理软件中重新发起授权";
  151. }
  152. }
  153. else
  154. {
  155. retText = this.Title + ",授权请求已过期";
  156. }
  157. this.h3Info.InnerHtml = retText;
  158. }
  159. }
  160. }