前言:
从微信公众号到现在的小程序, 涉及微信开发方面的内容越来越多, 工作大多时候是需要我们更了解微信开发的, 比如老大说要做个什么东西, 涉及到微信的, 我们能立马想到方案或者提出可行性的分析吗? 因为微信开发有它自己的一套规则, 有它自己的一套框架, 有一定它带来的便利, 也就有它带来的限制. 这篇文章, 不写入门, 不写开发流程, 主要聊聊最近的一些调研和细节.
主要平台:
开放平台 (文档: 微信开放平台文)
公众平台 & 小程序 (文档: 微信公众平台文档 & 微信小程序文档)
商户平台 (文档: 微信支付文档)
1) 开放平台包含了: 移动应用, 网站应用, 公众号和小程序, 第三方平台.
移动应用: 在开放平台创建移动应用和 app 关联, 为 app 提供微信支付, 分享到微信等等功能
网站应用: 使网站支持使用微信帐号来登录
公众号和小程序: 在开放平台里, 可以绑定公众号和小程序, 绑定后会触发 unionId 机制, 帮助不同公众号或者小程序打通用户体系.
第三方平台: 代小程序和公众号调用接口, 提供运营服务和行业解决方案
2) 公众平台包含: 订阅号, 服务号, 小程序
3) 商户平台: 主要支持微信支付, 包括线上线下的支付应用场景
三者关系如下图, 所有应用都属于开放平台, 开放平台可以绑定小程序和公众号使它们关联起来, 商户平台为所有应用提供支付功能.
如何更好的理解他们呢? 当然是走一遍所有的流程, 所谓流程也包括了注册, 微信文档在大多数时候并没有特别详细, 文档告诉了我们几步流程, 但每个流程里面含有什么内容我们不知道, 我好几次在文档怎么也找不到我想要的一些细节点. 最后还是自己走一遍流程才理解, 所以你想要更清楚细节, 最好都能自己去注册一遍. 微信开发相关的内容很多, 研发要关注的不只是怎么调用接口, 而还需要关注平台相互之间的关系, 运营规范, 设计规范等等.
列举一些比较常遇到的问题
微信授权 OAuth2.0
微信授权几乎是所有微信开发下应用入口接口, 用户授权后, 通过请求微信后端, 我们才能拿到用户信息, 授权流程大致如下:
1. 第三方发起微信授权登录请求, 微信用户允许授权第三方应用后, 微信会拉起应用或重定向到第三方网站, 并且带上授权临时票据 code 参数;
2. 通过 code 参数加上 AppID 和 AppSecret 等, 通过 API 换取 access_token;
3. 通过 access_token 进行接口调用, 获取用户基本数据资源或帮助用户实现基本操作
官方文档: Appsecret 是应用接口使用密钥, 泄漏后将可能导致应用数据泄漏, 应用的用户数据泄漏等高风险后果; 存储在客户端, 极有可能被恶意窃取 (如反编译获取 Appsecret).
说起这个问题, 当时也出现一个事故, 在微信公众平台后台 appsecret 没有修改的功能, 只能重置. 微信后台也有统计功能, 当时运营同事就要求给他们账户, 他们方便实时查看. 第二天我们就发现业务功能出问题了, 无法用了, 前端查问题, 后端查问题, 怎么看业务逻辑都没有动过, 不会是代码改出的问题, 后端查日志就是微信那块报的错. 结果是一个运营同事皮, 公众后台里面的所有功能都去点过一次, 把 appsecret 给重置了. 结论是后台权限还是别给非研发同事吧, 如果要给, 也要提前提醒一下这些注意事项.
消息分发相关
产品是需要提醒用户的, 消息通知在平时的开发中显得尤为重要, 也常因为消息的规则可能会影响最初的产品需求.
公众号可以以一定频次群发消息 (订阅号为每天 1 次, 服务号为每月 4 次)
公众号模板消息可以用特定内容模板, 主动向用户发送消息, 可以带上链接, 可以说没有次数限制
小程序的模版消息需要用户有交互通过 form 组件拿到 formId 才能向用户发送模板
微信分享
来源: https://www.cnblogs.com/1wen/p/9024873.html