手记系列之一 ----- 关于微信公众号和小程序的开发流程
前言
本篇文章主要介绍的调用微信公众号和小程序之后的开发流程,主要以实现步骤为主。
前提准备
- 已经申请了微信公众号和小程序(由于官方文档写的很详细,这里就不在进行说明了);
- 微信公众号和小程序的进行关联了(主要是为了消息推送);
小程序的开发流程
- 提前注册微信小程序,注册地址:https://mp.weixin.qq.com/cgi-bin/wx;
- 若需要实现微信推送,则需要注册登录微信公众号开发平台,并添加小程序(300元), 地址:https://mp.weixin.qq.com/cgi-bin/home;
- 需要得到微信小程序的appid和secret,在小程序的后端管理里面登录查看。
- 与微信请求交互需要使用https,并且建议使用域名来实现,需要弄好对应的https证书(可放在nginx目录下并进行配置),并且小程序的后端需要开发外网端口。
- 若要实现微信推送功能,则需要关联微信公众号成功,并且需要添加IP的白名单,不然token无法获取;
- 若要实现图片上传功能,建议使用图片服务器,返回图片路径给前端(使用Nginx的时候要注意设置传输大小 (client_max_body_size 20M;));
- 注意小程序打包体积不能超过2M,其他资源(包括图片等)放于后端静态服务器中;
- 小程序体验版自测需要在微信管理后台添加对应的开发人员,并且在登录小程序的时候使用开发调试功能(小程序界面右上角三个点进入),且体验版的网络和后端服务的网需要在同一局域网才开进行访问;
- 关于小程序升级上线,需要提前提交审核申请(初次审核可能在3天左右甚至更久,一般需要提前进行,后续一般在1天左右),上线前需要在微信公众号开发平台提前添加好获取token的白名单,并且需要确保后端服务开启了外网访问权限。
微信公众号的开发流程
微信公众号的开发,这里只介绍一下如何进行消息推送。
微信api文档
- 微信公众号接口权限地址,需要管理员:
https://mp.weixin.qq.com/advanced/advanced?action=table&token=396006949&lang=zh_CN
- 微信公众号文档:
https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html
微信公众号消息推送流程
微信模板消息接口地址:
https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html
1.微信公众号推送前提
目前我们是需要将在微信小程序上面的用户和微信公众号的关注用户进行关联,因此必须需要unionid,并且需要绑定微信开发平台,这里简单介绍一下这几个名词的说明。
- openid: 用户小程序、公众号中的唯一标识,一个用户在每一个小程序和公众号中都不相同,可以理解为uuid。
- unionid:在绑定微信开发平台之后,小程序和公众号共通的id。可以通过
https://api.weixin.qq.com/sns/jscode2session
这个接口获取,但用户必须是关注了公众号和使用了小程序才能拿到。(需要公众号,小程序,开放平台三者绑定)。 - appid: 小程序、公众号自身的唯一标识,开发者ID是公众号开发识别码,配合开发者密码可调用公众号的接口能力,管理员登录网页版的微信小程序和公众号可查看。
- secret :开发者密码是校验公众号开发者身份的密码,具有极高的安全性。切记勿把密码直接交给第三方开发者或直接存储在代码中。如需第三方代开发公众号,请使用授权方式接入。管理员登录网页版的微信小程序和公众号可查看。
微信公众号推送流程
-
用户关注公众号得到公众号的openid和unionid;
- 获取公众号的token:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET
- 根据token获取公众号关注的用户列表得到openid,第一次获取不需要next_openid的值:
https://api.weixin.qq.com/cgi-bin/user/get?access_token=TOKEN&next_openid=APPID
- 根据openid获取unionid,可以批量获取(POST):GET
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
POSThttps://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN
- 获取公众号的token:
-
用户使用小程序之后得到小程序的openid和unionid;
- 获取小程序的token:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET
- 获取sessionkey、openid和unionid,code需要前端登录之后传输 :
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&js_code=CODE&grant_type=authorization_code
- 获取小程序的token:
-
使用unionid进行关联然后进行推送;
使用模板进行推送,然后将内容填写到json中,需要openid、模板id(可以在微信公众号平台模板里面拿到)以及模板格式:
POSThttps://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
一个简单的流程图:
其他
今年基本没怎么写博客了,因为现实中各种各样的事情,不过也是借口。既然现在又开始写了,那么还是希望能够写下去吧,目前还是先以自己的一些笔记为主吧,质量上可能没有之前写的好,毕竟就是将笔记简单的进行一下排版而已,没有向之前那样找各种资料查阅、验证、举例等等,毕竟那样要花费很多时间,准备一篇至少要4个小时以上,对于目前的自己来说,现在的确很难,但是我还是想去试试,先从零开始吧,先稳定更新一下手记系列吧,好了,关于废话就到这里了。
音乐推荐
一首很好听的古风曲~
原创不易,如果感觉不错,希望给个推荐!您的支持是我写作的最大动力!
版权声明:
作者:虚无境
博客园出处:http://www.cnblogs.com/xuwujing
CSDN出处:http://blog.csdn.net/qazwsxpcm
个人博客出处:https://xuwujing.github.io/