• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > JAVA微信公众号开发TOKEN验证失败怎么办?

JAVA微信公众号开发TOKEN验证失败怎么办?

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了JAVA,微信公众号开发,TOKEN验证等相关知识,希望对您有所帮助

JAVA微信公众号开发TOKEN验证失败怎么办?


JAVA微信公众号开发TOKEN验证失败怎么办?

JAVA微信公众号开发TOKEN验证失败的解决办法:

微信公众平台服务器配置时,需要引入token,但是提交的时候总是提示token验证失败,是因为微信后台并未检测到你代码中有验证token的代码,那么应该按照官方文档对token进行验证,验证后再将结果返回微信公众平台即可。

验证的代码为:

public class SignUtil {    private static String token = "WnbVm6GTQj4BPmLliSday4K";//这里是自定义的token,需和你提交的token一致    /**    * 校验签名    *     * @param signature 签名    * @param timestamp 时间戳    * @param nonce 随机数    * @return 布尔值    */    public static boolean checkSignature(String signature, String timestamp, String nonce) {        String checktext = null;        if (null != signature) {            // 对ToKen,timestamp,nonce 按字典排序            String[] paramArr = new String[] { token, timestamp, nonce };            Arrays.sort(paramArr);                       try {                MessageDigest md = MessageDigest.getInstance("SHA-1");                // 对接后的字符串进行sha1加密                byte[] digest = md.digest(content.toString().getBytes());                checktext = byteToStr(digest);            } catch (NoSuchAlgorithmException e) {                e.printStackTrace();            }        }        // 将加密后的字符串与signature进行对比        return checktext != null ? checktext.equals(signature.toUpperCase()) : false;    }    /**    * 将字节数组转化为16进制字符串    *     * @param byteArrays 字符数组    * @return 字符串    */    private static String byteToStr(byte[] byteArrays) {        String str = "";        for (int i = 0; i < byteArrays.length; i++) {            str += byteToHexStr(byteArrays[i]);        }        return str;    }    /**    * 将字节转化为十六进制字符串    *     * @param myByte 字节    * @return 字符串    */    private static String byteToHexStr(byte myByte) {        char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };        char[] tampArr = new char[2];        tampArr[0] = Digit[(myByte >>> 4) & 0X0F];        tampArr[1] = Digit[myByte & 0X0F];        String str = new String(tampArr);        return str;    }}

提交时公众平台会请求你的地址,并校验你是否在后台做了验证,验证部分:

if (StringUtils.isNotBlank(request.getParameter("signature"))) {    String signature = request.getParameter("signature");    String timestamp = request.getParameter("timestamp");    String nonce = request.getParameter("nonce");    String echostr = request.getParameter("echostr");    LOGGER.info("signature[{}], timestamp[{}], nonce[{}], echostr[{}]", signature, timestamp, nonce, echostr);    if (SignUtil.checkSignature(signature, timestamp, nonce)) {        LOGGER.info("数据源为微信后台,将echostr[{}]返回!", echostr);        response.getOutputStream().println(echostr);    }}

以上就是JAVA微信公众号开发TOKEN验证失败的解决办法。



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 一起来聊聊JavaScript函数柯里化
  • 在javascript中,NaN是什么类型?
  • javascript调试之console.table()
  • Javascript中常见的内置对象有哪些
  • Javascript怎么实现字符串替换星号
  • 解决JavaScript中数组排序sort不发生改变
  • Javascript怎么实现红绿灯
  • 两行 Javascript 代码生成 UUID的方法
  • Javascript怎么实现四位随机验证码
  • javascript怎么判断是否为null

相关文章

  • 2022-04-29Discuz怎么修改admin.php
  • 2022-04-29Linux环境变量配置的6种方法,建议收藏!
  • 2022-04-29全平台通用评论神器一键自动填写昵称、邮箱和网址
  • 2022-04-29不用修改dedecms模板文章内容页直接点图片进入下
  • 2022-04-29影响SEO效果四大因素:服务器稳定性居首
  • 2022-04-29Centos7 yum安装php的方法
  • 2022-04-29Illustrator绘制超酷效果的立体字教程
  • 2022-04-29Photoshop详细绘制金属质感的企业标志
  • 2022-04-29浅析安卓app和微信授权登录及分享完整对接(代码分享)
  • 2022-04-29thinkphp5 redis缓存新增方法实例讲解

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 总结分享小程序中 swiper 轮播图高度问题的解决方法
    • vue.js怎么实现验证码
    • Photoshop设计电影导演工作室网站首页
    • Bootstrap中怎么实现加载效果?读取图标(Spinners)组件
    • “内容”优化影响排名 “内容”提升用户体验
    • Javascript如何实现json字符串与对象转换
    • Photoshop制作绚丽的放射光线效果图
    • 织梦dede 5.7版本图片集和软件标题与关键词输入英文逗号“,”没有了的解决方法
    • PS打造动感抽象炫光舞者海报效果制作教程
    • Photoshop通过图层样式制作各式各样的按钮

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有