微信公众号需要和用户进行交互时,需要对服务器进行配置,否则微信无法将用户的信息传送至开发者后台,接下来记录一下如何进行服务器配置进行回调
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("");
}
}
}
发布后,再回到微信公众平台服务器配置界面,将网址填入
点击启用,即可