微信公众号开发 (1) 微信接入认证成为开发者
一、前言
本系列教程将基于springboot2.1.8.RELEASE
完成
本文将实现
- 注册账号
- 接入微信
- 认证成为开发者
二、进入微信公众平台注册账号
https://mp.weixin.qq.com/
个人用户建议注册订阅号
最后注册成功如下:
三、接入认证成为开发者
可参考微信官方开发文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319
1、填写服务器配置
选择左下方的开发者工具,进入测试账号开发
why?
测试账号的权限多点,如果已经认证了的账号可不需要利用测试账号开发
登录进去
填写服务器 URL
和自定义的校验Token
温馨小提示:
- 微信公众号接口必须以http://或https://开头,分别支持80端口和443端口!
- 这里的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) 微信接入认证成为开发者相关推荐
- 视频教程-基于python的微信公众号开发教程-微信开发
基于python的微信公众号开发教程 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信 ...
- 微信公众号开发之微信公众平台与公众号第三方平台区别
微信公众号开发分为微信公众平台和公众号第三方平台. 首先需要一个认证服务号,然后在设置,基本配置里面配置公众号开发信息和服务器配置. 这是我们会得到开发者ID(AppID),开发者密码(AppSecr ...
- 微信公众 mysql回复图片_微信公众号开发之微信公共平台消息回复类实例
本文实例讲述了微信公众号开发之微信公共平台消息回复类.分享给大家供大家参考.具体如下: 微信公众号开发代码我在网上看到了有不少,其实都是大同小义了都是参考官方给出的demo文件进行修改的,这里就给各位 ...
- 微信公众号开发之服务器接入指南之Java版本
微信公众号开发的官方文档: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319 其中我们开发好的服务器,在配置到 ...
- nodejs微信公众号开发第一步(接入指南)--wechat模块
用模块接入微信就非常简单了.只用配置好参数,逻辑大神都写好了,站在巨人的肩膀上的感觉就是不错 本文测试用的是微信测试号. -- express生成项目框架 express命令行创建项目 :点击这里, ...
- ThinkPHP5.0微信公众号开发之 微信公众号接入
ThinkPHP5.0 微信公众号接入 第一步:准备工作 首先,要有自己的公众号(这句是废话),个人可以申请微信公众号的订阅号,企业才可以申请服务号,其次要有云空间或者服务器,并且将服务器IP添加至微 ...
- 微信公众号开发之微信网页授权获取用户个人信息
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一丶概述 微信网页授权 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑 ...
- Java微信公众号开发之微信公众平台接入开发者
微信开发者接入官方文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319 一.微信公共号通讯机制 作为开发 ...
- 微信公众号开发一:接入指南
1.新建一个web project,我取的项目名称是weixin,使用8080端口,新建一个WeiXinServlet,web.xml如下 <?xml version="1.0&quo ...
最新文章
- Vivado中使用逻辑分析仪ILA
- office365为新建账号发送欢迎邮件
- 洛谷 5205 【模板】多项式开根
- Samba服务全攻略
- 非常郁闷,WinForm中正常显示的自定义控件无法在WebForm中正常显示!
- python get_len_Python类,特殊方法, __getitem__,__len__, __delitem__
- 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用
- 测试触发器有没有用_用30道电子工程师面试题来拷问堕落的假期...
- 2015.10.13课堂
- mysql 语句中last_Mysql函数:Last_insert_id()语法讲解
- 最新JMeter面试题,紧扣面试实际要求,看完拿下20K
- Hadoop(一)Hadoop概述
- 从0开始强化学习——强化学习的简介和分类
- Realtek USB无线网卡能搜到WiFi 无法连接到网络
- 整合营销系统推荐乐云seo_珠海整合营销【乐云seo】
- LoadRunner--并发测试(多用户)
- 某pdf转word v6.3.0.2算法分析
- 钢管车架管材的分级介绍 (zz)
- 【深入理解计算机系统-学习笔记】第一章 计算机系统漫游
- 游戏建模:想要做好人物角色模型,先了解人体的构造
热门文章
- nuxt 更新部署因浏览器缓存导致页面错误解决方法
- Linux云计算架构-使用LAMP搭建ecshop电商平台,并测试网站所能承受并发数
- 4GDTU称重系统无线监测系统
- 为什么Android系统比ios系统卡?
- [导入]PSP 经典游戏合集
- 分类计数原理与分步计数原理_分类加法计数原理与分步乘法计数原理的解题策略之一...
- A20.从零开始前后端react+flask - 查找数据
- 电子不停车收费系统(ETC)专题(2)——国内现状
- 骨传导原理是什么?骨传导耳机对保护耳朵健康有帮助吗?
- 引擎选择:GameMaker