服务号 微信公众号开发注意事项

微信公众号(服务号)已经推出很久了,但是第一次接触的人,或多或少会走一些弯路,下面是我在开发中见到的一些问题,也给自己做个备份
万事开头难其实只要是针对第三方平台的开发,第一件要做的事儿不是开干,而是先了解它 。
  • 官方文档先读一遍(了解它再征服它~) https://mp.weixin.qq.com/wiki
  • 准备一个已备案的域名和一个外网服务器,家里有些宽带有外网IP,不过80端口都被封了,但是443是可以用的~
  • 微信测试号,不需要线上申请号,扫描二维码直接登录,页面略丑 https://mp.weixin.qq.com/debu...
  • 在线调试用具 https://mp.weixin.qq.com/debu...
  • 本地开发工具(公众号&小程序) https://mp.weixin.qq.com/debu...
一些功能点的使用场景带参数的二维码如果要对一些活动的二维码做标记(来源、场景、关注绑定等),关注扫描该二维码服务端会同时收到二维码中携带的参数 。
个性化菜单可以根据用户的属性(标签、性别、手机系统、地区、语言)显示不同的菜单,可以和带参数的二维码结合使用 。
客服消息当用户主动和公众号有一些交互(发信息、点击菜单、关注公众号等)时,在48小时内,可以主动给用户推送消息 。
JS-SDK只要是在微信里面传播的页面,绝对离不开微信提供的强大的SDK功能,支持:分享内容自定义、图像能力(拍照、选图等)、音频能力(录音、播放等),具体的功能自己挖掘 。
遇到过的一些问题
  • 测试环境:必须关注测试服务号,否则你会碰到各种异常问题不能自拔 。
  • 测试环境:模板数量有限制,最多10条,多了就得删 。
  • 测试环境:AppID和生产环境要区分开,不要混淆(当然,这个和MySQL等配置同理) 。
  • 测试环境:不要使用生产环境的appID生成access_token(生产环境的token会失效,导致错误)
  • 测试环境:只支持配置一个js安全域名(线上是3个) 。
  • 测试环境:授权回调页面域名隐藏在体验接口权限表中,仔细找 。
  • 接收到微信的所有请求必须正常回复(输出一个success或者空),否则微信会认为处理失败,重试N次 。
  • access_token放到分布式cache中,不要等失效,通过定时脚本在过期前更新 。
  • 区分清楚ToUserName和FromUserName,to是你,from是用户(用户的open_id)~
  • 调用js-sdk必须配置js安全域名 。
  • 用户授权分两种,隐式和显式 。隐式:只能获取到用户open_id,如果不关注公众号,不能获取用户信息 。显式:只要用户点击确定,就可以获取用户昵称等信息 。
  • 调用所有js-sdk都必须通过接口获取签名数据(每次调用都需要:比如动态更改了分享标题等)
  • 前端页面使用vue.js类框架时,全部通过api获取数据,js-sdk签名中的url需要通过$_SERVER['HTTP_REFERER']获取,而不是$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] 。
  • 带参数的二维码分为永久和临时两种,永久的数量有限,临时的数量相对较多 。比如和单个用户属性相关的二维码使用临时的二维码优先 。
  • 通过js-sdk上传的素材(音频、图片等),微信先会给一个media_id(通常有效期为3天),当我们使用的时候通过media_id下载下来 。
  • 模板消息,推送次数超多,但是必须使用模板库的一些固定格式内容,自己申请成功率极低 。
  • 页面启用https后,页面的资源也必须使用https,当然这个不止微信里面是这样 。
不是总结的总结工欲善其事必先利其器,无论做什么,学什么,都得先把它的文档看一遍,工具安装一个 。直接上手整,一脸懵逼浪费时间不说,活儿能不能干好都是个问题 。
大家还遇到过什么问题或者坑,欢迎留言分享~

【服务号 微信公众号开发注意事项】


    推荐阅读