成都公众号开发,成都微信开发,成都微信二次开发公司推荐初心科技
- 供应商
- 四川初心不二科技有限公司
- 认证
- 手机号
- 18328754010
- 网络推广
- 詹经理
- 所在地
- 四川省成都市武侯区吉泰五路88号 香年广场T3栋19楼1902A号
- 更新时间
- 2021-05-20 10:44
成都公众号开发,成都微信开发,成都微信二次开发公司推荐初心科技,核心团队拥有超过10年的企业互联网服务经验,以“分享经济,去中心化”为核心理念,基于物联网+人工智能、微信(公众号、小程序)、app(安卓+ios)、h5为企业提供深度开发、推广、运营、培训整体运营解决方案。今天小编就来为大家介绍微信公众号开发流程序。详细而且也比较专业,建议看前面一二点就行,其他的您选择了微信公众号开发公司就交给他们。
一、注册微信公众号
首先注册时可以看到公众号有三种类型,个人用户大多数选择订阅号,而企业用户一般选择服务号和企业号。
我们平常大多数关注的都是订阅号,他们统一都放置在微信应用的订阅号消息列表中,没有微信支付等功能,只是用于发布文章等基础功能。
而服务号和企业号都在会话列表,和我们的微信好友是同级别的位置,具备微信支付等功能,一般是某个企业品牌的对外操作窗口,如海底捞火锅、顺丰速运等。
我们前期开发测试只需要注册个人订阅号即可,真正开发使用的是开发者工具里的测试号,具体下面会说。
真正生产的话,使用的都是经过微信认证的订阅号、服务号、企业号。
二、了解微信公众号管理页面
我们在微信公众平台扫码登录后可以发现管理页面左侧菜单栏有丰富的功能:
大概可以分为这几大模块:
首页、功能、小程序、管理、推广、统计、设置、开发
作为开发人员,首先应该关注的是设置、开发模块;而作为产品运营人员,关注的是功能、管理、推广模块;作为数据分析人员,关注的是统计模块。
首先我们不妨各个功能模块都点击看一看,大概了解下我们能做些什么。可以确认的是,这个微信公众平台当然不只是给开发人员使用的,它提供了很多非技术人员可在ui界面上交互操作的功能模块。
如配置消息回复、自定义菜单、发布文章等:
这个时候我们可能会想:这些功能好像非技术人员都能随意操作,那么还需要我们技术人员去开发吗?
答案是:如果只是日常简单的推送文章,就像我们关注的大多数公众号一样,那确实不需要技术人员去开发;但是,如果你想将你们的网站嵌入进去公众号菜单里(这里指的是把前端项目的首页链接配置在自定义菜单),并且实现微信端的独立登录认证、获取微信用户信息、微信支付等功能,或者觉得ui交互的配置方式无法满足你的需求,你需要更加自由、随心所欲的操作,那么我们就必须启用开发者模式了,通过技术人员的手段去灵活控制公众号。
这里有一点需要注意,如果我们决定技术人员开发公众号,必须启用服务器配置,而这将导致ui界面设置的自动回复和自定义菜单失效!
我们在 开发 - 基本配置 - 服务器配置 中点击启用:
我们团队就遇到过这种情况:两个项目组共用一个公众号,结果一个启用了服务器配置,使另一个项目组手动配置的菜单失效了。所以要注意这点!
至于服务器配置中的选项代表什么意思、如何填写,我们下面再讲。
三、必备开发者工具的使用
我们进入 开发 - 开发者工具,可以发现微信提供了六种开发者工具,其中前四种属于开发必备:开发者文档、在线接口调试工具、web开发者工具、公众平台测试账号。
1.开发者文档
这个不用说!在我们开发中属于zuizuizui基础和重要的东西了,我们要想熟练开发公众号,首先必须熟读开发者文档!有些功能的开发甚至非要反复研读、咬文嚼字一番不可。ps:该文档吐槽的地方也不少,有些地方的确讲的不够明确!
2.在线接口调试工具
这个工具也算比较实用,包含大多数接口的在线调试,我们可以直接在上面输入参数,获取微信服务端的返回结果。
3.web开发者工具
这个工具是一款桌面应用,需要下载,它通过模拟微信客户端的ui使得开发者可以使用这个工具方便地在pc或者mac上进行开发和调试工作,一般是前端使用该工具进行页面、接口调试。
4.公众平台测试账号
这个测试号工具对我们的重要性可以说是仅次于开发者文档。我们可以创建测试号,无需申请、认证真实的公众帐号、可在测试帐号中体验并测试微信公众平台所有接口。并且所有的配置都可在一个页面上编辑,使开发测试变得极其便利。
成都微信二次开发
四、细读开发者文档
文档地址:https://mp./wiki
需要注意的是,细读开发者文档不是让你所有模块都去阅读,而是重点的重复细读,非重点的选择性阅读。
其中前两个模块:开始前必读、开始开发,属于重点关注对象,也是整个微信开发的基石所在,需要多读几遍。其次是微信网页开发模块的微信网页授权,比较难理解,需要特别注意。其他的模块则根据你们的项目功能需求,有选择性的阅读即可。
这里我就不多罗嗦了,大家看文档去吧!下面我会描述一些重点内容的实际操作情况以及代码,请确保你已经浏览过文档。
五、开发流程重点解析
1.开发环境准备
这里所谓的开发环境准备主要指的是我们项目服务端和微信服务端的网络通讯环境准备。
我们平常开发可能只需要ip端口就能通讯,顶多配置下白名单放行,但微信公众号开发我们需要通过域名通讯(微信会访问我们配置的域名地址:服务器基本配置中的url,下面会介绍),也就是我们各自开发环境需要拥有独立的域名,微信就能通过这个域名请求到我们的本地开发服务,各自进行开发测试。
而我们一般都是内网开发,整个内网只有一个对外域名,所以这时就需要 内网穿透,为我们每个开发人员配置各自开发机器的域名。
那如何进行内网穿透呢?你首先可以找下你们的网管,看他能不能帮你解决,如果不能,那就安装内网穿透工具,我们自己动手!
我选择的内网穿透工具是natapp,这个有免费版、收费版,免费版的域名会随机变化,而收费版可以拥有固定域名,建议选择收费版,9元每月并不贵;大家可以对照natapp的文档安装使用,并不难。
这样我们本地开发环境就拥有自己的域名啦!然后就可以在测试号管理页面配置本地访问地址url了。
2.服务器基本配置
无论是在真实公众号的 开发 - 基本配置 - 服务器配置,还是在 测试号管理中,我们都可以看到这几个基本参数:
开发者id(appid)、开发者密码(appsecret)、服务器地址(url)、令牌(token)
appid是公众号唯一开发识别码,配合开发者密码可调用公众号的接口能力,大多数微信接口都需要附带该参数。
appsecret是校验公众号开发者身份的密码,具有极高的安全性。切记勿把密码直接交给第三方开发者或直接存储在代码中。如需第三方代开发公众号,请使用授权方式接入。其中获取accesstoken就需要同时传入appid和appsecret获取。
url是开发者用来接收微信消息和事件的接口url,也就是我们服务后端的入口地址,需要注意的是该地址必须以域名形式填写,且必须以http 或https开头,分别支持80端口和443端口。如:https://yuanj.natapp1.cc/wechat。
token可由开发者可以任意填写,用作生成签名(该token会和接口url中包含的token进行比对,从而验证安全性),也就是我们项目和微信服务端进行通信时,必须保证公众平台配置的token和我们后台代码配置的token保持一致,这样微信就能验证我们身份。
我们点击提交时,微信会以get请求的方式访问我们配置的url地址,并附加几个参数进行验证,所以你需要在该地址对应的项目后端接口里对这几个参数进行加工处理,返回微信需要的结果,这样就可以验证成功,使微信服务端认可你配置的url和token参数,后续就能互相通信了!
3.存取access_token参数
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时(7200秒),需定时刷新,重复获取将导致上次获取的access_token失效。
access_token这个参数非常重要,几乎贯穿整个微信公关号项目开发,我们如何在有效期内定时刷新获取呢?
如果我们的微信公众号项目是单服务架构,可以直接作为静态变量存储在内存里;如果是多服务,可以用中间件存储,redis、数据库都可以。springboot项目内部可以通过@scheduled注解,执行定时任务,既然access_token有效期是2小时,那我们可以一小时刷新获取一次,将其存入redis,覆盖之前的access_token。
4.公众号消息管理
很多公众号都可以通过消息发送来与其进行交互,那这样的功能如何代码实现呢?
具体我们可以在微信文档 - 消息管理 模块查阅:
在此我要提到的一点就微信公众号的消息交互都是通过xml格式进行的!这点就很坑了。。现在我们前后端、服务端的消息传输基本都是json格式了,也习惯了json格式的解析处理,所以遇到xml格式的处理又要多费些事了。
为什么微信采用xml格式呢?我个人猜测是几年前还是xml格式的天下,当时json还没有这么流行,腾讯毕竟是产品业务驱动的,当然选择当时开发人员zui熟悉的xml格式了开发,后面随着微信平台的普及,用户越来越多,想重构改成json格式估计也十分困难,所以历史就遗留下来了呗。。
我在此推荐一个github上一个微信开发 javasdk,里面有整个微信开发平台很多功能模块造好的轮子,我们可以参考下直接使用:
https://github.com/wechat-group/wxjava
比如现在对于xml消息解析这个需求,上面就提供了完整详尽的代码。
5.获取openid以及网页授权(重难点)
注意,这是公众号开发的重难点之一,请把技术文档中的微信网页授权模块多读两遍,然后带着疑问来看我的解析。
(1)先明确为什么需要网页授权?我们的目的是什么?
答:用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。也就是通过这种授权机制,我们能获取微信用户信息,比如:头像、昵称、地区、个性签名等。
(2)既然目的是获取用户基本信息,微信不是提供了专门的接口吗?非要网页授权?
答:在文档的 用户管理 - 获取用户基本信息(unionid机制)模块可以看到的确有获取用户基本信息接口:
可以看到,这个接口只需要提供openid或者unionid,即可直接获取用户基本信息。那么问题来了,openid(unionid)又是如何获取呢?
微信平台提供了两种方式获取用户的openid
第一种方式:
用户与公众号产生消息交互时,会以post请求的方式向我们配置的服务器url地址发送xml格式的消息,并附带该用户对应公众号的openid!关于什么是消息交互我们可以查看文档中的消息管理模块,比如我们在公众号输入栏中发送文字图片语音等属于普通消息交互,我们关注、取关、点击自定义菜单等属于事件消息交互,每当前端用户进行这个操作时,微信服务端都会向我们项目后台发送post请求给我们传达信息:
可以看到,这个推送数据包中就包含了用户的消息交互类型、时间以及我们需要的openid!也就是说,无论用户在公众号里干了啥操作,我们都能知道他这个操作干了啥,以及他是谁(openid),这时就能调用用户管理 - 获取用户基本信息(unionid机制) 接口获取用户基本信息了。
别高兴太早,这种通过消息交互获取用户信息的方式,用户占主动地位,我们项目后端服务被动接受,那么如果我有个基本需求:我想在自定义菜单- 对应我们网站的前端页面上展示微信用户基本信息,能做到吗?你如何把后台接收到的消息和前端用户关联绑定?
可见,这种被动的方式并不能实现该功能,我们需要主动出击,在前端就能获取到当前操作用户的openid!
成都微信开发
第二种方式:
这种方式就是通过网页授权机制主动出击!详情见下文。
(3)网页授权有哪几种机制?分别是怎样实现?应用于什么场景?
答:主要有两种机制,对应两种scope:
以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)。
以snsapi_userinfo为scope发起的网页授权,是用来获取用户基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
成都公众号开发,成都微信开发,成都微信二次开发公司选择我们,已成功为郫县豆瓣、川娃子、卫士通、w府井百货、棒棒鸡传奇、蓝润地产、汉方元集团、牧天集团、成都商报、成都全搜索等西南地区上千家企业完成项目开发,提供技术服务,深受客户好评。