搜索
简帛阁>技术文章>微信小程序的消息推送的token的配置

微信小程序的消息推送的token的配置

在做小程序的一个功能的时候 我们需要用到消息推送
服务器ip,域名什么的都配置好了,但示token就是报错
下面的代码复制带走 修改一下配置就可以了,(大部分也是百度的,在这里做个笔记整合一下)


上图红线部分后面的地方就是我们验证token的接口路径

package org.begete.zhongkehaobo.demos.controller;

import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.begete.zhongkehaobo.demos.config.AesException;
import org.begete.zhongkehaobo.demos.utils.WXPublicUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController
@RequestMapping("/wxpublic")
@Api(tags = "验证公众平台token")
@Slf4j
public class WXTokenController {<!-- -->
    @RequestMapping("/verify_wx_token")
    public String verifyWXToken(HttpServletRequest request) throws AesException {<!-- -->
        String msgSignature = request.getParameter("signature");
        String msgTimestamp = request.getParameter("timestamp");
        String msgNonce = request.getParameter("nonce");
        String echostr = request.getParameter("echostr");
        if (WXPublicUtils.verifyUrl(msgSignature, msgTimestamp, msgNonce)) {<!-- -->
            return echostr;
        }
        return null;
    }

}
 
package org.begete.zhongkehaobo.demos.utils;

import org.begete.zhongkehaobo.demos.config.AesException;
import org.begete.zhongkehaobo.demos.config.SHA1;

public class WXPublicUtils {<!-- -->

    /**
     * 验证Token
     * @param msgSignature 签名串,对应URL参数的signature
     * @param timeStamp 时间戳,对应URL参数的timestamp
     * @param nonce 随机串,对应URL参数的nonce
     *
     * @return 是否为安全签名
     * @throws AesException 执行失败,请查看该异常的错误码和具体的错误信息
     */
    public static boolean verifyUrl(String msgSignature, String timeStamp, String nonce)
            throws AesException {<!-- -->
        // 这里的 WXPublicConstants.TOKEN 填写你自己设置的Token就可以了
        String signature = SHA1.getSHA1("123456", timeStamp, nonce);
        if (!signature.equals(msgSignature)) {<!-- -->
            throw new AesException(AesException.ValidateSignatureError);
        }
        return true;
    }
}

加密

package org.begete.zhongkehaobo.demos.config;

import java.security.MessageDigest;
import java.util.Arrays;

public class SHA1 {<!-- -->

    /**
     * 用SHA1算法验证Token
     *
     * @param token     票据
     * @param timestamp 时间戳
     * @param nonce     随机字符串
     * @return 安全签名
     * @throws AesException
     */
    public static String getSHA1(String token, String timestamp, String nonce) throws AesException {<!-- -->
        try {<!-- -->
            String[] array = new String[]{<!-- -->token, timestamp, nonce};
            StringBuffer sb = new StringBuffer();
            // 字符串排序
            Arrays.sort(array);
            for (int i = 0; i < 3; i++) {<!-- -->
                sb.append(array[i]);
            }
            String str = sb.toString();
            // SHA1签名生成
            MessageDigest md = MessageDigest.getInstance("SHA-1");
            md.update(str.getBytes());
            byte[] digest = md.digest();

            StringBuffer hexstr = new StringBuffer();
            String shaHex = "";
            for (int i = 0; i < digest.length; i++) {<!-- -->
                shaHex = Integer.toHexString(digest[i] & 0xFF);
                if (shaHex.length() < 2) {<!-- -->
                    hexstr.append(0);
                }
                hexstr.append(shaHex);
            }
            return hexstr.toString();
        } catch (Exception e) {<!-- -->
            e.printStackTrace();
            throw new AesException(AesException.ComputeSignatureError);
        }
    }
}
在做小程序一个功能时候我们需要用到消息推送服务器ip,域名什么的都配置好了,但示token就是报错下面代码复制带走修改一下配置就可以了,(大部分也是百度,在这里做个笔记整合一下)上图红线部分
背景:微信小程序开发,准备使用模板消息做些事情,但是发现需要先在微信公众平台开发——开发设置——消息推送配置,然后我们后台人员就开始各种配置,但是一到验证token就报错,很是郁闷,然后各种排查
解决微信小程序消息推送配置Token校验失败问题如果是Token校验失败问题,一种是URL地址访问不通,第二种是验证是返回给微信服务数据问题1填写配置信息URL(服务器地址):用url访问文件名地址
在开发微信小程序时,有一个消息推送,它解释是这样消息推送具体内容是下面这个网址https://developersweixinqqcom/miniprogram/dev/framework
ThinkPHP6微信小程序消息推送配置时报错:{“ret“:200302,“err_msg“:“verifytokenfail“}贴一下我代码:控制器classMessage{<!>p
选择或创建订阅消息模板登录到微信小程序里面找到功能>订阅消息。可以在公共模板库里选择需要模板,如果没有找到自己需要也可以自己创建然后等待审核、选择完模板查看详情会得到模板ID,以及发送推送
第一步官网下载对应版本cryptoDemo下载地址:https://wximggtimgcom/shake_tv/mpwiki/cryptoDemozip第二步创建检查文件wxcheckphp这个
第一步:官网下载对应版本cryptoDemo下载地址:https://wximggtimgcom/shake_tv/mpwiki/cryptoDemozip第二步:创建检查文件wxcheckphp
刚进公司就开始从0开始开发公司微信小程序,一路上踩过坑真多,微信官方文档和社区真是槽点满满,不过踩过最大一个坑还是客服接入消息推送配置,这个问题困扰了我相当长一段时间,补充一句,本人是
最近在学习微信小程序,遇到第一个问题就是需要配置服务器关于这个服务器配置我也是绕了好多弯路,说白了腾讯就是想通过你填这个URL和Token去验证你有一个自己服务器(外网可以访问服务器),其实