1:首先要先注册一个测试的公众号

1:这样就可以得到自己的appid 和 appsecret
2:接口配置信息
可以看到参数 (测试公众号只有url 和 token)
1:url 是开发者用来接收微信消息和事件 的接口URL。(必须以http://开头,目前支持80端口)
2: Token:可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。注意必须为英文或数字,长度为3-32字符
3: EncodingAESKey:由开发者手动填写或随机生成,将用作消息体加解密密钥。(消息加密密钥由43位字符组成,可随机修改,字符范围为A-Z,a-z,0-9。)
同时,开发者可选择消息加解密方式:明文模式、兼容模式和安全模式:
4: 明文模式:不使用消息体加解密功能,安全系数较低
5: 兼容模式:明文、密文将共存,方便开发者调试和维护
6: 安全模式:消息包为纯密文,需要开发者加密和解密,安全系数高

3: 微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

参数          描述
signature   微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp  参数、nonce参数。
timestamp   时间戳
nonce       随机数
echostr     随机字符串

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

  1. 将token、timestamp、nonce三个参数进行字典序排序
  2. 将三个参数字符串拼接成一个字符串进行sha1加密
  3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

示例如下 (测试有效)


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.io.IOException;
import java.io.PrintWriter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@RestController
@RequestMapping("/admin/wxmsg")
public class Test extends HttpServlet
{private static final long serialVersionUID = 1L;public static final String TOKEN = "这里填写的token就是将来你在接口配置在填写的token";@GetMapping("/weixin")protected void doget(HttpServletRequest request, HttpServletResponse response) throws IOException{String signature = request.getParameter("signature");// 时间戳String timestamp = request.getParameter("timestamp");// 随机数String nonce = request.getParameter("nonce");// 随机字符串String echostr = request.getParameter("echostr");System.out.println(signature + timestamp + nonce);PrintWriter out = response.getWriter();// 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败if (checkSignature(signature, timestamp, nonce).equals(signature)) {out.write(echostr);System.out.println("微信服务验证成功!"+echostr);}else {out.print(echostr);System.out.println("微信服务验证失败!"+echostr);}out.flush();out.close();}public static String checkSignature(String signature ,String timestamp, String nonce){String[] src = {TOKEN,timestamp,nonce};List<String> list =Arrays.asList(src);Collections.sort(list);StringBuilder sb = new StringBuilder();for (int i = 0; i < list.size(); i++){sb.append(list.get(i));}return SHA1(sb.toString());}/**** @param decript* @return*/public static String SHA1(String decript) {try {MessageDigest digest = MessageDigest.getInstance("SHA-1");digest.update(decript.getBytes());byte messageDigest[] = digest.digest();// Create Hex StringStringBuffer hexString = new StringBuffer();// 字节数组转换为 十六进制 数for (int i = 0; i < messageDigest.length; i++) {String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);if (shaHex.length() < 2) {hexString.append(0);}hexString.append(shaHex);}return hexString.toString();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return "";}
}

我的 接口配置信息中

url: 域名/admin/wxmsg/weixin
token: 就是示例中的token

注意

1:配置失败的话 可能需要你现在浏览器中访问下你的这个接口,在进行配置
2: url必须是外网可以访问的,端口是80,本地测试的话一般用内网穿透工具 我这边用的是(ngrok)这个内网穿透工具(免费哦)

微信测试公众号 接口配置信息相关推荐

  1. 微信测试公众号接口配置修改报-配置失败 错误信息- {errcode:-106,errmsg:token check fail}

    修改微信测试公众号的接口配置信息的时候:一直提示配置失败, 使用谷歌浏览器开发者工具看一下response返回的是啥 {"errcode":-106,"errmsg&qu ...

  2. 微信公众号 接口配置信息 URL 配置失败(能进入后台方法,无返回信息)

    微信公众号 接口配置信息 URL 配置失败(能进入后台方法,无返回信息) 操作步骤:1.微信公众号输入url.token点提交,提示配置失败. 后台代码: @ResponseBody@RequestM ...

  3. 微信测试公众号 url配置失败的问题

    微信测试公众号 url配置失败的问题的一种解决方法! 话不多说,国庆快乐! -微信公众号开发使用测试号 一直提示管理失败(类似这个) 过程是这样的: 只需要三个步骤就可以搞定 1:在微信的测试公众平台 ...

  4. 微信公众号-接口配置信息url和tokken

    一.接入指南 https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html 接入概述 ...

  5. 微信测试公众号基本配置URL和Token的验证-JAVA

    一.解释为什么要这样配置? 我们填写的URL和Token,微信那边会根据你填的来验证是否正确,URL必须有域名的,Token自己定义的. 微信调用我们服务器,会通过GET请求,请求带有signatur ...

  6. 微信测试公众号 url配置失败的问题 解决

    1. url:是线上服务器的地址.这个方法里面需要返回微信请求的echostr 如果: 这样就成功啦.

  7. 云服务器有token_配置node服务器并且链接微信公众号接口配置

    配置node服务器并且链接微信公众号接口配置 配置node服务器 在购买好服务器后,用Xshell链接到服务器. 1.安装nvm curl -o- https://raw.githubusercont ...

  8. 配置node服务器并且链接微信公众号接口配置(超详细)

    配置node服务器 在购买好服务器后,用Xshell链接到服务器. 1.安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.3 ...

  9. 微信测试公众号配置失败 {errcode:-106,errmsg:token check fail}

    作为一个微信踩坑神仙,简直就是一步一个坑踩过来 修改微信测试公众号的接口配置信息的时候:一直提示配置失败,这个提示太简陋了吧.... 浏览器F12打开看一下response返回的是啥 {"e ...

最新文章

  1. bootstrap的使用
  2. iis7 文件服务器搭建,iis7 ftp服务器搭建
  3. Windows下安装Cygwin配置Hadoop集群
  4. 爱因斯坦鲜为人知的另一面
  5. PDF 合并软件要收费?程序员自己做一个
  6. 春招平均薪酬最高的职业TOP10
  7. 打游戏学习人工智能!不写代码|湾区人工智能
  8. bzoj 2957: 楼房重建(线段树+递归)
  9. Cmd替代者 Cmder
  10. ssm-学子商城-项目第一天
  11. web渗透--rpcbind利用
  12. iptv原版固件_永久免费看IPTV,有了这固件可看高清流畅稳定直播
  13. app邀请分享免填邀请码解决方案-邀请机制的要点、形式
  14. 金沙滩51单片机LED 闪烁程序
  15. 树莓派调节显示屏分辨率
  16. 解决win10文件资源管理器崩溃问题
  17. 有没有视频合并软件?合并视频这样做
  18. 品牌笔记本电脑启动BIOS按键
  19. Cordova搭载——H5开发环境
  20. 从表征到行动---意向性的自然主义进路(续二)

热门文章

  1. 【JavaScript】手撕前端面试题:事件委托 | 判断URL是否合法 | 全排列
  2. 八个步骤让你的企业“数据化”
  3. Spring面试之循环依赖详解
  4. Java构造方法的作用是什么? 需要理解的重点有哪些?
  5. 乌克兰停电是哪种恶意程序_乌克兰开发商开发了19个30亿个应用程序,因为硅谷太无知了...
  6. scikit学习心得——Isotonic Regression
  7. 五.卡尔曼滤波器(EKF)开发实践之五: 编写自己的EKF替换robot_pose_ekf中EKF滤波器
  8. 极客头条 | 5月13日科技要闻:人民日报调查“浏览器主页劫持”;CEO 回应小霸王游戏机团队解散;陌陌暂时关闭动态发布功能
  9. 面试八股文-网络编程
  10. 我国‘皇帝’一词的由来