一、初衷
微信公众号开发按照这个趋势,个人认为是程序员必过的一个坎。公众号主要包括几种不同功能、不同业务需求的账号主体:1、公众平台服务号 2、公众平台订阅号 3、企业号,每个账号主体干啥的自行百度吧。记录一下自己遇到过的坑,希望小白看见了,对自己有或多或少的帮助,能少走些弯路吧,其实公众号开发,最重要的就是看懂文档了https://mp.weixin.qq.com/wiki,这里就不吐槽微信开发的文档了。
二、微信公众号(服务号)开发流程
1、首先到公众号平台申请自己需要的账号主体(这里我就以公众号服务号为例)。官网申请账号的地址:https://mp.weixin.qq.com/cgi-bin/registermidpage?action=index&lang=zh_CN。如果说个人无法通过申请渠道获得服务号,那就先自己去生成一个测试公众号账号吧。官网申请地址:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index(用自己的微信扫码即可)
2、准备一个项目(懒得建了,自己搞定吧)
3、开始接入微信公众号
三、接入开发
1、当你扫码并登陆微信公众号测试网站之后
ps:这里说一下这些属性的意思
appID:可以理解为第三方平台申请的接口访问应用ID,用来接口的调用、网页授权回调地址的参数,参与签名什么的。
appsecret:应用密钥,接口调用参与,比如定时换取access_token等等。
2、配置
a) 接口配置信息(主要是响应微信发送的Token验证),这里需要系统后台程序配合,其中URL填写的是访问当前系统响应给微信服务的请求地址,Token自定义即可
b)JS接口安全域名(主要是jsdk调用的域名配置),这里直接填写域名即可。有人会说了,这么麻烦,,我没有域名怎么办,本地测试怎么发布到公网访问?在资源匮乏的情况下,可以使用内网创投,常见的服务有:natapp,话升壳,ngrok等等。怎么使用?百度谷歌就能快速搞定。
c) 体验接口权限表(这里说明一下,测试号与正式主体账号有区别的,测试微信公众号接口权限没有全部开放,不过测试大部分够用了,如果还想测试支付的话,那就满足不了了,得有正式的公众号主体账号以外,还得开通商户平台)。网页授权获取用户基本信息 这一栏,一开始极容易被忽略,,网页授权必须要填写与后台配置回调的域名一致,否则常见的10003错误了。
3、程序接入(这里就不细说了)。第一,首先是接入消息和响应消息;第二,定时换取Access_token。因为access_token是接口调用的凭证,目前Access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。文档请详见:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183,所以定时去调用接口来更新本地存储的Access_token是必须的。第三:公众号服务号的开发,大多数是H5网页开发,所以网页授权是必须的了。
这里重点说一下网页授权:首先你得看懂官方文档 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
网页授权是用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,然后通过回调系统引导页请求地址,进而实现业务逻辑,通常在微信公众号菜单入口就要实现了。
网页授权说几个重点事项:
第一,授权的作用域。分两种,静默授权(snsapi_base )与用户同意授权(snsapi_userinfo)。在授权接口地址的参数中你会看见scope参数。如果需要在网页授权的时候获取用户基本信息(比如头像、昵称、性别、地址等等),那么必须使用snsapi_userinfo作用域。第二,请求参数
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
appid填写上自己申请的测试账号或者正式的主体账号对应的appid即可。redirect_url为回调系统的地址,域名必须与公众号填写的一致,可以携带参数。scope根据业务需求而定,,其他的默认就好。
第三,微信服务器回调本系统的时候会携带参数code,code主要是换取access_token,注意,这里的access_token与之前的接口调用携带access_token有一定的区别,这里主要是用来获取用户基本信息。一样具有时间有效期限制,如果需要保存使用,也得定时更新。
第四,当微信服务器回调系统后,,你就可以再外部调转到系统相对应的引导页了。至此,网页授权流程就完成了。
4、自定义菜单(可以通过微信公众号开发文档提供的接口创建,如果是正式的公众号,也可以在平台配置),菜单配置url的时候,一般是网页授权的地址,然后微信服务器通过回调系统,系统在外部跳转到相应的引导页即可。
第四、说明
程序这块,,其实现有的封装有很多,也比较成熟。百度、Google一大把。我就不贴了,如果需要帮助,请私信我!本篇文章大部分说明的是业务流程与重点事项,勿喷,,请谅解。有什么地方不对,,请多多指教!!!