• 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验证失败怎么办?

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了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

相关文章

  • 浅析Angular中HttpClientModule模块有什么用?怎么用?
  • Photoshop制作超酷的3D岩石字体教程
  • 四种PHP生成唯一订单号的方法
  • 怎么修改和重置WAMP的phpMyAdmin密码
  • ThinkPHP6通过Ucenter实现注册登录的示例代码
  • javascript怎么判断是否为null
  • CentOS8怎么安装最新版Nginx
  • 织梦DedeCMS V5.7前台搜索打开慢的原因及解决方法
  • Photoshop鼠绘质感霸天虎机器人界面
  • Javascript中事件对象的target和this的区别

文章分类

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

最近更新的内容

    • 利用CSS如何实现全兼容的毛玻璃效果?
    • PS快速制作一款华丽的按钮
    • Photoshop设计金属立体效果的APP图标
    • 分享一个顺丰同城配送的扩展包并在laravel中使用
    • 纯css实现gif动图生成字画符
    • 宝塔面板忘记账号和密码怎么办?一条命令全搞定
    • Centos MySQL 忘记密码怎么办
    • BootstrapTable如何重新加载数据?3种方式了解一下!
    • Illustrator制作超有质感立体矢量LOGO
    • 浅析AntdV Upload组件customRequest怎么自定义上传方法

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

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