首次接受这个项目,看了微信的API,云里雾里,经过几经测试,理清思路

开发者自个申请,微信API给出四个参数:

下面我解释下

signature 是微信加密签名 即:微信服务器将 timetamp nonce  token(你提交的)使用SHA1加密后 会使用GET方式发送给你。

timestamp是腾讯服务器发送的一个时间戳

nonce是腾讯服务器发送的一个随机数

成功申请的关键是在下面,上面的几个参数只是 微信提供 用户请求--->你自己的网站 的一个验证方式。

echostr就是 腾讯服务器发送的一个随机字符串 这个需要你在自己网站接受后 使用输出流 Respons.Write(echostr);

记住最好在输出完毕终止流 Response.End(); 然后就可以成功申请了。

参数 描述
signature 微信加密签名
timestamp 时间戳
nonce 随机数
echostr 随机字符串 
  1. private void Valid()
  2. {
  3. string echoStr = Request.QueryString["echoStr"].ToString();
  4. if (CheckSignature())
  5. {
  6. if (!string.IsNullOrEmpty(echoStr))
  7. {
  8. Response.Write(echoStr);
  9. Response.End();
  10. }
  11. }
  12. }
  1. private bool CheckSignature()
  2. {
  3. string signature = Request.QueryString["signature"].ToString();
  4. string timestamp = Request.QueryString["timestamp"].ToString();
  5. string nonce = Request.QueryString["nonce"].ToString();
  6. string[] ArrTmp = { Token, timestamp, nonce };
  7. Array.Sort(ArrTmp);     //字典排序
  8. string tmpStr = string.Join("", ArrTmp);
  9. tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
  10. tmpStr = tmpStr.ToLower();
  11. if (tmpStr == signature)
  12. {
  13. return true;
  14. }
  15. else
  16. {
  17. return false;
  18. }
  19. }

.net 微信Token验证的更多相关文章

  1. 8-网页,网站,微信公众号基础入门(使用Python程序实现微信token验证)

    https://www.cnblogs.com/yangfengwu/p/11062034.html 设置一下IP白名单:   填写自己的服务器的IP地址 是不是不可以哈,有多少人都会入这个坑.... ...

  2. .NET 微信Token验证和消息接收和回复

    public class wxXmlModel { public string ToUserName { get; set; } public string FromUserName { get; s ...

  3. 微信token验证失败的几种情况

    最近在研究用PHP做微信开发的时候,“修改配置时”,总是遇到token验证失败的提示.历经一番查找,种种输出日志和echo,发现,如果不echo调试信息,也不写日志,就不需要ob_clean(),如果 ...

  4. 微信token验证源码分享(c#版)

    在开发时遇到一个问题: 上线后提交申请微信提示"您的服务器没有正确响应token验证...",我查看日志发现根本就没有接收到来自微信的参数. 后来我又记录了微信请求方式和请求的字符 ...

  5. 微信token验证失败的解决方法

    一.问题由来 在使用URL和Token启用微信公众平台开发模式消息接口的时候,我们会碰到下面三种情况 1. token校验失败 这样回头检查一下各项配置是否正确.如果确定配置没有问题,请按下面的方法检 ...

  6. 微信 token 验证

    package org.sxl.weixin; import java.security.MessageDigest; import java.security.NoSuchAlgorithmExce ...

  7. 微信Token验证

    /// <summary> /// 微信验证 /// </summary> /// <param name="echostr"></par ...

  8. 9-网页,网站,微信公众号基础入门(使用PHP实现微信token验证)

    https://www.cnblogs.com/yangfengwu/p/11062422.html 这一节看怎么用PHP实现上一节的功能 关掉上一节的 学了这么久,忘了告诉大家怎么关闭程序了.... ...

  9. 总想自己动动手系列·3·微信公众号和外网服务交互之通过TOKEN验证(准备篇·1)

    一.准备工作 (1)准备一个微信公众号(对私的订阅号或者对公的服务号). (2)准备一台部署了web应用,并且已经发布出去的Linux服务器(需要说明的是:微信公众号强烈建议使用80端口,使用其他自定 ...

随机推荐

  1. webpack window 添加ES6支出

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:张轩链接:http://zhuanlan.zhihu.com/p/20367175来源:知乎 如果现在你的项目还没有对ES6的 ...

  2. 《安卓考试》通用版ver-2,截图和源码

    首先放出源码:https://github.com/chenyoca/AndroidTopicBankEx 然后是实际应用运行效果截图: 最后说明一下: 1.应用没有完成,应用的数据是模拟的. 2.应 ...

  3. 【java】详解JDK的安装和配置

    目录结构: contents structure [+] 什么是JDK JDK的三个版本 JDK包含的主要内容 JDK的安装 JDK的配置 配置JAVA_HOME 配置PATH 到底自己需不需要配置C ...

  4. 环信集成 2---基于环信Demo3.0,实现单聊功能

    这几天在做环信,所以把环信相关的东西拿过来,做个系统点的东西 注意: 这里Demo集成的是带有实时语音功能的(libEaseMobClientSDK.a). 环信库是直接拖拽EaseMobSDK文件夹 ...

  5. Oracle 12C -- sequence的新特性

    如果使用了全局临时表和sequence,有时会遇到一些问题.因为全局临时表与会话(或会话中的事务)相关,而sequence与数据库级别相关. 在12C中,可以创建一个sequence,其使用范围只是针 ...

  6. 整合大量开源库项目(八)能够载入Gif动画的GifImageView

    转载请注明出处王亟亟的大牛之路 上周大多数时间都是依据兴起,想到什么做什么写了几个自己定义控件,把Soyi丢在那没怎么动,今天就把写的东西整合进来,顺便把SOyi"个人研发的结构理一下&qu ...

  7. 跟我学SharePoint 2013视频培训课程——理解SharePoint网站的体系结构(3)

    课程简介 第三天,理解SharePoint 2013 网站的体系结构 视频 SharePoint 2013 交流群 41032413

  8. oracle中exists和in的比较

    exists 是Oracle sql中的一个函数.表示是否存在符合某种条件的记录.如 select * from A,B where A.id=B.id and exists (SELECT * FR ...

  9. 【转载】Oracle死锁概念,阻塞产生的原因以及解决方案

    参考原文:http://blog.sina.com.cn/s/blog_9d12d07f0102vu72.html 锁是一种机制,一直存在:死锁是一种错误,尽量避免.​ 首先,要理解锁和死锁的概念:​ ...

  10. flowable 中task的相关操作

    1 获取任务列表 1)获取候选人的任务列表 TaskService taskService = processEngine.getTaskService(); List<Task> tas ...