zoukankan      html  css  js  c++  java
  • 微信公众号开发随笔

    这两天在做一个微信公众号的开发任务,从前端到后端,因为没有开发经验,真的是从零开始,在这里把我所有遇到的坑都记录下来,以后可以直接拿来用。

    1,关于微信接口的调用,码云上有别人封装好的demo,直接下载到本地,只需要做几个参数的配置,启动项目,就可以在浏览器中访问到本地接口。

    2,在做正式接口开发之前,首先一定要认真阅读微信开发文档,所有一开始的迷惑在这里几乎都能找到答案,一开始看文档感觉很简单又很迷茫,但到后面,你就会越来越清晰的知道自己在干嘛。一定要从头开始认真阅读,不要跳跃式浏览,否则你看十遍,你还是不知道自己该如何下手。看完文档,我们大概知道自己接下来需要做哪些事情。

      第一:我们需要申请一个微信开发测试公众号 appid, appscreate; 这两个数据是在这个网址下通过微信扫描二维码生成的。http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

      第二:我们需要生成一个测试公众号的二维码,这个也是在上面地址页面中间位置,微信扫描二维码进入这个页面之后,生成appid 和appsecreat 数据的同时,也生成了相应的测试公众号二维码,在中间的位置,进来这个页面一定要好好看下这个页面的信息,不要只关注你需要的那两个数据值,而忽略了这个页面其他数据的意义。

      第三:微信开发者帮助文档关于每一个模块的接口描述,最后都有一个超链接是进入到接口测试,我们可以先在这个做一些接口测试,不急于快速上手开发,要明白其中的原理。

    3,配置好本地的appId, appsecreat,token等参数,用ngrok 做内网映射,并在微信官网开发平台做接入 入口的url 配置,注意配置到微信校验的入口路径,微信公众号开发文档有提示入口校验会传四个参数,我们拿到四个参数会进行参数的加密校验,然后返回一个校验状态。

    4,在本地和微信接口联调的时候,要注意自己控制类的路径,一定要写对,否则也是容易忽略出错的地方。

    5,看清楚接口需要的参数和返回的结果,在接口报错的时候,看返回的errorCode, 根据errorCode 的代码,去文档中找对应的说明,看是什么原因导致接口不通。

    6,用别人封装好的接口,不用重复造轮子,提高开发效率,但是有几点要注意的是,版本兼容问题,也就是说你公司使用的是spring boot 的哪个版本,最好是2.x的版本。本地数据库持久化操作的实体类属性的定义,最好与别人提供的接口类保持一致,否则在数据持久化的时候会因字段属性不匹配而报错。

    7,花我很长时间的就是微信公众号网页授权的问题,我最开始对这个网页授权的流程非常的迷茫,自己看了好多遍的文档,查阅了很多资料和视频,来回得看,还是不解,同事给的启发也是帮助的,最后还是要自己去理解去实现功能。下面我着重的说一下微信公众号的开发流程,不管我们是用已经申请到的企业服务号还是自己的测试账号,我们都可以进行接口开发,很多接口都对测试账号开放了权限,能满足基本的功能需求。我是使用测试账号开发的:

    用自己的手机微信扫码,登录自己申请的微信公众号的测试账号,然后显示关注公众号,点击关注,就进入公众账号的微信窗口,有聊天界面和下面的菜单按钮,聊天界面有微信公众号客服提醒,“欢迎关注!”的提醒,这个提醒是后台可以配置的。下面的菜单就是公众号的需求部分了,大的菜单里包含子菜单,子菜单有菜单名称和url,这个url 就是给用户展示的网页内容,如果公众号不做网页授权,那么用户可以访问所有的网页内容,只要关注这个公众号就可以了,如果需要网页授权,就在用户点击子菜单浏览网页之前做授权,并获取用户的基本信息,并将用户基本信息保存,当用户下次再点击子菜单的时候,会判断该用户是否已授权来决定是否需要授权操作,这个授权有两种方式,一种是静默授权,就是用户无感知的,我们只能获取用户的openId, 获取不到accessToken,就不能获取用户的基本信息,另外一种是用户手动授权,这种授权方式,用户点击同意授权,微信后台会返回一个code给公众号服务后端,我们拿到code去请求微信服务接口获取用的openId, accessToken,然后再拿这俩值请求微信接口获取用户基本信息,保存到数据库。

    微信授权的流程在微信公众号文档中说的很清楚,但是没有说什么时候进行授权,这个授权请求是何时发起的,我也是查阅了很多资料,去不同的微信公众号去体验,得出来的经验,这个授权可以是前端页面来做,当用户访问前端页面的时候,在该页面进行初始化之前调微信的授权接口,引导用户进行授权操作,用户点击同意授权之后,微信会返回一个code给前端js 接口,前端把code返回给后端,后端再拿code去获取用户的基本信息,这是一套流程。还用一种就是上面提到过的,在微信公众号的子菜单中做授权操作,授权主要目的是获取用户的基本信息。

    8,后端java开发我用的是spring boot 2.x,把项目pull 下来之后,需要把用的jar包导入到pom.xml文件中,注意版本问题,连接数据库,并做简单测试。这里需要学习的地方很多,spirng boot 初始上下文的步骤,ioc是如何工作的,bean的管理是如果实现的,如果有些类的使用不按照约定来,在启动之前就会校验失败,所以,一定要了解spring boot的约定,不断的学习和精进。

    结语:看过再多的技术文档和刷过再多的面试题,都如过眼云烟,自己动手去做的,遇到问题在不断思考的过程,才是你的成长。在程序员这条路上,从来没有容易二字,愿你坚持,愿你成诗。

  • 相关阅读:
    从零开始学VUE3.X-常用模版语法
    从零开始学3.X-生命周期函数
    从零开始学TypeScript-readonly
    从零开始学Typescript-基础类型
    从零开始学Typescript-webpack打包
    探索 .NET Core 依赖注入的 IServiceProvider
    在.NET Core 中使用 FluentValidation 进行规则验证
    盘点大厂的那些开源项目
    探索 .NET Core 依赖注入的 IServiceCollection
    使用 Benchmark.NET 测试代码性能
  • 原文地址:https://www.cnblogs.com/wonderful-day/p/11958937.html
Copyright © 2011-2022 走看看