微信公众号类型
微信公众号分为订阅号、服务号、企业微信(原企业号)、小程序类型
订阅号
- 订阅号
为媒体和个人提供一种新的信息传播方式,主要功能是在微信侧给用户传达资讯;(功能类似报纸杂志,提供新闻信息或娱乐趣事) - 适用人群
个人、媒体、企业、政府或其他组织。 - 群发次数
订阅号(认证用户、非认证用户)1天内可群发1条消息。
服务号
- 服务号
为企业和组织提供更强大的业务服务与用户管理能力,主要偏向服务类交互(功能类似12315,114,银行,提供绑定信息,服务交互的) - 适用人群
媒体、企业、政府或其他组织。 - 群发次数
服务号1个月(按自然月)内可发送4条群发消息。
企业微信
- 企业的专业办公管理工具。与微信一致的沟通体验,提供丰富免费的办公应用,并与微信消息、小程序、微信支付等互通,助力企业高效办公和管理
小程序
- 一种新的开放能力,可以在微信内被便捷地获取和传播,同时具有出色的使用体验
服务号接入
项目目前需要服务号 ,以下介绍服务号接入流程
服务号账号申请
可以在微信公众号 平台申请单的账号, 账号主体需要为企业,具体申请流程略去。
服务号开发
基本信息配置
- 服务号开发信息配置
设置开发者密码(AppSecret)
开发者密码是校验公众号开发者身份的密码,具有极高的安全性。切记勿把密码直接交给第三方开发者或直接存储在代码中。如需第三方代开发公众号,请使用授权方式接入。设置ip白名单
为了提高公众平台开发者接口调用的安全性,避免一旦开发者ID和密码泄露后给帐号造成损失。我们对调用”获取access_token”接口增加IP白名单校验:只有将IP地址设置为公众号的IP白名单,才能成功调用该接口。
2 服务配置信息
填写接口配置信息,此信息需要你拥有自己的服务器资源。填写的URL需要正确响应微信发送的Token验证
Token
必须为英文或数字,长度为3-32字符。EncodingAESKey
消息加密密钥由43位字符组成,可随机修改,字符范围为A-Z,a-z,0-9。消息加解密方式
明文模式、兼容模式、安全模式
网页授权登录
以下能力微信公众号平台提供,用户第一次授权登入后,接下来不需要再授权登入,有效期是一个月
静默授权
- 以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
- 对于已关注公众号的用户,如果用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope为snsapi_userinfo,也是静默授权,用户无感知
非静默授权
- 以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
- 用户管理类接口中的”获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。
- 过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。公众号可通过下述接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。
消息管理
自定义菜单
常见问题
redirect_uri域名与后台配置不一致
设置授权页面域名设置网页授权报错,域名或路径格式不正确
文件名称不要填写,例如:xxx.xxx.com/mymp
unionid获取
静默授权方式下:公众号绑定到微信开放平台帐号后,且用户关注服务号,才会出现该字段
非静默授权方式:公众号绑定到微信开放平台帐号后,才会出现该字段如何解决access_token存储和使用问题
经常有第三方反馈access_token造成服务中断的问题,公众平台排查问题发现,大部分第三方都在疯狂刷新access_token,使得access_token超出接口频率限制而失效。 这里提供一个较为简单的access_token 存储和使用方案。
1)中控服务器定时(建议1小时)调用微信api,刷新access_token,将新的access_token 存入mysql(或其他存储), 2)其他工作服务器每次调用微信api时从mysql(或其他存储)获取access_token,并可在内存缓存一段时间(建议1分钟)。
公众平台会保证在access_token刷新后,旧的access_token在5分钟内仍能使用,以确保第三方在更新access_token时不会发生第三方调用微信api的失败。
扩展知识(微信联合登录)
以下能力微信开放平台提供
移动应用
原生方式登录
移动应用微信登录是基于OAuth2.0 协议标准构建的微信 OAuth2.0 授权登录系统。
在进行微信 OAuth2.0 授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的移动应用,并获得相应的 AppID 和 AppSecret,申请微信登录且通过审核后,可开始
接入流程。- 目前移动应用上微信登录只提供原生的登录方式,需要用户安装微信客户端才能配合使用
- 对于Android应用,建议总是显示微信登录按钮,当用户手机没有安装微信客户端时,请引导用户下载安装微信客户端
- 对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已安装微信客户端(使用sdk中isWXAppInstalled函数 ),对未安装的用户隐藏微信登录按钮,只提供其他登录方式(比如手机号注册登录、游客登录等)。
扫码登录
扫码登录能力,指的是开发者可在移动应用内使用此能力,拉取二维码,用户使用微信客户端扫描二维码后可以登录此移动应用。此能力可被应用在多设备登录、智能硬件、电视盒子等场景。
网站应用
微信移动端/PC端之间的扫码登录,PC端用微信扫码登录,微信移动端确认授权登录后,应用可以从微信拿到用户的open id或union id,将微信获取的用户信息与自己账户体系中的用户身份进行关联