1.微信公众号开发准备
相关博客:
https://blog.csdn.net/Abysscarry/article/details/89071469
1.注册微信公众号账号
2.开发环境准备
1.开发好的程序在自己电脑通过浏览器是可以直接访问的;
另外一台电脑是没有办法访问的,我们可以让这些电脑连接
到同一个局域网中,然后通过ip访问;
2.在互联网上是访问不到我们本地的程序的,只有把程序放到
云服务器上才可以在互联网上访问;
3.在开发的过程中我们需要程序和微信服务器进行网络通信,
如果微信服务器不能找到我们程序就没有办法进行网络通信,
所以在开发时,为了让我们的项目可以被互联网上的其他电脑访问,
我们需要做内网穿透;
4.内网穿透软件:花生壳,nat123,ngrok(免费,不是很稳定)
5.ngrok:http://www.ngrok.cc/
1.下载,注册账号;
2.开通隧道
协议:http;
名称:随便写;
前置域名:随便写;
本地端口: localhost:80(本地项目访问端口)
其他不需要填写;
3.复制隧道id,启动ngrok客户端;
6.接入微信公众平台开发步骤:
1、填写服务器配置
1.服务器地址(内网穿透工具的域名)
2.token 需要和程序中一致;
2、验证服务器地址的有效性
3、依据接口文档实现业务逻辑

/*** 接入微信公众平台开发* 1.填写服务器配置;*   a.开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上;* 2.验证消息的确来自微信服务器*   a.开发者通过检验signature对请求进行校验,确认此次GET请求来自微信服务器,*              请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败;* 3.第三步:依据接口文档实现业务逻辑;  * @param request* @param response* @throws IOException*/@RequestMapping(value="/start",method = RequestMethod.GET)public void start(HttpServletRequest request,HttpServletResponse response) throws IOException { //验证消息的确来自微信服务器if(wechatUtil.check(request)) {          PrintWriter writer = response.getWriter();writer.write( request.getParameter("echostr"));writer.flush();writer.close();System.out.println("接入成功");}else {System.out.println("接入失败");}}
/***  验证消息的确来自微信服务器* @param timestamp* @param nonce* @param signature* @param token* @return*/public boolean check(HttpServletRequest request) {//微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。String signature = request.getParameter("signature");//时间戳String timestamp = request.getParameter("timestamp");//随机数String nonce = request.getParameter("nonce");//随机字符串String echostr = request.getParameter("echostr");System.out.println(signature+"\n"+timestamp+"\n"+nonce+"\n"+echostr);//1.将token、timestamp、nonce三个参数进行字典序排序   String [] str = {TOKEN,timestamp,nonce};Arrays.sort(str);//2)将三个参数字符串拼接成一个字符串进行sha1加密 String strs = str[0]+str[1]+str[2];String mysig= sha1(strs);System.out.println("mysig:---->"+mysig);//3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信return mysig.equals(signature);}/*** 加密处理* @param strs* @return*/public String sha1(String strs) {// TODO Auto-generated method stubtry {//获取加密对象MessageDigest md = MessageDigest.getInstance("sha1");//加密处理byte[] digest = md.digest(strs.getBytes());//处理加密结果char [] chars = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};StringBuilder sb = new StringBuilder();for (byte b : digest) {sb.append((chars)[(b>>4)&15]);sb.append(chars[b&15]);}return sb.toString();} catch (NoSuchAlgorithmException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}

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

  1. Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...

  2. 1.Node.js 接入微信公众平台开发

    一.写在前面的话   Node.js是一个开放源代码.跨平台的JavaScript语言运行环境,采用Google开发的V8运行代码,使用事件驱动.非阻塞和异步输入输出模型等技术来提高性能,可优化应用程 ...

  3. 【Node.js 微信公众号实战】1.Node.js 接入微信公众平台开发

    文章目录:         1.Node.js 接入微信公众平台开发         2.Node.js access_token的获取.存储及更新         3.Node.js 自定义微信菜单 ...

  4. java微信开发平台_Java微信公众平台开发(1) 接入微信公众平台

    前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我们开始聊聊如何将我们的服务端和微信公众平台对接! (一)接入流程解析 通 ...

  5. Java微信公众平台开发(一)--接入微信公众平台

    转载自崔用志博客:http://www.cuiyongzhi.com/ 前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我 ...

  6. Java微信公众平台开发(一)——接入微信公众平台

    前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我们开始聊聊如何将我们的服务端和微信公众平台对接! (一)接入流程解析 在 ...

  7. JAVA带你一步一步实现微信公众号开发(一)--接入微信公众平台

    (一)接入流程解析 在我们的开发过程中无论如何最好的参考工具当然是我们的官方文档了:http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6f ...

  8. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单

    我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...

  9. 第三篇 :微信公众平台开发实战Java版之请求消息,响应消息以及事件消息类的封装...

    微信服务器和第三方服务器之间究竟是通过什么方式进行对话的? 下面,我们先看下图: 其实我们可以简单的理解: (1)首先,用户向微信服务器发送消息: (2)微信服务器接收到用户的消息处理之后,通过开发者 ...

最新文章

  1. CMD——ping及用其检测网络故障
  2. 关于重构,看此文就够了
  3. MVC架构在Asp.net中的应用和实现
  4. MFC中动态数组CArray的使用
  5. MySql数据库表类型MYISAM与InnoDB的区别
  6. CSS选择器必备的3个知识点
  7. MongoDB数据库操作
  8. mysql+全文本检索的列,mysql索引
  9. HBase原理-数据读取流程解析
  10. 18. OP-TEE中secur world和non-secure world的切换过程
  11. Ubuntu挂载ISO文件
  12. 哈哈,用FlexGrid做开发,轻松处理百万级表格数据
  13. 攒机笔记二十:改造笔记本电脑(华硕A555L)
  14. 贵州安顺:红色基因激活初心密码 为民服务谱写秀丽篇章
  15. Incapsula的全球网络地图
  16. 基于NMF的推荐系统实例
  17. 不要掉进PHP数组合并的坑。(初学者须知道)
  18. 软考2022下半年上午题真题和知识点整理
  19. PCIE Capability ID
  20. mybatis-plus ${ew.customSqlSegment} 使用的史诗级大坑

热门文章

  1. Visual Novel Maker v1.0.1074 视觉小说游戏制作软件
  2. 在线求救代码以及解题思路
  3. 550分左右的理科大学计算机,理科考550分左右可以报考哪些大学2021
  4. 惠普g7服务器系统激活,技术解析:八路惠普ProLiant DL980 G7
  5. 计算机实战项目、毕业设计、课程设计之 [含论文+辩论PPT+源码等]微信小程序家庭理财系统+后台管理|前后分离VUE[包运行成功
  6. javascript练习20:长度单位换算(计算精度待解决版)
  7. 洛谷 T282123 电路维修
  8. smart-UPS RT 15000串口通讯线的线序测量
  9. vue身份证号、手机号、姓名脱敏处理
  10. DVD机读碟故障维修技巧