예제 #1
0
    /// <summary>
    /// 微信发送文本信息
    /// </summary>
    /// <param name="wxRequestXMLModel">消息发送方微信号</param>
    /// <param name="ToUserName">消息接收方微信号,一般为公众平台账号微信号</param>
    /// <param name="Content">消息内容</param>
    private string sendText(WXRequest wxRequest)
    {
        string Result       = "";
        string FromUserName = wxRequest.FromUserName;
        string ToUserName   = wxRequest.ToUserName;
        string Content      = "";

        //创建用户对象
        //非员工信息
        //if ()
        //{
        //if ("ZC")//注册校验,自己可以写自己的用户注册功能
        //{
        //}
        if (wxRequest.MsgType.ToLower() == "event")
        {
            //EnumEvent ee=(EnumEvent)Enum.Parse(typeof(EnumEvent), wxRequest.eventModel.Event);
            if (wxRequest.eventModel.Event == EnumMapHelper.GetStringFromEnum(EnumEvent.subscribe))
            {
                Result = "感谢新的关注!";
            }
            else
            {
                Result = wxRequest.eventModel.EventKey;
            }
        }
        else if (wxRequest.MsgType.ToLower() == "text")
        {
            //EnumEvent ee=(EnumEvent)Enum.Parse(typeof(EnumEvent), wxRequest.eventModel.Event);
            Content = wxRequest.textModel.Content;
        }
        //else
        //{
        //    Result = "您好,感谢查看XX微信平台!您当前状态是“未注册”。注册方法是:发送:ZC#张三";
        //}
        //}
        //else//公司员工
        //{
        //    //属于员工的自己内部业务
        //}


        //创建属性文件
        WXResponse wxResponse = new WXResponse("text");

        Result = (Result == "" ? "内容[" + Content + "]" : Result);
        //FromUserName = "******";//模拟发送人,不支持
        wxResponse.ToUserName        = FromUserName;
        wxResponse.FromUserName      = ToUserName;
        wxResponse.textModel.Content = Result;
        WXTool.WriteLog("三、微信平台发送信息sendStr=" + Result);
        return(wxResponse.ResponseXML());
    }
예제 #2
0
    /// <summary>
    /// 验证微信签名
    /// </summary>
    /// * 将token、timestamp、nonce三个参数进行字典序排序
    /// * 将三个参数字符串拼接成一个字符串进行sha1加密
    /// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。
    /// <returns></returns>
    private bool CheckSignature()
    {
        string signature = Request.QueryString["signature"] as String;
        string timestamp = Request.QueryString["timestamp"] as String;
        string nonce     = Request.QueryString["nonce"] as String;
        string echostr   = Request.QueryString["echostr"] as String;

        string[] ArrTmp = { Token, timestamp, nonce };
        Array.Sort(ArrTmp);     //字典排序
        string tmpStr = string.Join("", ArrTmp);

        tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
        tmpStr = tmpStr.ToLower();
        WXTool.WriteLog("一、微信签名认证:signature=" + signature + ";Token=" + Token + ";timestamp=" + timestamp + ";nonce=" + nonce + ";tmpStr=" + tmpStr);
        if (tmpStr == signature)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
예제 #3
0
    const string Token = "CucentOA";            //token
    protected void Page_Load(object sender, EventArgs e)
    {
        string postStr = "";

        Response.Write("ssata");

        return;

        //Test();//Debug模式使用,用来模拟微信发送的数据
        Valid();//校验签名
        if (Request.HttpMethod.ToLower() == "post")
        {
            Stream s = System.Web.HttpContext.Current.Request.InputStream;
            byte[] b = new byte[s.Length];
            s.Read(b, 0, (int)s.Length);
            postStr = Encoding.UTF8.GetString(b);
            if (!string.IsNullOrEmpty(postStr))
            {
                WXTool.WriteLog("二、微信平台接收信息postStr=" + postStr);
                ResponseMsg(postStr);
            }
        }
    }