在winform下怎么样回调微信支付通知

移动开发 码拜 4年前 (2016-03-31) 578次浏览
怎么样利用:
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;
        }
}
解决方案

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明在winform下怎么样回调微信支付通知
喜欢 (0)
[1034331897@qq.com]
分享 (0)