微信公众号开发(一)微信验证开发者服务器接口
2017-12-31 15:31
435 查看
微信验证开发者服务器接口
微信验证开发者服务器接口
- 如图所示,开发者可填写自己服务器的验证token的接口地址,以及自定义的token(博主申请的测试号,使用natapp来进行内网穿透)
- 目的:帮助微信服务器和开发者服务器互相识别,以防恶意攻击
- 流程图如下(不知道博客园怎么显示md流程图,有知道的仁兄告知):(取自微信公众平台技术文档)
st=>start: 开启服务ipop1=>inputoutput: 接收到数据【不确定是谁发来的】op1=>operation: 尝试提取出signature字段,timestamp字段,nonce字段,echostr字段cd1=>condition: 字段均提取成功?op2=>operation: token赋值为基本配置中的信息op3=>operation: token,timestamp,nonce字段排序得到字符串listop4=>operation: 哈希算法加密list得到hashcodecd2=>condition: hashcode == signature?op5=>operation: 确定该数据源是微信后台ipop2=>inputoutput: 把echostr返回给微信后台,供微信后台认证Tokened=>end: 继续其他服务op6=>operation: 确定该数据源不是微信后台ipop3=>inputoutput: 不处理st->ipop1->op1->cd1->op2->op3->op4->cd2->op5->ipop2->edcd1(yes)->op2cd1(no)->op6->ipop3->edcd2(yes)->op5cd2(no)->op6
- java代码实现如下:
@GetMapping("/getToken")@ResponseBodypublic String getToken(TokenDTO tokenDTO, HttpServletResponse response){if ((StringUtils.isBlank(tokenDTO.getSignature()) || StringUtils.isBlank(tokenDTO.getTimestamp()) || StringUtils.isBlank(tokenDTO.getNonce()) || StringUtils.isBlank(tokenDTO.getEchostr()))) {return "";}String[] arr = new String[]{tokenDTO.getTimestamp(), WeixinConstant.token, tokenDTO.getNonce()};Arrays.sort(arr);StringBuffer sb = new StringBuffer();sb.append(arr[0]).append(arr[1]).append(arr[2]);String hash = null;try {hash = new String(Hex.encodeHex(MessageDigest.getInstance("SHA-1").digest(sb.toString().getBytes(Constant.charset))));} catch (UnsupportedEncodingException | NoSuchAlgorithmException e) {e.printStackTrace();}return (StringUtils.isNoneBlank(hash) && hash.equals(tokenDTO.getSignature()))? tokenDTO.getEchostr() : "";}
相关文章推荐
- 微信公众平台开发视频教程-01-注册公众平台账号和微信服务器通讯接口验证
- 阿里云服务器微信接口开发TOKEN验证失败
- 关于ThinkPHP框架开发微信公众号在微信后台配置服务器URL提示Token验证失败的解决方案
- 微信公众号平台接口开发:基础支持,获取微信服务器IP地址
- java微信公众号开发 - 微信服务器的接入和验证
- 微信验证开发者代码,解决微信请求URL超时,你的服务器没有正确响应Token验证,请阅读消息接口使用指南
- 微信公众号开发(一) 提供自己的url给微信服务器进行验证
- 微信公众平台开发-微信服务器IP接口实例(含源码)
- 微信小程序开发之服务器接口问题
- 微信公众号开发调用微信接口,SPA应用注意事项
- 微信公众号开发:用从微信服务器下载图片资源
- 微信开发服务器验证总是失败wordpress微信机器人插件验证失败的解决
- java开发微信上传服务器素材接口开发
- thinkphp3.2微信开发者模式 绑定url token 您的服务器没有正确相应token验证
- 微信开发-SpringMVC开发者身份验证
- 菜鸟日记(yzy) 微信公众号网页的开发基础(微信接口调用)
- 适合新手学习的laravel接入微信接口,实现微信公众号二次开发
- 微信开发者-主动请求-实际开发-(5)验证TOKEN(C#)
- 微信公众号开发笔记(一)服务器配置和验证
- 微信公众号开发 配置服务器URL,验证Token