文章目录
-
- 背景
- 问题分析
- 处理流程
-
- 1、小程序基础功能开发,提交审核
- 2、企业微信关联小程序
- 3、获取关联小程序的 Secret,设置可见范围
- 4、修改小程序
-
- 4.1、判断运行环境
- 4.2、权限校验
- 参考资料
相关免费学习推荐:微信小程序开发教程
背景
为其他公司开发一个小程序,这个小程序要只能在企业微信里面访问,不能通过普通微信访问。
企业微信里只有授权的用户可以使用该小程序。
之所以要整理这样一个流程,是因为微信那边的文档太分散了,乱七八糟的,我也是花了很长时间才把这个流程理顺。
问题分析
首先,这里面需要解决几个问题:
1、只在企业微信里使用,不能在普通小程序使用
判断当前运行环境
2、只有授权的用户可以使用该小程序
权限校验
1:普通微信,使用账号+密码登陆,审核专用,可限制账号权限
2:企业微信,校验企业id,校验用户id,有权限的才允许使用
3、控制搜索
在小程序管理后台设置「不允许被搜索」
4、控制分享
小程序里面关闭分享
OK,做到以上几点,就实现了只有企业微信里授权的用户,才能够在企业微信的 工作台 看到该小程序。
处理流程
好,既然问题已经明确了,那我们就搞起。
1、小程序基础功能开发,提交审核
对,没看错,先提交审核,因为只有审核通过的小程序才能被企业微信绑定。所以,先把小程序的基础功能做出来,可以限制一部分功能,总之,就是先让这个小程序上架。同时,在小程序的管理后台设置「不允许被搜索」,避免不必要的麻烦。
2、企业微信关联小程序
进入企业微信后台 -> 应用管理 -> 小程序 -> 关联小程序,然后使用小程序管理员的微信扫码,按照指引操作即可。
3、获取关联小程序的 Secret,设置可见范围
上一步的小程序页面会出现刚才关联的小程序,点击进入,然后就看到 secret 及可见范围。
这个 secret 相当于该小程序访问该企业微信数据的令牌,请妥善保存。
可见范围就是授权,哪些用户能看到这个小程序,被设置可见的人将会在自己企业微信的工作台看到该小程序。
4、修改小程序
好了,到重头戏了。
4.1、判断运行环境
小程序需要判断当前的运行环境(普通微信 or 企业微信),需要判断使用当前小程序的用户是否有权限使用。
var isWxWork = false;wx.getSystemInfo({ success(res) { console.log(res.environment); isWxWork = res.environment == 'wxwork'; if (!isWxWork) { // 当前环境不是企业微信,怎么处理你随便 return; } // 当前环境是企业微信,执行登陆,获取用户 code,用于后面的权限校验 wx.qy.login({ success: function (res) { if (res.code) { console.log(res.code); // 这里可以将 res.code 通过请求发送给后台,让后台做权限校验 } else { console.log('登录失败!' + res.errMsg); } } }); }})登录后复制
4.2、权限校验
后台需要调用以下几个接口来进行权限校验。
1、获取 access_token
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxxx&corpsecret=xxxx 请求方式:GET登录后复制
这个接口和普通微信获取 token 的方法类似。
其中,corpid 在企业微信管理后台->我的企业->企业信息->企业ID;corpsecret 就是我们上一步关联小程序后获取的 secret。
返回内容如下:
{ "errcode": 0, "errmsg": "ok", "access_token": "xxxxxx", "expires_in": 7200}登录后复制
2、获取 userid
https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token=xxx&js_code=xxx&grant_type=authorization_code 请求方式:GET登录后复制
其中,access_token 是我们前一步 gettoken 获取到的;js_code 是前面判断运行环境时获取到的 res.code;grant_type 固定传 authorization_code
返回内容如下:
{ "userid": "bottle", "session_key": "xxxxx", "corpid": "xxxxxx", "deviceid": "xxxxxx", "errcode": 0, "errmsg": "ok"}登录后复制
这里的 corpid 可以用来初步校验当前用户是否有权限,因为无论哪个公司的人,只要他用企业微信,使用这个小程序,都会返回这样的结果,你需要根据 corpid 是否是你授权的企业的ID来校验,如果不是,直接返回无权限就可以,不用进行下一步。
当然 corpid 也可以用于处理一个小程序关联多家公司的情况,不过这是另一个问题了。这里简单提一嘴,因为是给其他公司开发的小程序,所以我们这个小程序也关联了两个企业,一个我们公司,一个对方公司,这样也方便我们测试,只需要给我们自己的测试人员授权就可以让他们使用完全相同的环境进行测试了。
3、获取用户信息(判断权限)
https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=xxx&userid=xxx 请求方式:GET登录后复制
其中,access_token 是我们前一步 gettoken 获取到的;userid 就是我们上一步获取到的 userid。
返回内容如下:
- 有权限
{ "errcode": 0, "errmsg": "ok", "userid": "xxx", "name": "xxx", "department": [], "position": "", "mobile": "xxx", "gender": "2", "email": "", "avatar": "http://p.qlogo.cn/bizmail/xxx/0", "status": 1, "isleader": 0, "extattr": { "attrs": [] }, "telephone": "", "enable": 1, "hide_mobile": 0, "order": [], "qr_code": "https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=xxx", "alias": "", "is_leader_in_dept": []}登录后复制
- 无权限
{ "errcode": 60011, "errmsg": "no privilege to access/modify contact/party/agent , hint: [1564556097_7_8d45297bd21be3702ff430560e1f0652], from ip: 118.113.1.217, more info at https://open.work.weixin.qq.com/devtool/query?e=60011", "department": [], "order": [], "is_leader_in_dept": []}登录后复制
OK,后面根据有权限还是无权限,执行不同的操作就可以了,这里不再赘述。
相关免费学习推荐:微信小程序开发
以上就是企业微信小程序开发流程的详细内容,更多请关注慧达安全导航其它相关文章!
免责 声明
1、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » 企业微信小程序开发流程
发表评论 取消回复