vue 使用企业微信扫一扫

vue 使用企业微信扫一扫

第一次调用企业微信功能,有点坑,折腾了好几天,终于好了,记录一下操作过程。

了解功能所需权限(config和agentConfig)

首先要确定使用的功能需要获取的权限:一般使用config,特殊使用agentConfig。

agentConfig的作用

config注入的是企业的身份与权限,而agentConfig注入的是应用的身份与权限。尤其是当调用者为第三方服务商时,通过config无法准确区分出调用者是哪个第三方应用,而在部分场景下,又必须严谨区分出第三方应用的身份,此时即需要通过agentConfig来注入应用的身份信息。

注意!!!:主要看这个功能下面有没有文字说明一定要获取agentConfig权限,没有则默认是config权限即可。

ios企业微信扫一扫url 企业微信的扫一扫在哪_数据


ios企业微信扫一扫url 企业微信的扫一扫在哪_vue.js_02

congfig和agentConfig相同之处

要使用权限需要有几个参数

ios企业微信扫一扫url 企业微信的扫一扫在哪_前端_03

ios企业微信扫一扫url 企业微信的扫一扫在哪_微信_04


config: appId企业微信系统直接获取

agentConfig: corpid,agentid企业微信系统直接获取 (注意参数大小写)其中:jsApiList,timestamp,nonceStr在config或者agentConfig都是一样的

参数jsApiList: [] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来,使用什么接口就写什么

参数 timestamp,nonceStr,前端后端都可处理

ios企业微信扫一扫url 企业微信的扫一扫在哪_ios企业微信扫一扫url_05


ios企业微信扫一扫url 企业微信的扫一扫在哪_微信_06

重中之重signature(config和agentConfig基本一致,jsapi_ticket获取时有点不同)

signature这个参数获取坑很多:
需要四个数据拼接加密:jsapi_ticket=JSAPITICKET&noncestr=NONCESTR&timestamp=TIMESTAMP&url=URL

1、其中noncestr,timestamp就是上面获取的数据直接使用,注意!!!一定要和上面的数据一模一样才行,反正就获取之后在两个地方都用就行。

2、其中url一定要是当前页面的路由**,hash模式下就是#前面的部分**,如果是history模式下写了重定向,问题就来了,本来写的就是history模式重定向,结果苹果手机在微信里面打开会有问题,它会显示真实路径和当前路径不是同一个。但是如果单纯是使用企业微信的话,安卓和苹果都是行的。!!!所有建议使用hash模式。

3、到了jsapi_ticket这个参数是需要调接口获取的,一般都是后端获取,前端直接调后端接口就好,主要是因为有次数限制。

ios企业微信扫一扫url 企业微信的扫一扫在哪_ios企业微信扫一扫url_07


这个参数获取主要涉及两个接口

(1)https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET

使用方式:https://developer.work.weixin.qq.com/document/path/91039

其中注意corpid是企业ID,corpsecret是应用的凭证密钥

(2)config:https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=ACCESS_TOKEN

agentConfig:https://qyapi.weixin.qq.com/cgi-bin/ticket/get?access_token=ACCESS_TOKEN&type=agent_config
agentConfig的情况下会多一个type参数

以下是signature在前端的处理方式:

ios企业微信扫一扫url 企业微信的扫一扫在哪_数据_08

最后一个很重要的点: 扫码功能的回调要延时才能获取回调数据,扫码功能只需使用config

ios企业微信扫一扫url 企业微信的扫一扫在哪_ios企业微信扫一扫url_09

不要忘了引用

ios企业微信扫一扫url 企业微信的扫一扫在哪_ios企业微信扫一扫url_10

以上就是全部内容,希望可以帮到有需要的人,企业微信开发中心https://developer.work.weixin.qq.com/document/path/90514