开发企业微信小程序的流程分析

开发企业微信小程序的流程分析

导语:

开发一个小程序,该小程序只能在企业微信中访问,并且企业微信里只有被授权的用户可以使用。

(学习视频分享:编程视频)

问题分析:

首先,这里面需要解决几个问题:

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,后面根据有权限还是无权限,执行不同的操作就可以了,这里不再赘述。

参考资料

企业微信API(小程序):https://work.weixin.qq.com/api/doc#90000/90136/90289

企业微信接口调试工具:https://work.weixin.qq.com/api/devtools/devtool.php

错误码查询工具:https://open.work.weixin.qq.com/devtool/query

相关推荐:小程序开发

以上就是开发企业微信小程序的流程分析的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1514650.html

(0)
上一篇 2025年2月18日 04:59:42
下一篇 2025年2月18日 04:59:54

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 企业微信接口对接与PHP的加班申请技巧分享

    企业微信接口对接与php的加班申请技巧分享 随着企业微信的普及,企业内部的沟通和协作变得更加便捷。除了发送信息、分享文档以外,企业微信还提供了丰富的接口,可以方便地与其他系统进行对接。在这篇文章中,我将分享如何利用PHP语言对接企业微信接口…

    编程技术 2025年2月22日
    100
  • 如何利用PHP开发小程序的后台接口

    如何利用php开发小程序的后台接口 在移动互联网时代,小程序成为了许多企业和个人发展的重要平台之一。而小程序的后台接口开发是实现小程序功能的重要环节之一。本文将介绍如何利用php开发小程序的后台接口,并提供代码示例。 搭建PHP开发环境首先…

    编程技术 2025年2月22日
    100
  • PHP与EasyWeChat: 创建微信小程序开发环境的指南

    php与easywechat: 创建微信小程序开发环境的指南 引言:随着微信小程序的兴起,越来越多的开发者将目光投向了小程序的开发。在开发微信小程序时,搭建一个合适的开发环境是非常重要的一步。本文将介绍如何使用PHP和EasyWeChat来…

    编程技术 2025年2月22日
    100
  • 小程序里的文件怎么转出来

    小程序里的文件怎么转出来? 小程序里是不支持直接将文档下载下来的,最简单方式就是登陆金山文档的电脑网页版。 进入后用微信方式登录(因为如果你是在微信里接收的他人的文件,微信账号需要两边保持一致),登陆后在文件列表里找到你要下载的文件并打开。…

    2025年2月22日
    100
  • 小程序示例(教你如何把小程序应用到项目)

    随着几家互联网公司接连涉足小程序,小程序又将将迎来新一轮的流量爆发。那我们今天就结合两个实例来看看,具体到某个项目我们应该如何使用小程序这一助力。 1、本地粉变现 想必有些朋友正在做或者做过本地公众号这类项目,所以今天我们首先来看看帮助本地…

    2025年2月22日 网络营销
    117.9K00
  • 微信小程序PHP开发:如何增强用户体验?

    微信小程序是一种基于微信平台的轻量级应用程序,通过微信平台提供的API接口,可以实现各种功能和服务。在开发微信小程序时,如何增强用户体验是一个非常重要的问题。下面我将通过介绍一些PHP开发技巧来帮助您提升用户体验。 异步请求在小程序中,用户…

    2025年2月21日
    100
  • 下面是使用人工智能改进业务流程的十种方法

    当人工智能正在迅速深入人们的生活时,许多人甚至没有意识到它可能会产生影响的接触点。 在日常生活中,当人们要求Alexa或Siri执行简单的任务时,或者对自动弹出的广告做出回应时,就会接触到人工智能。 但这不仅仅是公众想象力的问题。人工智能也…

    AI智能 2025年2月21日
    100
  • 小程序开发做出弹出菜单功能(附代码)

    这次给大家带来小程序开发做出弹出菜单功能(附代码),小程序开发做出弹出菜单功能(的注意事项有哪些,下面就是实战案例,一起来看一下。 需求 点击标签栏按钮,向下弹出菜单,再次点击,收回菜单 要解决的问题 标签栏三栏样式,标签栏固定不动; 点击…

    2025年2月19日
    300
  • 关于微信小程序登录鉴权的步骤

    登录功能是许多小程序必备的一个功能,通过登录系统,我们可以记录用户在我们的小程序里一些行为,在后台我们也可以模糊地确认用户。下面这篇文章主要给大家介绍了关于小程序登录鉴权的相关资料,需要的朋友可以参考下。 前言 为了方便小程序应用使用微信登…

    2025年2月19日
    300
  • 关于微信小程序的配置

    这篇文章主要介绍了微信小程序 教程之小程序配置的相关资料,这里对app.json,pages,window等做了详细介绍,对于初学开发微信小程序的朋友,掌握这些还是比较重要的,需要的朋友可以参考下 微信小程序——配置        以下就是…

    2025年2月19日
    300

发表回复

登录后才能评论