写在前面:关注最下方公众号“Dotnet专栏”回复“微信开发”免费获取源码。
由于用户体验和安全性方面的考虑,微信公众号的注册有一定门槛,某些高级接口的权限需要微信认证后才可以获取。所以,为了帮助开发者快速了解和上手微信公众号开发,熟悉各个接口的调用,微信推出了微信公众帐号测试号。
此系列暂时以微信测试号教学。
第一步:申请微信测试号
申请地址: 官方文档.
好了我们申请好了测试号,接下来是配置测试号,只有配置了才可以正常使 用微信的一些接口。
第二步:配置微信测试号
1、appID:如果开发过其他第三方接口的,都知道,需要验证才能使用,那么这个是用于验证的一串文字。
2、appsecret:一般结合appID去获取一些验证或者接口啥的。
3、URL:这个地址就填我们程序可以接收到token验证请求的后台接口,注意,一定得有自己的服务器,因为要接收微信发送的一系列请求啥的,不可以填本地诸如localhost。当然,可以外网穿透(后台回复外网穿透获取免费工具),把我们的本地localhost映射成外网供微信传输数据,这样我们就可以本地测试而不用一直跑到服务器调试(很麻烦的)。验证代码贴一下。
/// <summary>
/// 验证微信签名方法
/// </summary>
/// <param name="signature">签名</param>
/// <param name="timestamp">时间戳</param>
/// <param name="nonce">随机数</param>
/// <param name="echostr"></param>
/// <returns></returns>
public ActionResult Valid(string signature, string timestamp, string nonce, string echostr)
{
if (WeixinMsgHelper.CheckSignature(Token, signature, timestamp, nonce))
{
return Content(echostr);
}
else
{
return Content("failed:" + signature + "," + WeixinMsgHelper.CheckSignature(Token, timestamp, nonce, Token) + "。如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。");
}
}
public static bool CheckSignature(string token, string signature, string timestamp, string nonce)
{
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)
{
return true;
}
else
{
return false;
}
}
4、Token :令牌(口号),前期学习阶段,乱填就行了。注意和后台的一致就行
5、JS接口安全域名:这个是我们程序用到一些JSSDK接口需要的,比如扫一扫,地图显示或者拍照等接口
6、网页服务账号:配置域名,填JS接口安全域名就好。
项目配置
我们部署后端程序的时候,端口一定要80或者 443
关注我们,获取更多Dotnet开发资源