123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using LYFZ.WXLibrary;
- using LYFZ.Weixin.SDK;
- using System.IO;
- namespace LYFZ.WeixinServers.WeiXinAPP
- {
- public partial class Weixin : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- WriteContent("测试服务器已关闭");
- return;
- // WeixinConfig.Register(); 暂时关闭
- /* string signature = Request["signature"];
- string timestamp = Request["timestamp"];
- string nonce = Request["nonce"];
- string echostr = Request["echostr"];
- var token = WeixinConfig.Token;//微信公众平台后台设置的Token
- if (Request.HttpMethod == "GET")
- {
- // LYFZ.WXLibrary.CommonHandleClass.WriteLog("GET:开始验证");
- //get method - 仅在微信后台填写URL验证时触发
-
- if (string.IsNullOrEmpty(token))
- {
- WriteContent("请先设置Token!");
- }
- else
- {
- var ent = "";
- if (BasicAPI.CheckSignature(signature, timestamp, nonce, token, out ent))
- {
- CommonHandleClass.WriteLog("GET:验证通过");
- WriteContent(echostr); //返回随机字符串则表示验证通过
- }
- else
- {
- WriteContent("failed:" + signature + "," + BasicAPI.GetSignature(timestamp, nonce, token) + "。" +
- "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。");
- }
- }
- Response.End();
- }
- else
- {
- // CommonHandleClass.WriteLog("POST:开始处理");
- //post method - 当有用户向公众账号发送消息时触发
- var ent = "";
- if (!BasicAPI.CheckSignature(signature, timestamp, nonce, token, out ent))
- {
- CommonHandleClass.WriteLog("POST:参数错误");
- WriteContent("参数错误!");
- return;
- }
-
- try
- {
- WeixinMessage message = null;
- var safeMode = Request.QueryString.Get("encrypt_type") == "aes";
- using (var streamReader = new StreamReader(Request.InputStream))
- {
- var decryptMsg = string.Empty;
- var msg = streamReader.ReadToEnd();
- #region 解密
- if (safeMode)
- {
- var msg_signature = Request.QueryString.Get("msg_signature");
- var wxBizMsgCrypt = new Tencent.WXBizMsgCrypt(WeixinConfig.Token, WeixinConfig.EncodingAESKey, WeixinConfig.AppID);
- var ret = wxBizMsgCrypt.DecryptMsg(msg_signature, timestamp, nonce, msg, ref decryptMsg);
- if (ret != 0)//解密失败
- {
- //TODO:开发者解密失败的业务处理逻辑
- CommonHandleClass.WriteLog(string.Format("解密失败,解密消息返回{0},请身体{1}", ret, msg));
- }
- }
- else
- {
- decryptMsg = msg;
- }
- #endregion
- message = AcceptMessageAPI.Parse(decryptMsg);
- }
- var response = new WeixinExecutor().Execute(message);
- var encryptMsg = string.Empty;
- #region 加密
- if (safeMode)
- {
- var msg_signature = Request.QueryString.Get("msg_signature");
- var wxBizMsgCrypt = new Tencent.WXBizMsgCrypt(WeixinConfig.Token, WeixinConfig.EncodingAESKey, WeixinConfig.AppID);
- var ret = wxBizMsgCrypt.EncryptMsg(response, timestamp, nonce, ref encryptMsg);
- if (ret != 0)//加密失败
- {
- //TODO:开发者加密失败的业务处理逻辑
- CommonHandleClass.WriteLog(string.Format("加密失败,加密消息返回{0},响应体{1}", ret, response));
- }
- }
- else
- {
- encryptMsg = response;
- }
- #endregion
- WriteContent(encryptMsg);
- return;
- }
- catch (Exception ex)
- {
- LYFZ.WXLibrary.CommonHandleClass.WriteLog("POST:错误:" + ex.Message);
-
- }
- finally
- {
- Response.End();
- //HttpContext.Current.ApplicationInstance.CompleteRequest();
- }
-
- }*/
- }
- private void WriteContent(string str)
- {
- Response.Output.Write(str);
- }
- }
- }
|