微信公众号开发详细教程

微信公众号开发文档

需不需要开发服务器应该根据自己的业务需求来决定。如果你只是简单使用微信公众号,发送推文等简单需求,你就不需要的配置自己的开发服务器,微信公众号平台功能十分强大,不懂技术的用户也可以简单开发一个自己公众号。如果你有像成绩推送等需求,你就需要知道用户的openid,那就需要使用自己的开发服务器。废话不多说,我们来配置吧。

微信公众平台->开发->开发者工具->公众平台测试账号

appid:是微信公众号的唯一标识,通过和appsecret进行验证。

URL:开发服务器的路径,接收微信服务器发送的数据。

Token:自设定的token,和开发服务器中进行验证的token保持一致。

微信公众号用户,微信服务器和开发服务器三者之间的关系:微信公众号用户发送信息时,发送到微信服务器,微信服务器将消息转发给开发服务器,交互都是通过xml格式。

如果你是用本地tomcat,可以使用像ngrok这样的内网穿透工具,生成一个外网域名,通过域名访问本地localhost:8080.

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

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

微信公众平台提供了大量的接口,如果我们使用这些接口进行开发就需要自己去封装参数等,发送请求到微信服务器。微信提供了开发工具。工具内封装了接口,我们只需要简单调用接口就可以,极大的简化了开发过程。

wei-java-tools依赖

         <dependency><groupId>me.chanjar</groupId><artifactId>weixin-java-mp</artifactId><version>1.3.3</version></dependency><dependency><groupId>me.chanjar</groupId><artifactId>weixin-java-common</artifactId><version>1.3.3</version></dependency>

代码:

    //微信配置服务器 验证@RequestMapping(value="/wxserver",method={RequestMethod.GET})public  void check(HttpServletRequest request, HttpServletResponse response)  {//微信服务器get传递的参数String signature = request.getParameter("signature");String timestamp = request.getParameter("timestamp");String nonce = request.getParameter("nonce");String echostr = request.getParameter("echostr");//微信工具服务类WxMpService wxService=new WxMpServiceImpl();//注入token的配置参数/*** 生产环境 建议将WxMpInMemoryConfigStorage持久化*/WxMpInMemoryConfigStorage wxConfigProvider=new WxMpInMemoryConfigStorage();//注入token值wxConfigProvider.setToken("weixin");wxService.setWxMpConfigStorage(wxConfigProvider);boolean flag=wxService.checkSignature(timestamp, nonce, signature); //验证token跟微信配置的是否一样PrintWriter out= null;try {out = response.getWriter();} catch (IOException e) {e.printStackTrace();}if(flag){out.print(echostr);}out.close();}

signature: signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。将这三个参数采用sha1算法进行加密.

boolean flag=wxService.checkSignature(timestamp, nonce, signature)

根据这三个参数,在开发服务器里面重新sha1算法加密,生成新的signature,然后和请求参数中的signature比较,相同则验证成成,成功之后返回随机字符串。配置阶段则成功。

微信开发之关键词回复:https://blog.csdn.net/qq_41662696/article/details/89535040

