[微信小程序]消息推送配置Token令牌错误校验失败
来源:互联网 发布:炫酷黑客手机源码 编辑:程序博客网 时间:2024/06/05 09:10
[微信小程序]消息推送配置Token令牌错误
@Author GQ 2017年07月26日 本想在微信小程序中接入上传图片到阿里云功能,小程序中查询很多资料还是没能将图片转成流上传,所以无奈只能借助小程序官方API中客服转发功能上传素材间接实现:1.将小程序选择的照片上传至微信临时服务器并返回图片url;2.将url返回给自己的后台,后台通过url获取流再上传至阿里OSS;想法挺美好,然而一地坑...
第二步小程序上传图片给阿里云OSS请看我的这篇博客
Token校验失败,请检查确认 如下图
- URL:填写自己写的接口路径,需要已经调试好并且发布到正式域名地址下才可以;
- 注意 : 当点击下方的
提交
按钮时,微信会请求一次数据给你的URL地址
- 注意 : 当点击下方的
- Token(令牌): 自己随便起个名字就行英文数字3-32字符;
- EncodingAESKey: 点随机生成吧,省的自己写;
- 加密方式: 兼容就行
- 数据格式: 看个人喜好一般
Json
吧
然后就可以看着 消息配置指南 操作了,这里我详细在用大白话说下,官方给的是PHP的代码…
上面说到微信会请求你填写的
URL
地址,我们先来看下微信这个GET
请求的参数
请求方式 : GET
大概了解了参数我们这个接口就好写多了,我们屡一下这几个参数的处理逻辑;
1) 还记得上面自己填写的token
吧3-32字符的那个,这里要用到;
2) 将timestamp
nonce
token
这三个参数对应的值进行字典排序;什么是字典排序?
3) 排序后将这三个参数对应的值,只要值,拼接成string字符串;
4) 将拼接好的字符串SHA1加密,注意要小写字母,假设返回的string我命名为 secret
;
5) 比较参数 signature
和 secret
值是否相等;
- 如果相等表示验证成功,并且原封不动的返回
echostr
- 如果不相等表示验证失败,返回写不写哇,你爱咋咋
将写好的接口发布到服务器上,然后在微信的消息配置页面填好信息,点击
提交
则会提示成功
官方给的PHP,我这二吊子水平用.Net写的代码给大家做参考:
/// <summary> /// 微信消息配置 /// </summary> public class GetWxMsg : IHttpHandler { private static Logger logger = LogManager.GetCurrentClassLogger(); public void ProcessRequest(HttpContext context) { var signature = context.Request["signature"]; var timestamp = context.Request["timestamp"]; var nonce = context.Request["nonce"]; var echostr = context.Request["echostr"]; logger.Info("微信消息服务器验证传入数据" + string.Format("signature:{0},timestamp:{1},nonce:{2},echostr:{3}", signature, timestamp, nonce, echostr)); var token = "aaaaaaa";//自定义字段(自己填写3-32个字符) //timestamp和token和nonce 字典排序 Dictionary<string, string> dic = new Dictionary<string, string>(); dic.Add("token", token); dic.Add("nonce", nonce); dic.Add("timestamp", timestamp); var list = dic.OrderBy(s => s.Value); var conbineStr = ""; foreach (var s in list) { conbineStr = conbineStr + s.Value; } string data = conbineStr; //sha1加密 string secret = FormsAuthentication.HashPasswordForStoringInConfigFile(conbineStr, "SHA1").ToLower(); var success = signature == secret; if (success) { data = echostr; } context.Response.ContentType = "text/plain"; context.Response.Write(data); }
阅读全文
0 0
- [微信小程序]消息推送配置Token令牌错误校验失败
- 微信小程序--消息推送配置Token令牌错误校验失败如何解决
- 微信小程序消息推送配置Token校验失败问题
- 微信小程序消息推送配置Token校验失败问题
- iOS友盟消息推送总是推送失败或者token无效
- Token 令牌
- TOKEN令牌
- 小程序-奇葩的问题(Token校验失败,请检查确认)
- 微信小程序-配置普通链接二维码规则时一直提示【校验文件检查失败】
- jBPM的token(令牌)
- PHP Token(令牌)设计
- 进程令牌(TOKEN)相关!
- 令牌环(Token Ring)
- struts中的令牌token
- struts2 token令牌
- PHP Token(令牌)设计
- PHP Token(令牌)设计
- Token 令牌自实现
- CharacterEncodingFilter cannot be cast to javax.servlet.Filter 报错, 原因servlet-api.jar冲突 解决方案
- Ribbon实现默认接口类
- git操作和npm操作
- #spring boot 3 -- cache
- 二叉树
- [微信小程序]消息推送配置Token令牌错误校验失败
- 线性表 —— 4
- 2017.7.27 bill的挑战 失败总结
- Webpack2 入门踩坑教程(三)
- c++学习-虚函数学习
- Tomcat启动过慢
- redhat6.4_LVS_install安装文档
- 从一个demo引发的对import、require的思考
- kafka官网译文