这篇文章将为大家详细讲解有关开发企业小程序的流程步骤,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
导语:
开发一个小程序,该小程序只能在企业微信中访问,并且企业微信里只有被授权的用户可以使用。
问题分析:
首先,这里面需要解决几个问题:
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,后面根据有权限还是无权限,执行不同的操作就可以了,这里不再赘述。
关于“开发企业小程序的流程步骤”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。