微信公众平台的:服务器配置,消息推送配置
小程序(消息推送配置)与服务号(服务器配置)通用配置方法都是一样的。
以公众号为例子 设置与开发-》基础设置-》服务器配置
一:在服务器后台添加一个验证类(接口)
package com.jeesite.modules.sys.web;import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.msg.utils.WeixinMsgPushUtils;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** 微信token验证Controller* @author cgq* @version 2021-04-21*/
@Controller
@RequestMapping(value = "/sys/wxToken")
public class WxTokenController extends BaseController {private static String token = "这里是自定义的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);// 将排序后的结果拼成一个字符串String content = paramArr[0].concat(paramArr[1]).concat(paramArr[2]);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;}private static final Log log = LogFactory.getLog(WxTokenController.class);/*** 微信token验证*/@RequestMapping(value = "getToken")@GetMapping(produces = "text/plain;charset=utf-8")@ResponseBodypublic void getToken(HttpServletRequest request, HttpServletResponse response) {try {log.debug("__________signature["+request.getParameter("signature")+"]_____________");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");if (checkSignature(signature, timestamp, nonce)) {log.debug("数据源为微信后台,将echostr["+echostr+"]返回!___000000000__");response.getOutputStream().println(echostr);}}} catch (Exception e) {e.printStackTrace();}}
}
二:填写服务器配置
三:完成提交
微信公众平台的:服务器配置,消息推送配置相关推荐
- 微信公众平台向特定用户推送消息
一.首先需要将微信的openid与系统用户绑定. 在用户关注公众平台的时候,回复一个链接,要求用户绑定,可以设计如下消息进行回复,(openid最好进行加密处理,后者还需要用这个字段绑定fakeid) ...
- Java给特定用户发通知_微信公众平台向特定用户推送消息
最近研究微信公众平台,这里整理了一下向特定用户推送消息的思路 一.首先需要将微信的openid与系统用户绑定. 在用户关注公众平台的时候,回复一个链接,要求用户绑定,可以设计如下消息进行回复,(ope ...
- 微信公众号开发(消息推送)
文章目录 微信公众号开发 运行效果 微信公众号简介 注册微信公众号 注册测试公众号 搭建微信本地调试环境 微信公众号接入(校验签名) 给指定用户推送消息 网页授权获取用户openid 给指定用户发送模 ...
- 微信公众号实现模板消息推送
一.首先要获得接收模板消息用户的 openid 和 accss_token,可参考微信公众号获取用户基本信息 二.发布推送 public function sendMsg() {$url = &quo ...
- 公众号 接收规则 消息_微信公众平台 发送模板消息(Java接口开发)
前言:最近一直再弄微信扫码推送图文消息和模板消息发送,感觉学习到了不少东西.今天先总结一下微信公众平台模板消息的发送.因为这个自己弄了很久,开始很多地方不明白,所以今天好好总结一下. 微信公众平台技术 ...
- java 模板接口开发_微信公众平台 发送模板消息(Java接口开发)
前言:最近一直再弄微信扫码推送图文消息和模板消息发送,感觉学习到了不少东西.今天先总结一下微信公众平台模板消息的发送.因为这个自己弄了很久,开始很多地方不明白,所以今天好好总结一下. 微信公众平台技术 ...
- 微信小程序开发消息推送配置教程
微信小程序开发消息推送配置教程 微信小程序开发消息推送配置这一块网上都是PHP居多,由于用egg.js写了一套验证方法. 第一步:填写服务器配置 登录微信小程序官网后,在小程序官网的"设置- ...
- 微信消息推送配置详解 JAVA后端版本
最近公司做小程序需要用到消息推送,笔者在一路采坑做完后几个笔记,希望能帮到大家少采坑. 如果你连小程序都没有注册也没有做,那就不要继续看了....... 微信官方文档: 微信消息推送 微信 ...
- TP6 微信小程序消息推送配置Token校验失败200302
ThinkPHP6 微信小程序消息推送配置时报错: {"ret":200302,"err_msg":"verify token fail"} ...
最新文章
- pandas使用replace函数将dataframe指定数据列中的特定字符串进行自定义替换(replace substring in dataframe column values)
- *[hackerrank]Maximizing XOR
- ElasticSearch 2.2 升级 6.2.4
- 权限系统设计模型分析(DAC,MAC,RBAC,ABAC)
- EOS 共识机制 (1)DPOS共识介绍
- android开发中,可能会导致内存泄露的问题
- 提权学习之旅——Linux操作系统提权
- 嵌入式linux系统移植的四大步骤_如何移植开源软件到嵌入式Linux系统
- python命令行运行模式_[Python] 命令行模式阅读博客园的博文
- colorpix取色小工具_Python版的取色器
- OO生存指.....抱歉无法生存
- Qtcreator配置Ros环境
- c#中如何删除数组中的元素_C中的数组
- c语言怎么编程打开文件,怎么用c语言打开文件
- VS2017编译配置和使用LOG4CPP
- 小黄鸡 java_用java实现Simsimi小黄鸡接口
- 静雅学校有高中吗有计算机,涿州靖雅中学
- 《广播电视节目制作经营许可证》申请流程
- [统计学理论基础] 方差 协方差 标准差
- composer查看镜像地址