一、前提条件,要有一台服务器

请填写接口配置信息,此信息需要你有自己的服务器资源,填写的URL需要正确响应微信发送的Token验证,请阅读消息接口使用指南。

二、C#代码示例

但是上面链接中的代码是PHP示例代码,因此我整理了一份C#版的,亲测能用。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Security.Cryptography;

using System.Text;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace WXtoken

{

public partial class index : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

//验证token

string poststring = string.Empty;

string token = "aabbcc"; //验证token,随意填写

if (string.IsNullOrEmpty(token))

{

return;

}

string echostr = HttpContext.Current.Request.QueryString["echostr"];

string signature = HttpContext.Current.Request.QueryString["signature"];

string timestamp = HttpContext.Current.Request.QueryString["timestamp"];

string nonce = HttpContext.Current.Request.QueryString["nonce"];

if (checkSignature(token, signature, timestamp, nonce, nonce))

{

HttpContext.Current.Response.Write(echostr);

HttpContext.Current.Response.End();

}

}

#region 微信接口对接验证代码

public bool checkSignature(string token, string signature, string timestamp, string nonce, string echostr)

{

List list = new List();

list.Add(token);

list.Add(timestamp);

list.Add(nonce);

list.Sort();

string res = string.Join("", list.ToArray());

Byte[] dataToHash = Encoding.ASCII.GetBytes(res);

byte[] hashvalue = ((HashAlgorithm)CryptoConfig.CreateFromName("SHA1")).ComputeHash(dataToHash);

StringBuilder sb = new StringBuilder();

foreach (byte b in hashvalue)

{

sb.Append(b.ToString("x2"));

}

if (signature == sb.ToString())

return true;

else

return false;

}

#endregion

}

}

三、配置失败原因整理:

端口错误,必须是80或者443端口

参数错误,建议从官方文档复制参数到项目中(我就是有两个字母写反了,尴尬)

地址或者Token错误

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