说明:最近在开发微信公众号和小程序项目没来得及更新博客,在开发公众号过程中也遇到过一定的坑,提出来希望能帮助更多的人在开发公众号的时候少走弯路。
描述:
1,授权管理
前端使用了vue2.0搭建单页应用,前端项目使用nginx部署在服务器,部署非常简单,把vue的项目npm run build打包之后放到服务器,通过nginx找到根路径,配置服务器域名和端口号即可,对于很多前端小伙伴可能没有使用过nginx,甚至一直寄托于后台去部署服务,在这里本人还是强烈建议前端小伙伴自食其力,毕竟在未来的路上前端必然会更加独立,nginx部署这种项目非常简单,配置好之后,启动nginx.exe文件之后就可以访问了。
微信授权首先要在微信公众平台配置回调路径,这里相信看了公众号开发文档的都已经非常清楚了,不再截图表示,本人在做回调的时候遇到的问题是在页面上获取code的时候访问链接出错:
location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx9b51b645a5f8bc74&redirect_uri=http%3a%2f%2fmyspace****.com%2findex.html&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
redirect_uri获取code的回调路径,一定要使用encodeUri进行转换,这里由于nginx路径指向index.html回调路径不带index.html也可行。appid是个大坑,主要是因为有两个appid不要搞混了,一个是测试的appid和一个正式线上使用的appid,由于第一次使用单页应用开发公众号,出错了一直怀疑是回调路径出错。appid正确路径是: 开发/基本配置/公众号id 。。。同理,拿到code之后传给后台,使用的appid和secret也要是正式的appid和secret不要搞混成测试号的。
免密签约:
在网上几乎找不到关于免密签约的文章,可能由于非常简单,但是微信的提示模糊不清,一旦出错,可能无从下手。本人在做签约的时候由于粗心,回调参数路径经过encodeURL转换之后要大写,我写成了小写,也就是http%3a%2f%2fmyspace****.com%2f这个要写成http%3A%2F%2Fmyspace****.com%2F,还有就是解约,解约要在商户平台配置回调路径,而且一定要发post请求,这里也搞错了,希望大家注意,正确的做法是页面发起解约请求,前端请求后台接口,后台在发起解约申请。
篇后语:
微信公众号本不难,难就难在报错方面可能没有提供正确的定位,其实没有什么开发难度,更多的是去深刻理解官方文档所提供的内容,要站在同一思想下去看问题才行,遇到问题要冷静。