微信公众号需要和用户进行交互时,需要对服务器进行配置,否则微信无法将用户的信息传送至开发者后台,接下来记录一下如何进行服务器配置进行回调

1.首先登录微信公众平台,点击“设置与开发”---基本配置

2.首先先去建立一个网站后台,以MVC网站为例,在HomeControl下建议一个YanZheng的页面,代码如下

[HttpGet]
public ActionResult YanZheng()
{
        int ret = 0;
        string sEchoStr = "";
        string sToken = "";
        string sCorpID = "";
        string sEncodingAESKey = "";
        DataTable dt = q.GetWXConfigTb();
        if (dt != null && dt.Rows.Count > 0)
        {
            sCorpID = dt.Rows[0]["corpid"].ToString();
            sToken = dt.Rows[0]["sToken"].ToString();
            sEncodingAESKey = dt.Rows[0]["EncodingAESKey"].ToString();
        }
        WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(sToken, sEncodingAESKey, sCorpID);

        /*------------使用示例一:验证回调URL---------------
         * 企业开启回调模式时,企业微信会向验证url发送一个get请求 
         * 假设点击验证时,企业收到类似请求:
         * 请求格式:?signature=902365f057c46947ebdd7b8e733915×tamp=1520950821&nonce=4123677097&echostr=12912270759014956927
         * HTTP/1.1 Host: qy.weixin.qq.com
         * 接收到该请求时,企业应
         * 1.解析出Get请求的参数,包括消息体签名(msg_signature),时间戳(timestamp),随机数字串(nonce)以及企业微信推送过来的随机加密字符串(echostr)
         * 这一步注意作URL解码。
         * 2.验证消息体签名的正确性 (注意GenarateSinature不需要echostr进行数组排序)
         * 3.验证通过,返回echostr原文,将原文当作Get请求的response,返回给企业微信
         * 解密出echostr原文,
         * 第2,3步可以用企业微信提供的库函数VerifyURL来实现。*/
        
        if (string.IsNullOrEmpty(Request.QueryString["echoStr"]))
        {
            return Content("");
        }
        if (string.IsNullOrEmpty(Request.QueryString["signature"]))
        {
            return Content("");
        }
        if (string.IsNullOrEmpty(Request.QueryString["timestamp"]))
        {
            return Content("");
        }
        if (string.IsNullOrEmpty(Request.QueryString["nonce"]))
        {
            return Content("");
        }

        string sVerifyMsgSig = Request.QueryString["signature"].ToString();
        string sVerifyTimeStamp = Request.QueryString["timestamp"].ToString();
        string sVerifyNonce = Request.QueryString["nonce"].ToString();
        string sVerifyEchoStr = Request.QueryString["echoStr"].ToString();
        //writeLogInfo("微信get请求", sVerifyMsgSig + "," + sVerifyTimeStamp + "," + sVerifyNonce + "," + sVerifyEchoStr);
        //return Content(sVerifyEchoStr);
        ret = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp, sVerifyNonce, sVerifyEchoStr, ref sEchoStr);
        if (ret != 0)
        {
            return Content("");
        }
        else
        {
            if (!string.IsNullOrEmpty(sVerifyEchoStr))
            {
                return Content(sVerifyEchoStr);
            }
            else
            {
                return Content("");
            }
        }
    }

发布后,再回到微信公众平台服务器配置界面,将网址填入

微信公众号如何进行服务器配置_get请求


点击启用,即可