赞
踩
公司要开发一个微信小程序给公司内部人员使用,刚好公司有个企业微信号,我登上企业微信号一看,刚好有关联微信小程序的功能。
我一拍大腿,决定开发个小程序,关联到企业号上用,恩,这个决定是一切坑的开始。
小程序只支持https域名,其实这个也不是坑啦,只是我自己脚滑掉坑里了而已。
要想配置https,必须先申请证书,由于公司的域名是在阿里云申请的,所以直接在阿里云申请个数字证书。
关于数字证书,这里有一篇非常经典的文章,推荐阅读一下:What is a Digital Signature?
由于公司的一级域名已经有了各种用处,所以我要另外申请一个二级域名,专门用来做小程序的服务器域名。
在域名解析里,新增一条记录,这里我的二级域名叫做:afs
比如我们公司的一级域名是:abc123.com,那么小程序的二级域名就是afs.abc123.com。
二级域名和公司的外网ip绑定后,然后内网服务器ip再和公司外网ip关联一下就可以啦。
恩,接下去我就要去申请证书啦。
进入阿里云的云盾证书购买页面,一看价格,就已经吓尿。。。
这价格,无论如何是下不去手的啊,幸好有免费的,依次选择单域名—>DV SSL—>免费版,终于看到一个可爱的¥0.00。
购买后,点击签发,填好资料,在域名那一栏里填上afs.abc123.com。
注意前面不要加www,我第一个证书填了www.afs.abc123.com,结果小程序和服务器怎么也连不通,这个就是我碰到的第一个坑。
后来我又重新申请了一个afs.abc123.com的证书,才解决问题。
申请好证书后,按照说明配置好nginx就行啦,在Nginx或Tengine服务器上安装证书
https域名配置好后,需要在小程序的开发—>开发设置—>服务器域名中填上刚刚申请好的域名。
这样,第一关就算过啦!
在使用之前,企业微信必须先关联小程序,在企业微信的应用管理—>小程序—>关联小程序,可以关联小程序。
但是,关联小程序前必须先发布小程序。
但是,小程序必须先关联了企业微信,才能调用企业微信的API测试!
没测试,怎么敢发布小程序啊?
不发布,测不了啊!
貌似进了一个死循环啊。。。
不管了,先发布再测,怕审核的小哥哥小姐姐不给我通过,我在备注里,特意说明了下。
结果,不到一个小时,审核就过了,吼吼。
小程序发布后,调用获取access_token的接口
结果,一直出错,“errcode”:40001,“errmsg”:“invalid credential”
查了一下,说是sceret参数出错了
我比较了半天corpsecret,结果一毛一样啊,哪里错了啊?
原来不是corpsecret错了,而是corpid填错了,corpid是企业id,不是AgentId。。。在”我的企业“里,有个企业id,填上就好了!
我承认,这个是我粗心了,不怪企业微信。。。
我在调用code2Session接口获取用户userid的时候,一直提示"errcode":40029,“errmsg”:“invalid code”
一查是code不合法
怎么就不合法呢?
我在网上搜了好久,终于发现,我调的登录接口错了,我一直用wx.login调用,在登录企业微信的时候需要用wx.qy.login接口。
还有,在开发者工具调试的时候,需要切换到企业微信小程序模式。
如果没有,需要在设置的模拟器插件里添加:
改好了以上问题,终于登录成功了!
真不容易啊。。。
在微信里,下拉搜索小程序,直接打开小程序是没有用的,小程序必须在企业微信里打开才能正常使用。不过,这也保证了安全性,只有加入了企业微信的人才能正常使用。
由于这个小程序需要上传视频和图片,测试的时候,发现图片上传成功,视频没有上传成功,一查发现报了413 Request Entity Too Large的错误。
这个是nginx的限制,不允许上传过大的文件,那我把它调大就行了。
打开nginx主配置文件nginx.conf,一般在/usr/local/nginx/conf/nginx.conf这个位置,找到http{}段并添加以下内容:
client_max_body_size 100m;
然后重启nginx问题解决。
我这一路走下来,碰到了这么多坑,花了很长时间去填,所以特意记录一下,给大家做个参考。
如果大家还遇到了其他的坑,欢迎在留言里补充,也许能为其他人节省不少踩坑时间呢。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。