一、实现URL接入
相关参数描述
[flash=500,400]http://s1.knowsky.com/20160211/w3gxy3d1vrs04.jpg[/flash]
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Web;namespaceWeiXinWebapplication{publicclassCheckSignature
{///<summary>///网站没有提供Token情况下的默认Token///</summary>publicconststringToken ="weixin";///<summary>///检查签名是否正确///</summary>///<param name="signature">微信加密签名</param>///<param name="timestamp">时间戳</param>///<param name="nonce">随机数</param>///<param name="token"></param>///<returns></returns>publicstaticboolCheck(stringsignature,stringtimestamp,stringnonce,stringtoken)
{returnsignature ==GetSignature(timestamp, nonce, token);
}///<summary>///返回正确的签名///</summary>///<param name="timestamp"></param>///<param name="nonce"></param>///<param name="token"></param>///<returns></returns>publicstaticstringGetSignature(stringtimestamp,stringnonce,stringtoken =Token)
{
token= token ??Token;string[] arr =new[] {token,timestamp,nonce }.OrderBy(z=>z).ToArray();stringarrString =string.Join("",arr);
System.Security.Cryptography.SHA1 shal=System.Security.Cryptography.SHA1.Create();byte[] shalArr =shal.ComputeHash(Encoding.UTF8.GetBytes(arrString));
StringBuilder enText=newStringBuilder();foreach(varbinshalArr)
{
enText.AppendFormat("{0:x2}",b);
}returnenText.ToString();
}
}
}
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;namespaceWeiXinWebApplication
{publicpartialclassIndex : System.Web.UI.Page
{///<summary>///与微信公众账号后台的Token设置保持一致,区分大小写///</summary>PRivatereadonlystringToken ="weixin";protectedvoidPage_Load(objectsender, EventArgs e)
{
Auth();
}///<summary>///处理微信服务器验证消息///</summary>privatevoidAuth()
{stringsignature = Request["signature"];stringtimestamp = Request["timestamp"];stringnonce = Request["nonce"];stringechostr = Request["echostr"];if(Request.HttpMethod =="GET")
{if(CheckSignature.Check(signature, timestamp, nonce, Token))
{
WriteContent(echostr);
}else{
WriteContent("failed:"+ signature +","+ CheckSignature.GetSignature(timestamp, nonce, Token) +"."+"如果你在浏览器中看到这句话,说明此地址可以被作为微信公众号后台的URL,请注意保持Token一致。");
}
Response.End();
}
}privatevoidWriteContent(stringstr)
{
Response.Output.Write(str);
}
}
}
二、接入微信公众平台
[flash=500,400]http://s1.knowsky.com/20160211/bd5z4hhrlhd04.png[/flash]
这样我们就成功实现了URL接入微信公众平台的工作。