首页 > 编程语言 >手记系列之一 ----- 关于微信公众号和小程序的开发流程

手记系列之一 ----- 关于微信公众号和小程序的开发流程

时间:2022-10-30 16:46:22浏览次数:74  
标签:weixin 微信 程序 公众 手记 ----- https com

前言

本篇文章主要介绍的调用微信公众号和小程序之后的开发流程,主要以实现步骤为主。

前提准备

  1. 已经申请了微信公众号和小程序(由于官方文档写的很详细,这里就不在进行说明了);
  2. 微信公众号和小程序的进行关联了(主要是为了消息推送);

小程序的开发流程

  1. 提前注册微信小程序,注册地址:https://mp.weixin.qq.com/cgi-bin/wx;
  2. 若需要实现微信推送,则需要注册登录微信公众号开发平台,并添加小程序(300元), 地址:https://mp.weixin.qq.com/cgi-bin/home;
  3. 需要得到微信小程序的appid和secret,在小程序的后端管理里面登录查看。
  4. 与微信请求交互需要使用https,并且建议使用域名来实现,需要弄好对应的https证书(可放在nginx目录下并进行配置),并且小程序的后端需要开发外网端口。
  5. 若要实现微信推送功能,则需要关联微信公众号成功,并且需要添加IP的白名单,不然token无法获取;
  6. 若要实现图片上传功能,建议使用图片服务器,返回图片路径给前端(使用Nginx的时候要注意设置传输大小 (client_max_body_size 20M;));
  7. 注意小程序打包体积不能超过2M,其他资源(包括图片等)放于后端静态服务器中;
  8. 小程序体验版自测需要在微信管理后台添加对应的开发人员,并且在登录小程序的时候使用开发调试功能(小程序界面右上角三个点进入),且体验版的网络和后端服务的网需要在同一局域网才开进行访问;
  9. 关于小程序升级上线,需要提前提交审核申请(初次审核可能在3天左右甚至更久,一般需要提前进行,后续一般在1天左右),上线前需要在微信公众号开发平台提前添加好获取token的白名单,并且需要确保后端服务开启了外网访问权限。

微信公众号的开发流程

微信公众号的开发,这里只介绍一下如何进行消息推送。

微信api文档

  1. 微信公众号接口权限地址,需要管理员:
 https://mp.weixin.qq.com/advanced/advanced?action=table&token=396006949&lang=zh_CN
  1. 微信公众号文档:
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 :开发者密码是校验公众号开发者身份的密码,具有极高的安全性。切记勿把密码直接交给第三方开发者或直接存储在代码中。如需第三方代开发公众号,请使用授权方式接入。管理员登录网页版的微信小程序和公众号可查看。

微信公众号推送流程

  1. 用户关注公众号得到公众号的openid和unionid;

    1. 获取公众号的token: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET
    2. 根据token获取公众号关注的用户列表得到openid,第一次获取不需要next_openid的值: https://api.weixin.qq.com/cgi-bin/user/get?access_token=TOKEN&next_openid=APPID
    3. 根据openid获取unionid,可以批量获取(POST):GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN POST https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN
  2. 用户使用小程序之后得到小程序的openid和unionid;

    1. 获取小程序的token:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET
    2. 获取sessionkey、openid和unionid,code需要前端登录之后传输 :https://api.weixin.qq.com/sns/jscode2session?appid=APPID&js_code=CODE&grant_type=authorization_code
  3. 使用unionid进行关联然后进行推送;
    使用模板进行推送,然后将内容填写到json中,需要openid、模板id(可以在微信公众号平台模板里面拿到)以及模板格式:
    POST https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

一个简单的流程图:
在这里插入图片描述

其他

今年基本没怎么写博客了,因为现实中各种各样的事情,不过也是借口。既然现在又开始写了,那么还是希望能够写下去吧,目前还是先以自己的一些笔记为主吧,质量上可能没有之前写的好,毕竟就是将笔记简单的进行一下排版而已,没有向之前那样找各种资料查阅、验证、举例等等,毕竟那样要花费很多时间,准备一篇至少要4个小时以上,对于目前的自己来说,现在的确很难,但是我还是想去试试,先从零开始吧,先稳定更新一下手记系列吧,好了,关于废话就到这里了。

音乐推荐

一首很好听的古风曲~

<iframe border="0" frameborder="no" height="86" marginheight="0" marginwidth="0" src="//music.163.com/outchain/player? Type=2&id=454905890&auto=0&height=66" width="330"></iframe>

原创不易,如果感觉不错,希望给个推荐!您的支持是我写作的最大动力!
版权声明:
作者:虚无境
博客园出处:http://www.cnblogs.com/xuwujing
CSDN出处:http://blog.csdn.net/qazwsxpcm    
个人博客出处:https://xuwujing.github.io/

标签:weixin,微信,程序,公众,手记,-----,https,com
From: https://www.cnblogs.com/xuwujing/p/16841577.html

相关文章

  • [Typescript] 80. Medium - Construct Tuple
    Constructatuplewithagivenlength.Forexampletyperesult=ConstructTuple<2>//expecttobe[unknown,unkonwn] /*_____________YourCodeHere______......
  • vue-cil搭建vue
    搭建vue-cil脚手架需要node.js环境去官网下载node.js  win系统cmdnode-v查看当前版本npminstallcnpm-g或者npminstall--registry=https://registry.npm.taoba......
  • 移动端-flex布局
    flex弹性布局特点操作方便,布局简单,移动端使用广泛pc端支持情况较差ie11或更低版本不完全支持flex是flexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大......
  • 测试分析-网络分析
    一、TTL与DNSTTL全称为timetolive,即生存时间。TTL的最大值是255,一般推荐值是64。TTL是IP数据包在计算机网络中存在的时间。实际上TTL是IP数据包在计算机网络中可以转发的......
  • CMake系统学习1--安装与入门
    安装编译工具和依赖库sudoaptinstallg++gccmakeninja-buildunziplibssl-dev-y​​wget​​下载和编译​​cmake​​源码wgethttps://github.com/Kitware/CMake/r......
  • CSP-J 2022 游记
    #CSPJS2022第二轮,这是我初中的最后一场csp,也有可能是我初中最后一场oi的正式比赛或许这场是我初中oi旅程的终点,当迈过29号那天后,我或许会回归文化课,与oi纵膈万里但我相......
  • STA学习笔记-0
    如今的逻辑设计复杂度和工作频率要求越来越高。为了保证设计稳定可靠,必须对设计附加时序约束,对综合实现结果进行时序分析。导言时序约束:主要用于规范设计的时序行为,表达......
  • leetcode-989-easy
    AddtoArray-FormofIntegerThearray-formofanintegernumisanarrayrepresentingitsdigitsinlefttorightorder.Forexample,fornum=1321,thearr......
  • JAVAWeb - HttpServletRequest
    一.Request入门HttpServletRequest:代表客户端的请求,通过http协议访问服务器,Http请求中的所有信息会被封装到HttpServletRequest,通过这个HttpServletRequest的方法,获得客户......
  • Matlab实现K-Means聚类算法
    招募大量matlab技术人员,有大量matlab需求订单,均为个人短期可以完成,有时间的朋友可以加我微信  : Ahxyz6666人生如戏!!!!一、理论准备     聚类算法,不是分类算法。分......