微信测试公众号 接口配置信息
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参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:
- 将token、timestamp、nonce三个参数进行字典序排序
- 将三个参数字符串拼接成一个字符串进行sha1加密
- 开发者获得加密后的字符串可与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)这个内网穿透工具(免费哦)
微信测试公众号 接口配置信息相关推荐
- 微信测试公众号接口配置修改报-配置失败 错误信息- {errcode:-106,errmsg:token check fail}
修改微信测试公众号的接口配置信息的时候:一直提示配置失败, 使用谷歌浏览器开发者工具看一下response返回的是啥 {"errcode":-106,"errmsg&qu ...
- 微信公众号 接口配置信息 URL 配置失败(能进入后台方法,无返回信息)
微信公众号 接口配置信息 URL 配置失败(能进入后台方法,无返回信息) 操作步骤:1.微信公众号输入url.token点提交,提示配置失败. 后台代码: @ResponseBody@RequestM ...
- 微信测试公众号 url配置失败的问题
微信测试公众号 url配置失败的问题的一种解决方法! 话不多说,国庆快乐! -微信公众号开发使用测试号 一直提示管理失败(类似这个) 过程是这样的: 只需要三个步骤就可以搞定 1:在微信的测试公众平台 ...
- 微信公众号-接口配置信息url和tokken
一.接入指南 https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html 接入概述 ...
- 微信测试公众号基本配置URL和Token的验证-JAVA
一.解释为什么要这样配置? 我们填写的URL和Token,微信那边会根据你填的来验证是否正确,URL必须有域名的,Token自己定义的. 微信调用我们服务器,会通过GET请求,请求带有signatur ...
- 微信测试公众号 url配置失败的问题 解决
1. url:是线上服务器的地址.这个方法里面需要返回微信请求的echostr 如果: 这样就成功啦.
- 云服务器有token_配置node服务器并且链接微信公众号接口配置
配置node服务器并且链接微信公众号接口配置 配置node服务器 在购买好服务器后,用Xshell链接到服务器. 1.安装nvm curl -o- https://raw.githubusercont ...
- 配置node服务器并且链接微信公众号接口配置(超详细)
配置node服务器 在购买好服务器后,用Xshell链接到服务器. 1.安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.3 ...
- 微信测试公众号配置失败 {errcode:-106,errmsg:token check fail}
作为一个微信踩坑神仙,简直就是一步一个坑踩过来 修改微信测试公众号的接口配置信息的时候:一直提示配置失败,这个提示太简陋了吧.... 浏览器F12打开看一下response返回的是啥 {"e ...
最新文章
- bootstrap的使用
- iis7 文件服务器搭建,iis7 ftp服务器搭建
- Windows下安装Cygwin配置Hadoop集群
- 爱因斯坦鲜为人知的另一面
- PDF 合并软件要收费?程序员自己做一个
- 春招平均薪酬最高的职业TOP10
- 打游戏学习人工智能!不写代码|湾区人工智能
- bzoj 2957: 楼房重建(线段树+递归)
- Cmd替代者 Cmder
- ssm-学子商城-项目第一天
- web渗透--rpcbind利用
- iptv原版固件_永久免费看IPTV,有了这固件可看高清流畅稳定直播
- app邀请分享免填邀请码解决方案-邀请机制的要点、形式
- 金沙滩51单片机LED 闪烁程序
- 树莓派调节显示屏分辨率
- 解决win10文件资源管理器崩溃问题
- 有没有视频合并软件?合并视频这样做
- 品牌笔记本电脑启动BIOS按键
- Cordova搭载——H5开发环境
- 从表征到行动---意向性的自然主义进路(续二)
热门文章
- 【JavaScript】手撕前端面试题:事件委托 | 判断URL是否合法 | 全排列
- 八个步骤让你的企业“数据化”
- Spring面试之循环依赖详解
- Java构造方法的作用是什么? 需要理解的重点有哪些?
- 乌克兰停电是哪种恶意程序_乌克兰开发商开发了19个30亿个应用程序,因为硅谷太无知了...
- scikit学习心得——Isotonic Regression
- 五.卡尔曼滤波器(EKF)开发实践之五: 编写自己的EKF替换robot_pose_ekf中EKF滤波器
- 极客头条 | 5月13日科技要闻:人民日报调查“浏览器主页劫持”;CEO 回应小霸王游戏机团队解散;陌陌暂时关闭动态发布功能
- 面试八股文-网络编程
- 我国‘皇帝’一词的由来