架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 29656|回复: 3

[资料] c# 微信发送的token验证

[复制链接]
发表于 2016-8-23 15:49:49 | 显示全部楼层 |阅读模式
QQ截图20160823154155.jpg QQ截图20160823154410.jpg

这个token验证,我根本没有从微信官方找到相关文档,

我没找到文档,咋知道微信这个token验证到底是怎么验证的???

只能上网搜索,发现验证如下:

在Url对应的处理方法中,获取传递的参数,进行加密/校验
流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信


然后,知道这个玩意了,我就直接把微信get请求过来的url连接记录下来,方便自己调试。

最后,写了个加密方法如下:



这里是直接把value进行排序,并不是根据key排序取value,我一开始犯了这个错误,

因为一般都是key排序,然后key加value一起加密,或者只把value加密。。。


最后把加密后的string和signture做比较,如果对,直接返回微信服务器发送给你的echostr参数。

如果,你偷懒的话,直接返回echostr参数值算了。




上一篇:c# 阿里大于发送短信demo源码下载
下一篇:xml反序列化XML 文档(1, 2)中有错误。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2016-8-23 15:53:51 | 显示全部楼层
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2016-8-24 13:06:07 | 显示全部楼层
http://mp.weixin.qq.com/wiki/4/2ccadaef44fe1e4b0322355c2312bfa8.html

找到文档了

在开发者首次提交验证申请时,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。
此后,每次开发者接收用户消息的时候,微信也都会带上前面三个参数(signature、timestamp、nonce)访问开发者设置的URL,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。
参数描述
signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp时间戳
nonce随机数
echostr随机字符串
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
加密/校验流程如下:1. 将token、timestamp、nonce三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串进行sha1加密3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-10-7 20:56:07 | 显示全部楼层
  这些大公司  开放文档不友好
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-19 06:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表