微信服务号开发整体流程

1、微信的各个平台

微信开放平台,面向开发人员,为网站、App 提供微信第三方登录功能,为 App 提供支付功能(通过客户端 sdk 拉起微信客户端);

微信公众平台,对应的是公众号,包括订阅号、服务号、企业号,面向运营人员和开发人员,运营可以直接登录公众号管理后台查看公众号的各种指标,开发则是通过调用微信提供的各种接口来增强公众号的功能;

微信商户平台,用户通过微信支付的钱,最终到达商户账号。无论是开放平台还是公众平台,涉及到支付,都需要商户平台账号

简单提一下订阅号与服务号的区别

订阅号,主要用来发文章,微信的聊天列表中会有“订阅号”这一项,里面全都是订阅号的推送;正常情况下订阅号每天只能群发一条消息,但是媒体类的除外,比如人民日报、36 氪等,就是每天可以发多条,猜测应该是可以找微信申请的,只要资质够了,就可以一天发多条吧(未实际验证过,只是猜测)。

服务号,顾名思义,主要是提供服务的,比如银行的服务号,你可以在服务号里面查询一些信息,看一下服务号的菜单大致就了解了服务号提供的哪些服务,服务号在微信聊天列表中是单独的一项,不会像订阅号那样合并起来。服务号其实也可以像订阅号那样群发消息,但是每个自然月只能发 4 次,可以看出是跟订阅号的侧重点完全不同的,两者没有包含被包含的关系,谁也没法取代谁,也不是简单的权限高级低级的区别。

公众平台群发规则:http://kf.qq.com/faq/120911VrYVrA131025QniAfu.html

2、服务号账号介绍

服务号是只能企业申请的,个人只能申请订阅号。服务号相比订阅号有更多的接口权限,这样服务号就能提供更多的自定义功能。

服务号要能提供完整的功能,还需要进行“微信认证”,提交一些公司资质信息,认证费 300 元,微信认证成功之后,才能获得完整的服务号接口权限。

服务号账号的登录还是比较严格的,每次登录都需要管理员扫码确认。当然,管理员可以绑定运营者微信号(http://kf.qq.com/faq/120911VrYVrA141211FbEnq2.html),这样添加为运营者的人就可以自己扫码登录了,不需要每次都“惊动”管理员

3、服务号管理后台介绍

登录到管理后台,运营可以直接在管理后台进行一系列操作,例如:

公众号设置:设置关注公众号后发送给用户的欢迎语,设置关键词回复规则和内容,设置收到消息自动回复内容,自定义菜单

运营操作:群发消息,回复用户消息

查询统计:用户分析、菜单分析、图文分析、消息分析

4、服务号开发

至此,开发终于登场了~~~

先来看一下开发之前需要进行的一系列配置。

服务号管理后台左边栏最下面有一项“开发”,我们来一次看一下各个子项

基础配置

公众号开发信息,AppID 和 AppSecret 是必需的,其中 AppID 是可以暴露的,但是 AppSecret 是绝对不能暴露的。在管理后台里面也是不显示的,设置是无法查看的,要是忘记了,那只能重置(初始化或重置的时候是可以看到的,如果错过了这个时机,那后面就看不到了)。如果重置,就会影响已有服务,所以一定要备份好 AppSecret,同时不要泄露。

IP 白名单,需要填写开发环境、测试环境、正式环境的服务器 IP,只有白名单中的 IP 才允许请求微信获取 access_token,有了 access_token 才能有权限调用微信的各种接口。access_token 的具体介绍,参考公众平台文档--获取 access_token(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183),这里不再赘述。

服务器配置,参考公众平台文档--接入指南(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319),这里不再赘述。注意,如果服务器配置开启,则相当于服务器完全接管服务号,甚至可以夸张的说,有了服务器接收微信服务端的所有推送事件,服务号管理后台就可以废弃了。服务器配置开始后,管理后台有一些配置就失效了,比如,自动回复功能,不能在后台配置了,只能通过程序回复;自定义菜单,也只能通过程序来设置,不能再页面上设置了。

有了上面的这些配置,就可以开始开发、调试公众平台接口了。

开发者工具

开发者文档,文档对于开发者的重要性就不用说了,

在线接口调试工具,方便直接调试公众平台接口,不用开发者自己写调试程序,

web 开发者工具,相当于一个可以在 pc 上运行的微信浏览器,方便模拟手机微信,

公众平台测试账号,这个是非常有帮助的,尤其是在服务号未进行微信认证的情况下(很多接口还没有开放)。在这个测试账号里面基本上所有的接口权限都开放,在开发测试阶段是非常有帮助的

接口权限,可以查看所有接口是否有权限调用。部分接口还需要额外的配置,比如:网页授权获取用户信息,需要配置网页授权域名

介绍到这里,之后的开发就需要结合公众平台文档,自力更生了。虽然微信的文档不是特别条理,但是只要耐心一点,仔细一点,基本还是比较顺利的。

5、公众平台与开放平台打通(unionid 机制)

公众号,可以拿到关注用户的信息,openid、昵称、头像;

开放平台,第三方登录也可以拿到用户的信息,openid、昵称、头像;

其中,昵称、头像是相同的,也都是用户自己随时可以修改的,如果要唯一确定一个微信用户,只能通过微信 id。

但是,公众平台的 openid 是用户在公众号里面的唯一 id,换了公众号,openid 也会跟着变;开发平台的 openid 是用户在开发平台里面的唯一 id,与公众平台的 openid 是不同的。所以无法通过 openid 来唯一确定一个用户。

微信为了解决这个问题,提供了 unionid,只要公众平台、开放平台是关联起来的,那么同一个微信用户即使是在不同平台里面也都是相同的 unionid

平台之间打通,需要再开放平台中绑定公众号,绑定成功后,无论是在哪个平台获取用户信息,都会携带 unionid 字段,开发者可以根据 unionid 将不同平台下的同一个用户识别出来。

----------------------------------------------------------------------------------------------------------

本文没有介绍相关代码,只是对整个开发过程的一个梳理和总结,如果能对大家,尤其是新手,有些许帮助,我也感到非常荣幸。

欢迎大家批评指导,交流学习~~~

你可能感兴趣的:(微信服务号开发整体流程)