猫窝私语 — Makumo's Blog

玛酷猫的温馨小窝,记录生活点点滴滴。

@玛酷猫3年前

01/19
11:14
计算机 项目管理

微信开发闲扯

自从去年6月份开始接手微信开发,算下来也有半年多了,其间进坑无数,所幸依旧尚存,不得不吐槽下。

首先要说的就是微信这种开发模式,简直丧心病狂、毫无人性呀,不知道当初开发团队是处于什么考虑的,流程各种绕,前置依赖很多,虽然说有开发文档,但是如果你不去开发项目,仅仅的是看文档的话,直接就绕晕掉了。订阅号和服务号,再加上认证,就是四种类型的账号,对应不同的接口权限,加上微信开放平台的接口,微信支付的接口,零零总总一大堆,居然后面还有应用号,不知道又会开放什么新接口。

其次是调试困难,在官方开发工具出来之前,只有一个简单的网页版接口调试工具,用来检测下通信数据传输和返回值是否正常。对于大部分开发者都是本机开发,微信接口映射到本机就是个麻烦的事情,固定IP的话可以在路由器里面做下端口映射,非固定IP可以用一些动态域名比如花生壳之类的,或者使用ngrok工具,其实也是一种动态域名方法,即便是这样问题也很多,一方面大部分使用都是免费动态域名,每次域名都会变,都需要在公共平台里面修改接口地址,另一方面要使用jssdk接口的话域名需要备案,备案,备案。。。。。说完了后端部分就轮到前端了,由于接口必须需要微信浏览器支持,所以在普通浏览器里面用正常的方法都会显示微信的提示。在官方开发工具出来之前,还没有什么很好的解决办法,基本都是去掉微信jssdk部分调页面的效果,线上调试用微信PC版,可以看到源代码,查看下一些动态的内容是否正常输出,再剩下的问题就要靠经验了。还好微信也意识到自己这个生态环境不是很友善,出了开发工具,感觉就是个深度定制的chromium,使用起来还是比较方便的,至少能解决之前的页面和JS调试的痛处。

再次,微信开发应用使用起来也不是很友好,最严重的就是通过公共平台进入开发的应用,比如现在很流行的微商城,我在浏览商品的时候突然来了一个微信消息或者其他的信息,打开看了后就没回到之前浏览的页面了,尤其是在进行一些流程性的步骤,比如说购买,只能重新来过。通俗点说就是抗干扰能力非常差。这就需要开发者在开发应用的时候简单明了,层级流程尽量的短小,无需过多思考,一两步就能完成。也就限制了大型复杂的系统的接入性,不是不能接入,而是使用体验会很差,一有干扰直接重来。不清楚应用号会不会在这方便有所改变。

最后对于微信这个业态,我一直认为正确的微信模式就是服务号的模式,个人非常反感订阅号,虽然有很少部分订阅号质量非常高,也仅仅泥塘里的一两颗荷花,剩下的都是信息垃圾,各种鸡汤、伪科学、广告推广等等。我们现在处于信息泛滥的时代,人们已经开始由原来的被动接受信息转变成主动获取想要的信息,订阅号那种天天推送的模式反而令人反感,至少对我来说,再加上微信也是注意到了这些,将订阅号全部合并折叠起来,消息的获取宽度更窄,其实也是鼓励运营者向服务号转变。通过之前微信要推出应用号这个消息也能看出来,微信在不断的弱化自身的媒体属性,更多的作为一种平台,或者说是入口。公共平台利用微信上的人脉,加上微信很方便的扫码、摇一摇周边等参与模式,将用户导入进自己的平台系统中去,这种精准化营销是其他平台不具有的。支付宝虽然也在做类似的事情,可是起步晚了很多,虽然用户基数也不小,可是要用户改变已经养成的使用习惯,也是很难的。如果解决好微信开发的应用使用上的问题的话,也可以是企业一个很好的营销入口。

微信开发闲扯

@玛酷猫3年前

06/30
12:07
计算机

使用ngrok进行微信本地调试

接手微信公众平台的二次开发工作,最苦逼的莫过于调试了,每次完成都要传到服务器上,在用手机调试,各种烦躁。于是乎在网上找找本地调试的方法,一搜还真不少,思路都是一样的,就是想办法把手机端提出的请求转变到本地测试环境上。综合难易程度,决定选用ngrok软件来进行本地调试。

设置起来也很简单,首先去ngrok官网注册一个账号(不幸被墙,需要自行搭梯子。顺便吐槽下很多很好用的小工具都在墙外。),注册完成后会得到一个Tunnel Authtoken,先复制保存下来,留着后用。然后下载软件,由于用的windows,所以就下载windows版本的,下载后解压,就得到一个ngrok.exe的文件

WIN+R,cmd打开命令提示行,进入ngrok.exe那个目录,运行ngrok authtoken 之前得到的Tunnel Authtoken,登陆下,然后运行ngrok http 80 就可以使用了,窗口会显示关联的域名、状态、连接数和请求。如下图ngrok

由于个人开发习惯,IIS下面会有多个测试网站存在,然后在HOST里面会写一堆如下的指向

www.a.com 127.0.0.1
www.b.com 127.0.0.1
www.c.com 127.0.0.1
#等等…………………………

在IIS站点中主机名填上www.a.com就可以直接用www.a.com这个域名来做测试,再将上面ngrok虚拟出来的网址填写进主机名中,就OK了,从此就可以愉快的调试了。不过每次运行得到的网址都会变更,需要重新修改微信公众平台和IIS设置。如果想每次运行网址不变,可以使用ngrok http -subdomain=自定义的域名 80 来固定二级域名,不过这个功能属于高级用户,也就是要收费的,5美元/月起,我等屌丝还是老老实实用免费版的。

使用ngrok进行微信本地调试