1.为了成为开发者进行的验证:


验证成功之后,需返回:echoStr 消息

controller请求:

  /*** @author: cc* @date: 2020/7/15 13:26*/@GetMapping("/wxDomainToken")@ApiOperation(value = "微信接口域验证", httpMethod = "GET", notes = "微信接口域验证")public void show(HttpServletRequest request, HttpServletResponse response) {try {//微信加密签名String signature = request.getParameter("signature");// 时间戳String timestamp = request.getParameter("timestamp");// 随机数String nonce = request.getParameter("nonce");// 随机字符串String echoStr = request.getParameter("echostr");PrintWriter out = response.getWriter();// 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败String asscii= WxPublicUtil.getAscii(WxPublicConfig.WX_PUBLIC_TOKEN, timestamp, nonce);String newSignature = WxPublicUtil.SHA1(asscii);if (newSignature.equals(signature)) {out.write(echoStr);log.info("微信公众号服务验证成功!" + echoStr );}else {out.print(echoStr);log.info("微信公众号服务验证失败!" + echoStr );}out.flush();out.close();}catch (Exception e){e.printStackTrace();log.error("微信公众号服务验证异常:" + e.getMessage());}}

相关解析util类:

package com.fsk.systemCust.misc;import com.fsk.common.utils.wxPay.MD5Utils;
import com.fsk.common.utils.wxPay.WxConfig;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.jce.provider.BouncyCastleProvider;import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.AlgorithmParameters;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.Security;
import java.util.*;/*** @description: 微信公众号相关* @author: Cc* @data: 2020/7/8 15:50*/
@Slf4j
public class WxPublicUtil {/*** @description: ASCII码表字典排序* @param timestamp* @param nonce* @return: java.lang.String* @author: cc* @date: 2020/7/9 19:17**/public static String getAscii(String publicToken, String timestamp, String nonce){String[] src = {publicToken,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 sb.toString();}/*** @description: SHA1生成签名* @param decript 微信加密签名* @return: java.lang.String* @author: cc* @date: 2020/7/9 19:16**/public static String SHA1(String decript) {try {MessageDigest digest = MessageDigest.getInstance("SHA-1");digest.update(decript.getBytes());byte messageDigest[] = digest.digest();StringBuffer 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 null;}}

完成。

微信公众号---域验证相关推荐

  1. nodejs+express解决微信公众号token验证失败

    nodejs+express解决微信公众号token验证失败 问题描述 下面是服务端代码 问题原因 解决方案 重新运行服务器问题解决 结语 问题描述 这里是测试号的状态,如果是公众号的话上边应该显示t ...

  2. php开发微信公众号token验证失败,Thinkphp5 微信公众号token验证不成功的原因

    微信是中国最流行的社交软件之一,随着微信生态系统的建立,很多人也致力于公众号 相关的文章">微信公众号和微信小程序的开发,那么Thinkphp5 微信公众号token验证不成功的原因及 ...

  3. Java微信公众号配置验证Token

    Java微信公众号服务器配置-验证Token 一.填写服务器配置 首先我们需要在微信公众平台上填写服务器配置 重点内容 服务器地址URL(一定要外网能访问的到)         在我们提交配置的时候, ...

  4. php 公众号 验证失败,微信公众号Token验证失败的几种情况及解决办法

    微信公众号Token验证失败的几种情况及解决办法 1. 思路看验证的文件,编码是否是:utf-8 无bom头的 2. thinkphp框架,要关闭调试模式,开启调试模式容易有错误代码出现,导致验证失败 ...

  5. 微信公众号 Token验证失效 问题

    最近在学习微信公众号的时候遇到了一个问题:Token验证失效 话不多说,看代码:handle.py import hashlib import webclass Handle(object):def ...

  6. 配置微信公众号token验证失败

    微信公众号 服务器配置出现token验证失败, <?php //define your token define("TOKEN", "zlsh"); // ...

  7. 阿里云服务器配置微信公众号token验证失败解决办法

    我使用的是阿里云服务器ECS 第一步 根据阿里云服务器提示部署LAMP环境 根据提示一步步完成 第二步 远程连接服务器 进入目录 /var/www/html/phpinfo.php 更改phpinfo ...

  8. 微信公众号服务器验证Token的完整步骤

    服务器验证Token验证分为以下及步骤 一,在微信公众号平台上设置 1.1打开微信公众号平台 1.2打开"开发"中的<基本配置> 1.3点击基本配置页面里的修改配置 1 ...

  9. 微信公众号token验证失败的一些总结

    本文转载自: https://www.cnblogs.com/sunnor/p/5958272.html 作者:Sunnor 转载请注明该声明. 这几天准备弄一个微信公众号,在进行服务器配置的时候出现 ...

最新文章

  1. python kafka消费最新数据_python kafka消费数据库
  2. vbs 服务器获取输入信息,取得服务器上用户组列表脚本之VBS版
  3. 人机交互与智能的思考
  4. windows扩展C盘空间
  5. 搭建elsticsearch集群 报错 failed to send join request to master [{data-node-0}(已经测试)
  6. linux树莓派网易云音乐,基于树莓派的红外遥控版网易云音乐播放器
  7. vue1.0和vue2.0生命周期----整理一
  8. matlab画图plot设置字体_R语言科研画图字体格式设置
  9. [摘录]调动员工积极性的七个关键
  10. 【ArcGIS操作】2 高级编辑篇
  11. js css 实现进度条,css+js实现圆形进度条
  12. c语言定义函数return,在C语言的函数定义中,如果不需要返回结果,就可以省略return语句。...
  13. 5G NR 随机接入 总结
  14. python 基于smb通信协议实现NAS服务器文件上传和下载
  15. java零基础学习笔记(代码+注解+练习)_面向对象OOP
  16. java实现圆环进度条,环形进度条(动态显示运动步数)
  17. 惨!美团程序员的年终奖金可能没了
  18. sklearn代码9 7-KNN-salay
  19. Masking Layer的作用
  20. 厉害了我的哥!十一月居然有这么多好总结!

热门文章

  1. 8种vue组件通信方式
  2. kubernetes1.9部署metrics-server0.3.1、dashboard、heapster
  3. [Python] Python切片操作
  4. C# VS2013生成的exe文件修改图标
  5. CNCF - 云原生计算基金会简介
  6. 香港十佳黄金交易平台2019最新排名
  7. 2021.5.9数仓之机器详情ODS EDS DM分层设计
  8. turtle八角图形绘制
  9. 工业机器人的“慧眼”——机器视觉
  10. HTTP协议版本检测