一、前言

本系列教程将基于springboot2.1.8.RELEASE完成

本文将实现

  1. 注册账号
  2. 接入微信
  3. 认证成为开发者

二、进入微信公众平台注册账号

https://mp.weixin.qq.com/

个人用户建议注册订阅号

最后注册成功如下:

三、接入认证成为开发者

可参考微信官方开发文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

1、填写服务器配置

选择左下方的开发者工具,进入测试账号开发

why?
测试账号的权限多点,如果已经认证了的账号可不需要利用测试账号开发



登录进去

填写服务器 URL 和自定义的校验Token

温馨小提示:

  1. 微信公众号接口必须以http://或https://开头,分别支持80端口和443端口!
  2. 这里的url可以选择自己买的服务器地址,记得必须开放80端口去使用!
    或者使用内网映射外网工具生成一个域名地址供给你开发使用,此方法自行百度,如下就是其中一种使用~

2、提交验证URL有效性

配置好后,点击提交,微信服务器会发送一个GET请求到我们配置的地址上,在后台通过get请求的方式获取,请求的时候会传入几个参数

回到项目中,处理微信认证,然后启动项目测试

温馨小提示:这里小编将自己的内网映射到外网了,方便本地测试~

@Slf4j
@RestController
@RequestMapping("/api/weixin/index")
@Api(tags = "微信 - 接口")
public class IndexController extends BaseController {// TODO 这里的token是微信公众平台上自己所配的!private static final String token = "zhengqing";/*** 处理微信认证:验证服务器地址的有效性,get提交* signature: 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。* timestamp 时间戳* nonce: 随机数* echostr: 随机字符串*/@GetMappingpublic void checkSignature(HttpServletRequest request, HttpServletResponse response) throws IOException {System.out.println("============= 处理微信认证 ===============");// 拿到微信的请求参数String signature = request.getParameter("signature");String timestamp = request.getParameter("timestamp");String nonce = request.getParameter("nonce");String echostr = request.getParameter("echostr");// ① 将token、timestamp、nonce三个参数进行字典序排序 b a d c h ==>a b c d hString[] strArr = {token, timestamp, nonce};// 字典排序Arrays.sort(strArr);// ② 将三个参数字符串拼接成一个字符串进行sha1加密StringBuffer sb = new StringBuffer();// 字符串拼接for (String str : strArr) {sb.append(str);}// 加密String sha1Str = SecurityUtil.sha1(sb.toString());// ③ 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信if (sha1Str.equals(signature)) {// 如果相等,就是来自微信请求// 若确认此次GET请求来自微信服务器,原样返回echostr参数内容,则接入生效response.getWriter().println(echostr);}}}

其中sha1加密工具类

public class SecurityUtil {public static String sha1(String str) {try {StringBuilder sb = new StringBuilder();MessageDigest digest = MessageDigest.getInstance("sha1");// 放入加密字符串digest.update(str.getBytes());// 进行加密byte[] digestMsg = digest.digest();// byte转换16进制for (byte b : digestMsg) {sb.append(String.format("%02x", b));}return sb.toString();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return str;}
}

注意端口必须为80端口哦!!!

3、测试接入认证

启动项目后,回到微信公众平台,提交发送接入认证请求,如果配置正确,会提示配置成功,并保存配置信息

就这样,我们简单的完成了微信认证成为开发者 ~

本文案例demo源码

https://gitee.com/zhengqingya/java-workspace

微信公众号开发 (1) 微信接入认证成为开发者相关推荐

  1. 视频教程-基于python的微信公众号开发教程-微信开发

    基于python的微信公众号开发教程 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信 ...

  2. 微信公众号开发之微信公众平台与公众号第三方平台区别

    微信公众号开发分为微信公众平台和公众号第三方平台. 首先需要一个认证服务号,然后在设置,基本配置里面配置公众号开发信息和服务器配置. 这是我们会得到开发者ID(AppID),开发者密码(AppSecr ...

  3. 微信公众 mysql回复图片_微信公众号开发之微信公共平台消息回复类实例

    本文实例讲述了微信公众号开发之微信公共平台消息回复类.分享给大家供大家参考.具体如下: 微信公众号开发代码我在网上看到了有不少,其实都是大同小义了都是参考官方给出的demo文件进行修改的,这里就给各位 ...

  4. 微信公众号开发之服务器接入指南之Java版本

    微信公众号开发的官方文档: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319 其中我们开发好的服务器,在配置到 ...

  5. nodejs微信公众号开发第一步(接入指南)--wechat模块

    用模块接入微信就非常简单了.只用配置好参数,逻辑大神都写好了,站在巨人的肩膀上的感觉就是不错 本文测试用的是微信测试号. -- express生成项目框架 express命令行创建项目 :点击这里, ...

  6. ThinkPHP5.0微信公众号开发之 微信公众号接入

    ThinkPHP5.0 微信公众号接入 第一步:准备工作 首先,要有自己的公众号(这句是废话),个人可以申请微信公众号的订阅号,企业才可以申请服务号,其次要有云空间或者服务器,并且将服务器IP添加至微 ...

  7. 微信公众号开发之微信网页授权获取用户个人信息

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一丶概述 微信网页授权 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑 ...

  8. Java微信公众号开发之微信公众平台接入开发者

    微信开发者接入官方文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319 一.微信公共号通讯机制 作为开发 ...

  9. 微信公众号开发一:接入指南

    1.新建一个web project,我取的项目名称是weixin,使用8080端口,新建一个WeiXinServlet,web.xml如下 <?xml version="1.0&quo ...

最新文章

  1. Vivado中使用逻辑分析仪ILA
  2. office365为新建账号发送欢迎邮件
  3. 洛谷 5205 【模板】多项式开根
  4. Samba服务全攻略
  5. 非常郁闷,WinForm中正常显示的自定义控件无法在WebForm中正常显示!
  6. python get_len_Python类,特殊方法, __getitem__,__len__, __delitem__
  7. 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用
  8. 测试触发器有没有用_用30道电子工程师面试题来拷问堕落的假期...
  9. 2015.10.13课堂
  10. mysql 语句中last_Mysql函数:Last_insert_id()语法讲解
  11. 最新JMeter面试题,紧扣面试实际要求,看完拿下20K
  12. Hadoop(一)Hadoop概述
  13. 从0开始强化学习——强化学习的简介和分类
  14. Realtek USB无线网卡能搜到WiFi 无法连接到网络
  15. 整合营销系统推荐乐云seo_珠海整合营销【乐云seo】
  16. LoadRunner--并发测试(多用户)
  17. 某pdf转word v6.3.0.2算法分析
  18. 钢管车架管材的分级介绍 (zz)
  19. 【深入理解计算机系统-学习笔记】第一章 计算机系统漫游
  20. 游戏建模:想要做好人物角色模型,先了解人体的构造

热门文章

  1. nuxt 更新部署因浏览器缓存导致页面错误解决方法
  2. Linux云计算架构-使用LAMP搭建ecshop电商平台,并测试网站所能承受并发数
  3. 4GDTU称重系统无线监测系统
  4. 为什么Android系统比ios系统卡?
  5. [导入]PSP 经典游戏合集
  6. 分类计数原理与分步计数原理_分类加法计数原理与分步乘法计数原理的解题策略之一...
  7. A20.从零开始前后端react+flask - 查找数据
  8. 电子不停车收费系统(ETC)专题(2)——国内现状
  9. 骨传导原理是什么?骨传导耳机对保护耳朵健康有帮助吗?
  10. 引擎选择:GameMaker