·微信公众号后端开发文档:

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

·开始一些必须设置解读:

登陆公众号后台,进行开发者设置===》https://mp.weixin.qq.com/

1.网页授权域名设置

具体设置

2.ip白名单配置(白名单来源的ip才可获得access_token)

access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

3.服务器配置(可做自定义回复、跳转)

·后端接入指南原理:

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

参数   描述
signature     微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp     时间戳
nonce      随机数
echostr     随机字符串

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

1)将token、timestamp、nonce三个参数进行字典序排序

2)将三个参数字符串拼接成一个字符串进行sha1加密

3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

意思是说:对微信服务器发过来消息忠token、timestamp、nonce三个参数进行加密处理,然后加密得到的字符串与signature微信加密签名相比较,如果相等则返回echostr随机字符串。

·下面是后端提供回调接口:

@Slf4j
@Api(tags = {"微信回调API"})
@Controller
@RequestMapping("/plutoadmin/wechat")
public class WechatController {//公众号授权验签@ApiOperation(value = "公众号授权验签", notes = "公众号授权验签")@RequestMapping(value = "/getWechatPublicAuthorization", method = RequestMethod.GET)@ResponseBodypublic String getWechatPublicAuthorizationHttpServletRequest(String signature, String timestamp, String nonce, String echostr) {if (WxPublicCheckSignature.checkSignature(signature, timestamp, nonce)) {// 如果校验成功,将得到的随机字符串原路返回log.info("验签字符串:{}", echostr);return echostr;}return "验签错误";}
}

验签工具类(网上很多此类代码):

/*** @author hanyy* @Description: 公众号后台验签* @date 2019/8/21 18:18*/
public class WxPublicCheckSignature {public static final String tooken = "Alan"; //开发者自行定义Tokenpublic static boolean checkSignature(String signature, String timestamp, String nonce) {//1.定义数组存放tooken,timestamp,nonceString[] arr = {tooken, timestamp, nonce};//2.对数组进行排序Arrays.sort(arr);//3.生成字符串StringBuffer sb = new StringBuffer();for (String s : arr) {sb.append(s);}//4.sha1加密,网上均有现成代码String temp = getSha(sb.toString());//5.将加密后的字符串,与微信传来的加密签名比较,返回结果return temp.equals(signature);}public static String getSha(String str) {if (str == null || str.length() == 0) {return null;}char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9','a', 'b', 'c', 'd', 'e', 'f'};try {MessageDigest mdTemp = MessageDigest.getInstance("SHA1");mdTemp.update(str.getBytes("UTF-8"));byte[] md = mdTemp.digest();int j = md.length;char buf[] = new char[j * 2];int k = 0;for (int i = 0; i < j; i++) {byte byte0 = md[i];buf[k++] = hexDigits[byte0 >>> 4 & 0xf];buf[k++] = hexDigits[byte0 & 0xf];}return new String(buf);} catch (Exception e) {// TODO: handle exceptionreturn null;}}
}

➡接口编写完成后,将验签接口填入url,注意token要填写后端验签工具类中定义的token,否则无法验签完成

➡点击提交,若正常提交,则回调验签成功,服务器配置成功~

➡常见错误:token验证失败 这就是微信回调验签失败,检查一下后端代码。

➡注意:点击右侧启用后会提示自定义菜单会失效,所以目前暂未启用。

4.推送消息模板设置

根据业务需要去模板库搜索,消息模板格式无法自定义,只可以改模板内容

申请好模板,把模板id配置到后端配置文件里,防止模板变更,一个模板对应一个唯一模板id。

