从微信公众号到如今的小程序,涉及微信开发方面的内容愈来愈多,工做大多时候是须要咱们更了解微信开发的,好比老大说要作个什么东西,涉及到微信的,咱们能立马想到方案或者提出可行性的分析吗? 由于微信开发有它本身的一套规则,有它本身的一套框架,有必定它带来的便利,也就有它带来的限制。 这篇文章,不写入门,不写开发流程,主要聊聊最近的一些调研和细节。html
1)开放平台包含了:移动应用,网站应用,公众号和小程序,第三方平台。 前端
2)公众平台包含:订阅号、服务号、小程序小程序
3)商户平台:主要支持微信支付,包括线上线下的支付应用场景后端
三者关系以下图,全部应用都属于开放平台,开放平台能够绑定小程序和公众号使它们关联起来,商户平台为全部应用提供支付功能。微信小程序
如何更好的理解他们呢? 固然是走一遍全部的流程,所谓流程也包括了注册,微信文档在大多数时候并无特别详细,文档告诉了咱们几步流程,但每一个流程里面含有什么内容咱们不知道,我好几回在文档怎么也找不到我想要的一些细节点。 最后仍是本身走一遍流程才理解,因此你想要更清楚细节,最好都能本身去注册一遍。 微信开发相关的内容不少,研发要关注的不仅是怎么调用接口,而还须要关注平台相互之间的关系,运营规范,设计规范等等。 浏览器
微信受权几乎是全部微信开发下应用入口接口,用户受权后,经过请求微信后端,咱们才能拿到用户信息,受权流程大体以下:安全
1. 第三方发起微信受权登陆请求,微信用户容许受权第三方应用后,微信会拉起应用或重定向到第三方网站,而且带上受权临时票据code参数;
2. 经过code参数加上AppID和AppSecret等,经过API换取access_token;
3. 经过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操做微信
官方文档:Appsecret 是应用接口使用密钥,泄漏后将可能致使应用数据泄漏、应用的用户数据泄漏等高风险后果;存储在客户端,极有可能被恶意窃取(如反编译获取Appsecret)。微信开发
提及这个问题,当时也出现一个事故,在微信公众平台后台appsecret没有修改的功能,只能重置。微信后台也有统计功能,当时运营同事就要求给他们帐户,他们方便实时查看。 次日咱们就发现业务功能出问题了,没法用了,前端查问题,后端查问题,怎么看业务逻辑都没有动过,不会是代码改出的问题,后端查日志就是微信那块报的错。 结果是一个运营同事皮,公众后台里面的全部功能都去点过一次,把appsecret给重置了。 结论是后台权限仍是别给非研发同事吧,若是要给,也要提早提醒一下这些注意事项。app
产品是须要提醒用户的,消息通知在平时的开发中显得尤其重要,也常由于消息的规则可能会影响最初的产品需求。
在开放平台注册移动应用后申请的App经过审核后,便可得到微信分享及收藏权限。
若是在网页中须要以下步骤:
1.微信公众平台里填写“JS接口安全域名”
2.在须要调用JS接口的页面引入以下JS文件,(支持https):res.wx.qq.com/open/js/jwe…
3.经过config接口注入权限验证配置(配置的签名须要后端获取)
目前一个公众号能够填写三个js接口安全域名地址。 大部分公司的前端页面都部署到某一个域名下的,后端能够只提供一个公众号的签名接口做为公共服务,其余公众号的业务在同一个域名下都能调用这个接口,以完成jssdk签名配置。
1)要使用微信支付,咱们的商户号的公司主体必须和公众号小程序等注册主体同样,不然没法绑定商户号。
2)如何实现测试公众号支付:
生成一个字典,存储测试用户的测试公众号和正式公众号的openId,当测试用户在测试公众号唤起支付的时候,后端把测试公众号的openId替换为正式公众号,并使用同主体商户号,即可以正常支付。 其实就是走正式的支付,调用测试的回调。
3)商户号绑定公众号:
微信的开发者文档有时候某些文档不是很好找,入口比较深,好比最初我想找到商户号如何和多个公众号绑定,找半天没有相关文档,几个开发文档里搜索也没有。 而在微信公众平台后台的“微信支付”里,也找不到相关的文档和入口。 还好由于公司有商户号,我登陆进去看了看才找到,若是是新手,在作技术调研的时候,可能会找不到文档。 最开始我还觉得商户号和公众号后台都能相互申请绑定,可是确实只有商户号里面才有此功能。 商户平台新增了受权申请单之后,对应的公众平台后台便在【微信支付 ~ M-A受权】下能看到。
如何受权文档连接 pay.weixin.qq.com/static/pay_…,文档入口以下图(难找):
关于支付,企业后端应该对每种支付实现后提供一个公共服务,每当有新的公众号须要支付的时候,只须要配置好相应的参数,调用公共服务下单便可。 若是有须要,前端也能够作一个钱包页面兼容多场景下的支付。 若是帐户体系打通了,钱包里会有充值的余额,用户还能够直接选择扣除余额,若是是在非微信浏览器中,钱包理应也有支付宝等支付方式。 可是钱包页面的存在会多一次跳转,若是在微信里用钱包页面,用户体验没有直接唤起支付好。
一个企业下面大部分的应用都但愿拥有一个帐户体系,相互之间的数据要能打通,而每个公众号或者应用下面对应一个用户都有不一样的openId也就没法在不一样应用之间标识同一个用户,这个时候就须要用到微信开放平台。微信公众号、移动应用、小程序等都是经过openId来标识用户的惟一性,开放平台可以绑定这些应用,绑定以后同一个用户会生成unionid来体现用户的惟一性。详情UnionID机制。
目前一个开放平台下面能够绑定:
我以前一直在找一个公司能注册多少公众号,在公众平台开发者文档就一直没找到有说明。 结果这块的内容在qq客服那个网站上kf.qq.com/faq/120911V…
公众号主体一旦审核完成就不能更换。若是须要更换,只能新注册一个公众号作迁移,迁移只能迁移部分数据,一个用户在不一样公众号openId不同的原则,若是A公众号迁移到B公众号,须要进行一次openId转换,官方有接口,详情看:kf.qq.com/faq/170221a…。 目前小程序没法迁移。
微信开发容易出现不少坑,不止于技术带来的,而其体量也愈来愈大,先后端都应该了解整个开发流程、开发配置、运营规则等等,不然容易出了问题不知道是谁的问题,解决问题的效率会很是低,甚至相互甩锅。 微信生态功能在不停的迭代,开发者技术文档、各类政策也时而变动,这些都是咱们须要时刻关注的。