微信验证对很多人可能是一个坎。对于官方文档我也没怎么看懂。

简单理解:验证时候,微信服务器端会发送一个字符串,然后你按照微信要求的格式返回一个字符串,即可验证成功。

1.微信端以URL带参数访问你所设置的网站地址,Get方式发送一个参数,名称为:echoStr

2.在我们验证期间可以用两种方式进行处理:echoStr

(1)直接输出字符串,即可完成验证(此方法超级简单就可以完成微信验证,不需要进行官方一系列加密匹配等。我把它成为野方法,亲测可用)

    protected void Page_Load(object sender, EventArgs e){// 验证方法
        Valid();}  private void Valid(){string echoStr = Request.QueryString["echoStr"].ToString();// 方法一【推荐】:最简单的方法就是不进行校验,直接输出数据即可通过验证
        Response.Write(echoStr);Response.End();}

(2)官方验证,就需要进行加密匹配

    private void Valid(){string echoStr = Request.QueryString["echoStr"].ToString();//方法二【官方】:通过sha1进行加密匹配if (CheckSignature())//此方法为验证加密 ******
        {if (!string.IsNullOrEmpty(echoStr)){Response.Write(echoStr);Response.End();}}}/// <summary>/// 验证微信签名/// </summary>/// * 将token、timestamp、nonce三个参数进行字典序排序/// * 将三个参数字符串拼接成一个字符串进行sha1加密/// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。/// <returns></returns>private bool CheckSignature(){string signature = Request.QueryString["signature"].ToString();string timestamp = Request.QueryString["timestamp"].ToString();string nonce = Request.QueryString["nonce"].ToString();// 打印获取的参数数据//Common.Log.WriteLog("signature:" + signature + ";   timestamp:" + timestamp + ";     nonce:" + nonce);string[] ArrTmp = { Token, timestamp, nonce };Array.Sort(ArrTmp);     //字典排序string tmpStr = string.Join("", ArrTmp);tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");tmpStr = tmpStr.ToLower();if (tmpStr == signature){return true;}else{return false;}}

这样验证就over,第一种验证方法很简单。。。规范化的第二种方式有兴趣可以看看,也不是很复杂,排序加密判断即可。。。

注:官方验证为了什么,真心没弄明白。难道只是让客户知道自己的连接是否正常或正确?但是直接不验证返回也可以验证 真心 不理解。。。

        

转载于:https://www.cnblogs.com/buzi521/p/3985001.html

微信开发--one.微信平台验证相关推荐

  1. 微信鉴权服务器地址,微信开发之微信授权登录

    本篇教程探讨了微信开发之微信授权登录,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 应用场景是:用Hbuilder打包app,在app中点击微信授权登录或者某一操作, ...

  2. php 微信 语音,PHP语言微信开发:微信录音临时转永久存储

    本文主要向大家介绍了PHP语言微信开发:微信录音临时转永久存储,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 最近做开发的时候碰到了这个问题,甲方希望用户在微信端的录音能够一直有效.就 ...

  3. 微信开发:微信js_sdk 分享,前端部分(二)

    微信开发:微信js-sdk前端分享,代码如下: <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"> ...

  4. 微信开发 --- 调用微信上传图片接口,并保存到自己的服务器

    微信开发 - 调用微信上传图片接口,并保存到自己的服务器 整体思路是这样的: 1.先把手机上的图片上传到微信服务器,然后返回一个图片ID 2.在通过后台根据ID从微信后台拿到流,保存到服务器 前几个步 ...

  5. 微信jsapi支付获取code_微信开发之微信公众平台开发之JSAPI公众号支付

    本文将带你了解微信开发微信公众平台开发之JSAPI公众号支付,希望本文对大家学微信有所帮助. 一:配置参数 申请成功后,获取接口文件, 将所有文件放入项目根目录weixin下,在WxPay.ub.co ...

  6. 微信开发,微信开发者平台

    微信小程序 小程序介绍 微信小程序是一种全新的连接用户端与服务端的方式. 小程序可以在微信内被便捷地获取和传播. 小程序具有出色的用户体验. ###为什么要学习小程序 微信小程序开发成本低.使用方便. ...

  7. 微信开发(微信公众号)

    一. 准备工作 a) 账号 在SAE上面注册一个账号. 在微信公众号开发平台地址 https://mp.weixin.qq.com  注册一个微信公众号. 注意:1.个人只能申请到个人类型的订阅号. ...

  8. 【微信开发】微信公众号开发 之 编辑模式使用

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/20306735 . . 本人 微信公众账号(订阅号) : ...

  9. 【坑爹微信】微信开发基础 --- 微信快捷登陆问题解决

    目录 List 那一抹淡淡的忧伤-–微信开发基础 用纯js是不可能用纯js了,这辈子都不用纯js了 -– 微信JSSDK开发以及问题解答 要你命3000 -- 微信支付开发系列问题解决 导语 微信快捷 ...

  10. 关于微信开发与微信支付更新

    1.)微信开发一般就是看文档,按部就班调用API就行,推荐一些SDK .NET https://github.com/JeffreySu/WeiXinMPSDK JAVA http://git.osc ...

最新文章

  1. C#函数式编程之可选值
  2. petshop4学习_重构DataList实现分页
  3. NLP《词汇表示方法(七)BERT》
  4. elasticsearch 数据类型_ElasticSearch学习笔记
  5. java8新特性——如何使用lambda
  6. STM32单片机雨滴模块
  7. codeblocks下载安装以及使用自带GCC / g++编译器
  8. windows 8.1安装VS2005出现安装失败:未能安装.NET framework 3.5解决方案
  9. 70.(cesium篇)cesium接入天地图影像与注记(经纬度)
  10. 金山Wps珠海实习杂记(一)
  11. js中动态给img标签添加onclick事件
  12. 20200929 008.海龟绘图_画出奥运五环图
  13. 淘宝分拆为三家独立公司:淘宝、商城和一淘
  14. android saf写sd卡,使用SAF(存储访问框架)的Android SD卡写权限
  15. Linux驱动_i2c驱动(ap3216c)
  16. 微信ipad安卓协议,微信开发API接口大全
  17. android4.2家长密码,家长维护学生资料
  18. 数字经济时代怎能没有数字钱包?| 区块链数据货币钱包系列一
  19. ip、子网掩码和无类域名路由述说
  20. 解决方案:请删除SQL Server的“WinCC“实例,因为在卸载“WinCC Professional“或“WinCC Runtime Professional“之后及其他问题解决方案!!!

热门文章

  1. 「 每日一练,快乐水题 」191. 位1的个数
  2. STM32开发 -- UCOSII移植
  3. gdb 跟踪调试命令整理
  4. Dijkstra 最短路径算法详解 无向图
  5. 动手编写一个以太坊智能合约
  6. Linux 解压后的启动流程分析
  7. Android 插件框架实现思路及原理
  8. php 比较数组的不同的值,php array_udiff 比较两个数组的键值,并返回差集
  9. JZOJ 2256. 【BZOJ 2256】【ZJOI 2008】树的统计
  10. mysql 接口访问_MySQL的数据库访问接口-阿里云开发者社区