微信公众号开发之配置开发服务器相关推荐

  1. springmvc开发微信公众号接口 微信公众号测试账号配置接口Token验证

    转:springmvc开发微信公众号接口 微信公众号测试账号配置接口Token验证 开发前必读以及准备工作: 1.微信公众平台开发是指为微信公众号进行业务开发,为移动应用.PC端网站.公众号第三方平台 ...

  2. 微信公众号基本设置服务器设置教程,最新最全的微信公众号开发者模式配置

    微信公众号的开发分为编辑模式和开发者模式,那么最新最全的微信公众号开发者模式配置是什么呢,下面是学习啦小编收集整理的最新最全的微信公众号开发者模式配置,希望对大家有帮助~~ 最新最全的微信公众号开发者 ...

  3. 微信公众号自定义功能页开发流程

    1.申请微信公众号(服务号类型),且是企业认证通过的: 2.购买服务器,购买域名,申请域名备案(微信公众平台授权配置只允许配置域名,不接受ip及端口号):本人这里用的是阿里云服务器及域名,也是在阿里云 ...

  4. 如何判断微信公众号是否二次开发(一)

    微信公众号是否二次开发,即微信公众号是否使用了公众平台开发接口(其中主要如:自定义菜单接口.配置第三方开发服务器接口.调用外部链接等). 接下来介绍如何用手机直观的去判断微信公众号是否二次开发,主要从 ...

  5. 微信公众号的二次开发(三、接收事件推送获取用户信息)

    在上篇<微信公众号的二次开发(二 自定义菜单的创建)>中我们介绍了自定义菜单的创建.本篇文章将介绍如何通过接收事件推送来获取用户信息.首先我们阅读官方文档: 根据官方文档的介绍 微信公众号 ...

  6. 阿里云+python+flask+ngnix零基础从零开始搭建微信公众号进行后台AI开发全套教程

    目录 一.微信公众号开发基础 1.1 与公众号的消息会话 1.2 与公众号内的网页交互 1.2 搭建开发者环境 1.2.1 配置nginx环境 1.2.2 云服务器与微信服务器建立连接 1.2.2.1 ...

  7. 公众号分享页面php,微信公众号网页分享功能开发的示例代码

    现在每天都可以看到很多微信分享的链接上面有网站或者商家的自定义的分享标题,和分享链接的描述及分享出去的图像,例如下面的分享出去的链接: 上面这个是微信的js-SDK页面分享给微信好友在聊天列表中显示的 ...

  8. 微信公众号的二次开发(二 自定义菜单的创建)

    在上篇<微信公众号的二次开发(一)>我们介绍了微信订阅号的一些坑, 以及微信公众平台开发的一些基本配置.下面我们继续介绍如何通过用户关注等行为.获取用户的openid. 自定义微信公众号菜 ...

  9. 微信公众号网页在本地开发模式下如何使用正式环境的域名来调试

    微信公众号网页在本地开发模式下如何使用正式环境的域名来调试? 鄙人之前也不知道,网上搜了一下,看到的几篇文章都是要使用代理,有用Nginx的,还有自己写代理的.主要是按照步骤做了并不行.于是自己折腾了 ...

  10. 微信公众号消息推送开发(模板消息):点击推送消息跳转到网页或者小程序(三)

    需求场景: 点击推送的消息后跳转到小程序中的某个页面,或者跳转到某一个网页上,例如有这样一个需求,在商城平台购买产品后,需要通过公众号给用户推送订单详细并且点击消息可以看到对应的订单详情.以下我将在微 ...

最新文章

  1. SpringBoot常见功能特性分析
  2. 期刊论文格式模板 电子版_期刊论文的框架结构
  3. 蓝牙芯片排行_7月TWS 全球品牌出货量排行榜出炉
  4. 打印异常堆栈_定位生产问题时,异常堆栈莫名丢了,何解?
  5. Java阶段测试题一
  6. OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量
  7. ubuntu /etc/profile和/etc/environment的比较
  8. 最火的C语言编程软件,适合编写C语言代码的编程软件有哪些
  9. Min Difference
  10. JavaScript预解析
  11. android 盒子 红白机 模拟器,安卓FC模拟器
  12. oracle按序号排序,Oracle排序以及序号的显示
  13. 温德姆集团加速麦客达品牌在华扩张;柏悦酒店将进驻长沙;希尔顿惠庭中国首店将在深圳开业 | 美通社头条...
  14. 使用Python库valuequant和利润表历史数据计算股权价值
  15. 群晖QuickConnect与DDNS之间有何区别?
  16. offsetParent和parentElement的区别
  17. 【论文阅读】3D点云 -- VoteNet:Deep Hough Voting for 3D Object Detection in Point Clouds
  18. CoreDNS篇9-kubernetes插件
  19. win10 断针测试软件,修复损坏的系统文件,就用系统文件检查器SFC,简单高效
  20. Linux系统中 如何系统排错 二之文件引导阶段(引导文件丢失)!

热门文章

  1. YOLOv3 SPP源码分析
  2. linux usb有线网卡驱动_基于USB设备的Linux网络驱动程序开发
  3. PhotoShop 将图片裁剪为圆形 并加边框
  4. 关闭appleid双重认证_如何查看并移除登陆过Apple ID的设备
  5. Ubalun电动牙刷拆卸及内部刨析
  6. vue中组件根元素添加样式无效
  7. 怎么将计算机工具栏时间去除,电脑任务栏不显示日期只显示时间的详细处理方法...
  8. 【OpenCV】—图像对比度、亮度值调整
  9. 支持向量机(一)你确定不看吗
  10. python 点对点语音,Python(PyS60)实现简单语音整点报时