求教:企业微信接收消息服务器配置方法

程序海哥 程序海哥 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区


我用了,以下的代码做了一个asp.net web页,但总是验证不通过,跪求帮助:

const string Token = "abc123456";//定义一个局部变量不可以被修改,这里定义的变量要与接口配置信息中填写的Token一
protected void Page_Load(object sender, EventArgs e)
{
Valid();//校验签名
}

private void Valid()
{
string echoStr = Request.QueryString["echoStr"].ToString();
if (CheckSignature())
{
if (!string.IsNullOrEmpty(echoStr))
{
Response.Write(echoStr);
Response.End();
}
}
}

/// <summary>
/// 验证微信签名
/// </summary>
/// <returns></returns>
private bool CheckSignature()
{
string signature = Request.QueryString["signature"].ToString();
string timestamp = Request.QueryString["timestamp"].ToString();
string nonce = Request.QueryString["nonce"].ToString();
string[] ArrTmp = { Token, timestamp, nonce };
Array.Sort(ArrTmp);//字典排序
string tmpStr = string.Join("", ArrTmp);
tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//对该字符串进行sha1加密
tmpStr = tmpStr.ToLower();//对字符串中的字母部分进行小写转换,非字母字符不作处理
if (tmpStr == signature)//开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。开发者通过检验signat
{
return true;
}
else
return false;
}
}
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部
程序海哥
微信开发 3,161 成员 3,828 内容