微信公众号java后端开发记录(一):公众号后台设置相关推荐

  1. 微信小程序java后端开发记录(三):模板消息推送

    ·模板消息推送 1.1推送参数dto: 按照文档逐层次封装请求参数. 这些参数 /*** @author hanyy* @Description: 微信小程序模板消息推送参数* @date 2019/ ...

  2. Node.js七天搞定微信公众号(又名:Koa2实现电影微信公众号前后端开发)- 问题汇总

    未完待续 视频资料在上一篇博客<Node.js七天搞定微信公众号(又名:Koa2实现电影微信公众号前后端开发)> 问题1:该公众号提供的服务出现故障,请稍后重试! 出处:<第4章 实 ...

  3. 微信开发众筹项目视频教学小程序+java后端开发+mysql数据库

    用HBuilder X开发微信小程序,java后端开发工具idea,mysql数据库,主要功能有:用户管理.分类列表.分类金额.众筹列表.订单列表.系统设置.权限分配 源码下载地址:>>& ...

  4. 科普:Java 后端开发常用的 10 种第三方服务

    严格意义上说,所有软件的第三方服务都可以自己开发,不过从零到一是需要时间和金钱成本的.就像我们研发芯片,投入了巨大的成本,但仍然没有取得理想的成绩,有些事情并不是一朝一夕,投机取巧就能完成的. Jav ...

  5. Java 后端开发常用的第三方服务 TOP10

    严格意义上说,所有软件的第三方服务都可以自己开发,不过从零到一是需要时间和金钱成本的.就像我们研发芯片,投入了巨大的成本,但仍然没有取得理想的成绩,有些事情并不是一朝一夕,投机取巧就能完成的. Jav ...

  6. 第三方服务 “TOP10”Java 后端开发常用的

    严格意义上说,所有软件的第三方服务都可以自己开发,不过从零到一是需要时间和金钱成本的.就像我们研发芯片,投入了巨大的成本,但仍然没有取得理想的成绩,有些事情并不是一朝一夕,投机取巧就能完成的. Jav ...

  7. Java Web和Java后端开发的学习路线

    基础:比如计算机系统.算法.编译原理等等 Web开发: 主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面).Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识.它们的 ...

  8. Java 后端开发面试总结:25 个技术专题(最全面试攻略)

    另送福利: java 面试准备 准确的说这里又分为两部分: 1.Java 刷题 2.算法刷题 Java 刷题:此份文档详细记录了千道面试题与详解:  !     私信我回复[03]即可免费获取 很多人 ...

  9. Java后端开发。大学本科的时候我是如何赚到10w+?

    大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 很多小伙伴比较好奇 Guide 是如何从大四的时候就已经自给自足,并且用自己赚的钱去了很多地方旅游(重庆.恩施. ...

最新文章

  1. Apriori算法、FP-Growth算法、顺序分析、PrefixSpan算法
  2. Python之web开发(二):python使用django框架搭建网站之新建文件
  3. 程序设计基础(c语言),程序设计基础(C语言)
  4. 实现一个在JNI中调用Java对象的工具类,从此只需一行代码
  5. openwrt lamp
  6. harbor 多端口_Harbor使用 -- 修改80端口
  7. php 使用post,get的一种简洁方式
  8. 解决matplotlib的中文问题
  9. ubuntu 上 nvidia-smi 没显示所有的GPU
  10. 2019最新 Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_1-2核心技术列表...
  11. linux下安装配置nginx,Linux下安装与配置nginx
  12. PXE网络安装Linux操作系统原理与详细过程
  13. openpose学习
  14. Python爬虫入门教程【7】: 蜂鸟网图片爬取之二
  15. 每日打卡 22 11 16 CF 1694B Paranoid String
  16. 戴尔服务器运行失败,dell戴尔服务器错误代码及解决方案2013版
  17. 再次携号转网_全国携号转网真来了!这些坑一定要小心!
  18. STC学习:可校准的实时时钟
  19. 作为默认网络指标的额-颞顶连接的发展轨迹:一项纵向fNIRS研究
  20. MPAndroidChartlele蜘蛛网图详细使用(四)

热门文章

  1. MessageSolution 邮件归档系统EEA 信息泄露漏洞 CNVD-2021-10543复现
  2. 中考可以使用计算机吗,中考计算机考什么内容
  3. 文本处理--中文分词
  4. C#使用IronPython调用Python
  5. Gotomeeting在视频会议行业的应用趋势分析
  6. Unity的声音 —— AudioSource 和 AudioListener
  7. Adobe illustrator CS6配置参数文件所在位置-如何添加自定义图形图案-填充现有形状-脚本开发
  8. 菜鸟理财——货币基金
  9. Python根据IP查找所在地理位置与运营商
  10. php fcgi 配置,apache使用fcgi配置PHP环境的步骤