怎么样利用:
Page page = (Page)HttpContext.Current.Handler;
HttpWebResponse;
HttpWebRequest;
HttpListener;
HttpListenerContext;;
等类实现在windows form下监视?
*********************************************************************************
微信支付官方BS结构 demo
Page page = (Page)HttpContext.Current.Handler;
HttpWebResponse;
HttpWebRequest;
HttpListener;
HttpListenerContext;;
等类实现在windows form下监视?
*********************************************************************************
微信支付官方BS结构 demo
/// <summary> /// 回调处理基类 /// 主要负责接收微信支付后台发送过来的数据,对数据进行签名验证 /// 子类在此类基础上进行派生并重写本人的回调处理过程 /// </summary> public class Notify { public Page page {get;set;} public Notify(Page page) { this.page = page; } WxPayData data = new WxPayData(); /// <summary> /// 接收从微信支付后台发送过来的数据并验证签名 /// </summary> /// <returns>微信支付后台返回的数据</returns> public WxPayData GetNotifyData() { //接收从微信后台POST过来的数据 System.IO.Stream s = page.Request.InputStream;//这个page也是。 int count = 0; byte[] buffer = new byte[1024]; StringBuilder builder = new StringBuilder(); while ((count = s.Read(buffer, 0, 1024)) > 0) { builder.Append(Encoding.UTF8.GetString(buffer, 0, count)); } s.Flush(); s.Close(); s.Dispose(); Log.Info(this.GetType().ToString(), "Receive data from WeChat : " + builder.ToString()); //转换数据格式并验证签名 try { data.FromXml(builder.ToString()); } catch(WxPayException ex) { //若签名错误,则立即返回结果给微信支付后台 WxPayData res = new WxPayData(); res.SetValue("return_code", "FAIL"); res.SetValue("return_msg", ex.Message); Log.Error(this.GetType().ToString(), "Sign check error : " + res.ToXml()); page.Response.Write(res.ToXml());//结果ying"g page.Response.End(); } Log.Info(this.GetType().ToString(), "Check sign success"); return data; } }
解决方案