企业微信小程序开发有哪些必须的流程?
Admin 2021-05-26 群英行业资讯
文章目录
相关免费学习推荐:微信小程序开发教程
背景
为其他公司开发一个小程序,这个小程序要只能在企业微信里面访问,不能通过普通微信访问。
企业微信里只有授权的用户可以使用该小程序。
之所以要整理这样一个流程,是因为微信那边的文档太分散了,乱七八糟的,我也是花了很长时间才把这个流程理顺。
问题分析
首先,这里面需要解决几个问题:
1、只在企业微信里使用,不能在普通小程序使用
判断当前运行环境
2、只有授权的用户可以使用该小程序
权限校验
1:普通微信,使用账号+密码登陆,审核专用,可限制账号权限
2:企业微信,校验企业id,校验用户id,有权限的才允许使用
3、控制搜索
在小程序管理后台设置「不允许被搜索」
4、控制分享
小程序里面关闭分享
OK,做到以上几点,就实现了只有企业微信里授权的用户,才能够在企业微信的 工作台
看到该小程序。
处理流程
好,既然问题已经明确了,那我们就搞起。
对,没看错,先提交审核,因为只有审核通过的小程序才能被企业微信绑定。所以,先把小程序的基础功能做出来,可以限制一部分功能,总之,就是先让这个小程序上架。同时,在小程序的管理后台设置「不允许被搜索」,避免不必要的麻烦。
进入企业微信后台 -> 应用管理 -> 小程序 -> 关联小程序,然后使用小程序管理员的微信扫码,按照指引操作即可。
上一步的小程序页面会出现刚才关联的小程序,点击进入,然后就看到 secret 及可见范围。
这个 secret 相当于该小程序访问该企业微信数据的令牌,请妥善保存。
可见范围就是授权,哪些用户能看到这个小程序,被设置可见的人将会在自己企业微信的工作台看到该小程序。
好了,到重头戏了。
小程序需要判断当前的运行环境(普通微信 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); } } }); }})
后台需要调用以下几个接口来进行权限校验。
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,后面根据有权限还是无权限,执行不同的操作就可以了,这里不再赘述。
相关免费学习推荐:微信小程序开发
以上就是企业微信小程序开发流程的详细内容,更多请关注群英网络其它相关文章!
(来源:PHP中文网)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
怎样选择靠谱的微信小程序开发公司?小程序服务器应该选择多大的带宽?在租用服务器搭建微信小程序热度不断高涨的今天,很多企业看到其他公司在小程序中盈利,有开发微信小程序的计划。 现在市场上有很多关于小程序开发的公司。 一家公司主要做产品,一家公司主要做外包。
对于经常进行小程序开发的朋友来说,tabBar组件应该是大家非常熟悉的组件了。原以为我对它已经很了解了,但是今天的遭遇才让我彻底认清了它。今天如往常一样开发小程序,但是意外地发现,我设置了tabBar却没有显示,这是怎么回事?
微信小程序的开发需要花多少钱?开发完的小程序为何要搭配大带宽服务器?现在,在我们生活的很多地方都出现了微信程序,如共享自行车上使用小程序、扫描代码下单时使用小程序、申请活动预约等。 与APP相比,小程序的使用频率更高,所以现在有开发微信聊天程序想法的企业越来越多。
自己写一个微信授权登录页面让用户实现点击的功能,也就是实现了通过button组件去触发getUserInof接口,有需要的朋友可以看看。
微信抖音做小程序,那么它们之间的本质区别是什么呢?自微信小程序出现以来,它给各个行业带来了巨大的红利,因此小程序已经成为一个热门话题。现在抖音也开始开发抖音小程序,让我们来看看租赁服务器构建微信小程序和抖音小程序之间的区别。