微信开发相关,了解一下

前言:

  从微信公众号到如今的小程序,涉及微信开发方面的内容愈来愈多,工做大多时候是须要咱们更了解微信开发的,好比老大说要作个什么东西,涉及到微信的,咱们能立马想到方案或者提出可行性的分析吗? 由于微信开发有它本身的一套规则,有它本身的一套框架,有必定它带来的便利,也就有它带来的限制。 这篇文章,不写入门,不写开发流程,主要聊聊最近的一些调研和细节。html

主要平台:

  • 开放平台 (文档:微信开放平台文)
  • 公众平台&小程序 (文档:微信公众平台文档&微信小程序文档)
  • 商户平台 (文档:微信支付文档)

  1)开放平台包含了:移动应用,网站应用,公众号和小程序,第三方平台。 前端

    1. 移动应用:在开放平台建立移动应用和app关联,为app提供微信支付、分享到微信等等功能
    2. 网站应用:使网站支持使用微信账号来登陆
    3. 公众号和小程序:在开放平台里,能够绑定公众号和小程序,绑定后会触发unionId机制,帮助不一样公众号或者小程序打通用户体系。
    4. 第三方平台:代小程序和公众号调用接口,提供运营服务和行业解决方案

  2)公众平台包含:订阅号、服务号、小程序小程序

  3)商户平台:主要支持微信支付,包括线上线下的支付应用场景后端

  三者关系以下图,全部应用都属于开放平台,开放平台能够绑定小程序和公众号使它们关联起来,商户平台为全部应用提供支付功能。微信小程序

  如何更好的理解他们呢? 固然是走一遍全部的流程,所谓流程也包括了注册,微信文档在大多数时候并无特别详细,文档告诉了咱们几步流程,但每一个流程里面含有什么内容咱们不知道,我好几回在文档怎么也找不到我想要的一些细节点。 最后仍是本身走一遍流程才理解,因此你想要更清楚细节,最好都能本身去注册一遍。 微信开发相关的内容不少,研发要关注的不仅是怎么调用接口,而还须要关注平台相互之间的关系,运营规范,设计规范等等。 浏览器

列举一些比较常遇到的问题

微信受权OAuth2.0

  微信受权几乎是全部微信开发下应用入口接口,用户受权后,经过请求微信后端,咱们才能拿到用户信息,受权流程大体以下:安全

  1. 第三方发起微信受权登陆请求,微信用户容许受权第三方应用后,微信会拉起应用或重定向到第三方网站,而且带上受权临时票据code参数;
  2. 经过code参数加上AppID和AppSecret等,经过API换取access_token;
  3. 经过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操做微信

  官方文档:Appsecret 是应用接口使用密钥,泄漏后将可能致使应用数据泄漏、应用的用户数据泄漏等高风险后果;存储在客户端,极有可能被恶意窃取(如反编译获取Appsecret)。微信开发

  提及这个问题,当时也出现一个事故,在微信公众平台后台appsecret没有修改的功能,只能重置。微信后台也有统计功能,当时运营同事就要求给他们帐户,他们方便实时查看。 次日咱们就发现业务功能出问题了,没法用了,前端查问题,后端查问题,怎么看业务逻辑都没有动过,不会是代码改出的问题,后端查日志就是微信那块报的错。 结果是一个运营同事皮,公众后台里面的全部功能都去点过一次,把appsecret给重置了。 结论是后台权限仍是别给非研发同事吧,若是要给,也要提早提醒一下这些注意事项。app

消息分发相关

  产品是须要提醒用户的,消息通知在平时的开发中显得尤其重要,也常由于消息的规则可能会影响最初的产品需求。

  • 公众号能够以必定频次群发消息(订阅号为天天1次,服务号为每个月4次)
  • 公众号模板消息能够用特定内容模板,主动向用户发送消息,能够带上连接,能够说没有次数限制
  • 小程序的模版消息须要用户有交互经过form组件拿到formId才能向用户发送模板

微信分享

  在开放平台注册移动应用后申请的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机制

目前一个开放平台下面能够绑定:

  • 50个移动应用(native)
  • 10个网站应用
  • 50个同主体公司公众号,5个不一样主体公司公众号
  • 50个同主体公司小程序,5个不一样主体公司小程序

主体注册限制

  我以前一直在找一个公司能注册多少公众号,在公众平台开发者文档就一直没找到有说明。 结果这块的内容在qq客服那个网站上kf.qq.com/faq/120911V…

帐号迁移

  公众号主体一旦审核完成就不能更换。若是须要更换,只能新注册一个公众号作迁移,迁移只能迁移部分数据,一个用户在不一样公众号openId不同的原则,若是A公众号迁移到B公众号,须要进行一次openId转换,官方有接口,详情看:kf.qq.com/faq/170221a…。 目前小程序没法迁移。

结语

  微信开发容易出现不少坑,不止于技术带来的,而其体量也愈来愈大,先后端都应该了解整个开发流程、开发配置、运营规则等等,不然容易出了问题不知道是谁的问题,解决问题的效率会很是低,甚至相互甩锅。 微信生态功能在不停的迭代,开发者技术文档、各类政策也时而变动,这些都是咱们须要时刻关注的。

相关文章
相关标签/搜索