准备工作

  1. 建立web工程,搭建服务器。 ---- 这里使用springBoot搭建
  2. 注册微信公众号(开发时用测试号即可)。
  3. 使用内网穿透软件(ngrok),使外网能访问你本地的应用,省去部署。

微信公众平台接入流程

微信公众平台的接入流程在官网中已经有较为详细的接入流程:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

主要步骤为:
1、填写服务器配置
2、验证服务器地址的有效性
3、依据接口文档实现业务逻辑

接入成功后,用户向公众号发送信息或点击菜单等操作时,微信服务器将推送相关的消息和事件到开发者配置好的服务器URL,开发者根据自身逻辑进行响应。

当用户向微信公众号发送消息时,公众号方收到的消息发送者是一个OpenID,是使用用户微信号加密后的结果,每个用户对每个公众号有一个唯一的OpenID。

这里需要注意的是,如果开发者需要在多个平台(小程序、网站、公众号)中使用同一个用户体系,应接入微信开放平台,这里可通过获取用户基本信息中的UnionID来区分用户的唯一性。

接收微信服务器的消息

当开发者服务器与微信服务器对接时,需要注意的是我们应该要定义两个入口,分别作用在验证微信服务器消息以及接收微信服务器下发的消息。而这两个入口的api都是在配置服务器的URL时定义的,也就是说这两个api是同一个URL。但为什么又需要两个入口呢。

原因在于验证微信服务器请求接收微信服务器下发数据的请求一个为get请求,一个为post请求。我们在对微信服务器下发的消息进行解析处理时,就是在post请求中的方法进行的。

验证微信服务器的api:

接收微信服务器下发数据的api:

需要注意的是,微信服务器下发的数据及开发者服务器处理返回后的数据格式都为xml,故在返回数据时需在@PostMapping中添加produces = “application/xml”,以保证返回xml格式数据。同时,在接收和返回处理中都应对xml进行解析或组装,以方便程序处理。

备注

  1. 在微信开发中使用了微信java开发工具包:https://github.com/Wechat-Group/weixin-java-tools
  2. 使用该工具时的一个特点是,开发者可以将消息管理、菜单事件、关注事件/取关事件、扫码事件、门店审核事件等事件分为不同的handler(处理器),再通过该工具提供的WxMpMessageRouter(消息路由)进行不同的事件路由处理。这样就有效地将每个事件处理分开,方便了开发者的开发思路。
  3. 在微信开发时需要使用公众号提供的access_token来对公众号各接口的调用,也是公众号的唯一接口调用凭证。这里需要注意的是,这个access_token与网页授权中的access_token是不一样的,前者是调用公众号各接口的唯一凭证,后者是通过OAuth2.0机制获得的access_token,用于网页授权时获取用户信息等功能。而且网页授权获取用户信息的接口与用户管理中获取用户基本信息的接口是不一样的,这点需要在开发时注意一下。

微信公众平台java开发相关推荐

  1. 微信公众平台java开发详解(工程代码+解析)

    说明: 本次的教程主要是对微信公众平台开发者模式的讲解,网络上很多类似文章,但很多都让初学微信开发的人一头雾水,所以总结自己的微信开发经验,将微信开发的整个过程系统的列出,并对主要代码进行讲解分析,让 ...

  2. 微信公众平台java开发详解

    说明: 本次的教程主要是对微信公众平台开发者模式的讲解,网络上很多类似文章,但很多都让初学微信开发的人一头雾水,所以总结自己的微信开发经验,将微信开发的整个过程系统的列出,并对主要代码进行讲解分析,让 ...

  3. 微信公众平台Java开发如何让网页自适应不同分辨率的手机浏

     在做微信公众平台开发的朋友应该会遇到这样的问题,开发的网页在不同分辨率的手机显示大小不同,不能根据分辨率的不同而自动调节大小,下面就告诉大家如何解决.    1.  使用HTML中的viewpo ...

  4. 微信公众平台java开发之接口url与token填写

    接口url与token填写注意的地方:你填写的请求的url需要包含token,这样才能让微信服务器与自己的服务器进行token验证 项目里面的token设定要和微信公共平台里面填写的那个token要保 ...

  5. 微信公众开放平台开发03---百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试

    微信公众开放平台开发03---百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试 技术qq交流群:JavaDream ...

  6. 百度云搭建微信公众平台服务器,微信大众开放平台开发03-百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试...

    微信公众开放平台开发03---百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试 微信公众开放平台开发03---百度 ...

  7. 微信公众号Java开发-笔记02【开发接入准备、开发接入】

    学习视频网址:哔哩哔哩网站 微信公众号开发-Java版 [P01-P02]微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] [P03-P04]微信公众号Java开发-笔记02[开发接入 ...

  8. 微信公众号Java开发-笔记01【微信公众号介绍、开发环境搭建】

    学习网址:哔哩哔哩网站 微信公众号开发-Java版 微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] 微信公众号Java开发-笔记02[] 微信公众号Java开发-笔记03[] 微信公 ...

  9. 视频教程-微信公众平台深度开发v2.0第3季——二维码、模板消息-微信开发

    微信公众平台深度开发v2.0第3季--二维码.模板消息 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考) ...

最新文章

  1. javase学习第10天(形式参数和返回值类型、包、内部类、匿名内部类)
  2. Redis有几种数据类型?文末领取面试资料
  3. 微信回应朋友圈表情包评论关闭:灰度测试;Twitter漏洞波及1700万用户;Ruby 2.7.0发布 | 极客头条...
  4. 指针数组与数组指针的区别
  5. 有序充电matlab仿真,电动汽车有序充电策略研究
  6. 高可用集群实验一:lvs的NAT模式、DR模式搭建及性能对比
  7. 内网渗透-域管理员定位
  8. Beaver‘s triple(乘法三元组)-秘密共享的乘法计算
  9. 神经网络计算棒怎么用,英特尔神经网络计算棒
  10. 当443端口被占用时如何解决?
  11. distribute by控制分区文件数
  12. vue拍照功能PC+手机需要的可以看一下
  13. Mysql保存emoji表情
  14. 基于Kotlin实现学生信息管理系统【100010063】
  15. OpenCV-图像颗粒感
  16. 2022年快手电商“大搞产业带”,如何抢跑快手电商下半场?
  17. C++记录程序运行时间5大方法
  18. 什么是看门狗(watchdog)?看门狗有什么作用?
  19. 2015年度中国智能路由器市场监测报告
  20. 应用在电磁炉触控面板中的电容式触摸芯片

热门文章

  1. 王者荣耀五周年,爬取102个英雄+326款皮肤,分析上线时间
  2. cocos2d学习笔记第四章 粒子效果及座标系
  3. acrobat pro dc 2019.010.20064 for mac激活版
  4. matlab是什么意思,matlab是什么意思_matlab的翻译_音标_读音_用法_例句_爱词霸在线词典...
  5. 一个简单的抽奖转盘游戏
  6. ad hoc是什么的简称_Ad Hoc 网络中文全称是什么?
  7. html中清除所有格式,清除文件HTML格式函数ClearHtml
  8. 2019-2020春江云暖你先知,CAE/EDA/高校等CloudHPC领域年均复合增长率超21%
  9. 用Python练街舞——让边跳舞边写代码成为现实
  10. 张成功项目管理记笔记