1.在企业微信的工作台新建应用。打开应用管理。

点击修改,设置打开该应用跳转的网页(该网页所属项目需要部署到服务器,url地址应为测试服或正式服地址)

2.点击如图红框位置,启用网页授权及JS-SDK(图示是已经启用过的)

3.可信域名为当前应用跳转页面的url地址解析出来的域名(找后端的同学解析一下)。然后将该域名发给管理员申请备案验证域名归属(公司的企业微信找领导。领导有管理员权限),如图3-2,官方文档有说明。之后点击申请校验域名

图 3-1

图 3-2

按照提示操作,先下载密钥文件,将文件放在代码入口文件的平级(后端同学将代码部署到服务器可能跟前端入口文件不太一样,可以将文件发给后端同学,让他放在入口文件平级的地方),放好之后测试一下是否可以访问,访问域名地址+文件名(图 3-4),可以访问则将最后一条勾选,点击确认。

图 3-3

图 3-4

显示已验证,则启用成功:

4.按照JS-SDK官方文档操作(如果是低版本企业微信则将js文件版本号改为1.0.0)

官方文档:使用说明 - 接口文档 - 企业微信开发者中心 (qq.com)https://developer.work.weixin.qq.com/document/path/90514

4.1 引入JS文件:

在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.2.0.js

<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

4.2 通过config接口注入权限验证配置

wx.config({beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: '', // 必填,企业微信的corpIDtimestamp: , // 必填,生成签名的时间戳nonceStr: '', // 必填,生成签名的随机串signature: '',// 必填,签名,见 附录-JS-SDK使用权限签名算法jsApiList: [] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
});

这几个必填的参数需要从后端的接口获取,appId从管理员获取(是唯一的)

生成签名的算法:(可以在后端处理,也可以让后端返回jsapi_ticket,timestamp和nonceStr来自己根据算法生成签名)建议后端处理好直接生成签名和这些参数一起返回到前端。

JS-SDK使用权限签名算法 - 接口文档 - 企业微信开发者中心 (qq.com)https://developer.work.weixin.qq.com/document/path/90506 4.3 通过ready接口处理成功验证

wx.ready(function(){// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

4.4 通过error接口处理失败验证

wx.error(function(res){// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});

4.5 调用成功也会有弹窗的问题

官方文档最下边有这样的提示:

以上几个函数都带有一个参数,类型为对象,其中除了每个接口本身返回的数据之外,还有一个通用属性err_msg,其值格式如下:

  1. 调用成功时:"xxx:ok" ,其中xxx为调用的接口名
  2. 用户取消时:"xxx:cancel",其中xxx为调用的接口名
  3. 调用失败时:其值为具体错误信息

也就是说,调用成功与失败都会返回一个err_msg的属性,在手机端会作为弹窗弹出,因此在确保调用成功之后可以将config中的debug设为false。

5.调用企业微信的扫一扫接口,按照官方文档操作:

企业微信扫一扫 - 接口文档 - 企业微信开发者中心 (qq.com)https://developer.work.weixin.qq.com/document/path/90492直接使用接口代码即可:

wx.scanQRCode({desc: 'scanQRCode desc',needResult: 0, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有success: function(res) {// 回调var result = res.resultStr;//当needResult为1时返回处理结果},error: function(res) {if (res.errMsg.indexOf('function_not_exist') > 0) {alert('版本过低请升级')}}
});

needResult为0时,扫描结果由企业微信处理,因此success函数内无需写操作步骤;若需要自己处理,则将needResult设为1,在success内写具体的操作步骤(一般为调用接口,后端接口内做逻辑处理)

6.整体代码:(我直接使用wx报错,网上搜索导入包依然报错,因此我使用的window.wx)

6.1 <template>模板内的内容:

放了一个按钮,点击按钮触发scanCode方法,在方法内部进行调用操作

<template><el-button type="danger" @click="scanCode">el-button</el-button></div>
</template>

6.2 js部分:(注意看注释)

async function scanCode(){try{//动态获取当前页面的url地址const url= window.location.href.split('#')[0]//将url作为参数传入接口,将接口数据解构出来用data对象接受const {data} = await getParams(url)//可以将接口中数据打印出来看console.log("data",data)window.wx.config({beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题debug: false, // 在测试没问题之后,关闭debug模式,防止弹窗appId: data.data.appId, // 必填,企业微信的corpIDtimestamp: data.data.timestamp, // 必填,生成签名的时间戳nonceStr: data.data.nonceStr, // 必填,生成签名的随机串signature: data.data.signature,// 必填,签名,见 附录-JS-SDK使用权限签名算法jsApiList: ["scanQRCode"] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来})}catch(error){console.log(error)}window.wx.ready(function () {// 调用企业微信扫一扫接口window.wx.scanQRCode({desc: "scanQRCode desc",needResult: 0, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有success: res => {// 回调// 当needResult 为 1 时,扫码返回的结果//我的vscode开启了eslint校验,定义变量而不使用会报错,在报错代码行后面跟上如下注释即可解决报错var result = res.resultStr// eslint-disable-line no-unused-vars},fail: function (err) {console.log(err)}})})window.wx.error(function(res){//config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。var result = res.resultStr// eslint-disable-line no-unused-varsconsole.log("ready失败!")})}

6.3 index.js中的内容(定义接口方法):

// 导入post请求
import { get } from "@/utiles/request.js"// 获取企业微信扫一扫参数的接口
export const getParams = (url) => {return get(`http://aaa.bbb.ccc.ddd/api/getxxx?url=${url}`)
}

企业微信调用扫一扫接口相关推荐

  1. 企业微信调用发送应用消息接口返回错误代码301002

    接口返回信息: ["errcode"]=> int(301002) ["errmsg"]=> string(109) "not allow ...

  2. 企业微信自建应用审批接口开发

    再说一次,企业微信开发文档很坑,特别坑,坑成鬼了. 有时候浪费很长时间改bug,查来查去,都没有发现到底哪里错了,查资料,搜资料,询问大神,都没有发现bug.改到最后都抑郁了,才发现用浏览器访问根本就 ...

  3. 企业微信外部群机器人api接口sdk登陆

    用代码实现hook拦截获取到微信二维码,用到的工具有 ce od. 先看下图片在内存里面的表现形式,微信登陆的二维码是一个png的格式,看下png在内存的表现形式,看下图,就是png在内存里面的格式, ...

  4. 企业微信预览图片的接口使用wx.previewImage

    企业微信wx.previewImage接口 功能:页面上点击图片,然后图片放大进行预览(此处是身份证照片) <div class="weui-cell weui-cell_active ...

  5. 企业微信开发之OA数据接口获取数据

    今天踩了个坑,从企业微信的OA数据接口获取打卡数据的时候用了form-data的方式,结果一直报301023错误码,还找不到原因,最后终于解决了这个问题 var options = { headers ...

  6. 【corpwechat-bot】一个好用的企业微信消息推送python接口库

    文章目录 前言 Requirements Result Features Usage 前言 本文同步发表在blog.gentlecp.com corpwechat-bot是一个python封装的企业机 ...

  7. 企业微信oauth认证_OAuth验证接口

    OAuth2.0验证接口说明 企业应用中的URL链接(包括自定义菜单或者消息中的链接),可以通过OAuth2.0验证接口来获取成员的身份信息. 通过此接口获取成员身份会有一定的时间开销.对于频繁获取成 ...

  8. django对比数据并调用企业微信接口群发

    在日常工作中,需要对数据进行对比.一般来说,都是保存在数据库中,所以需要对sql语句非常熟练,常常一条命令都是几十行,表和表之间的关系是非常明显的.在得到异常数据后,需要告知特定的人群.在这里,我决定 ...

  9. 如何用企业微信、飞书等扫码登录 Office 365

    鉴于企业微信.飞书.钉钉等移动社交应用的广泛使用,国内很多企业直接利用飞书.企业微信等平台建立了员工身份系统(账号源).在办公时,员工习惯扫码登录业务系统.但对于很多业务应用如微软系 Office 3 ...

  10. 企业微信H5_网页jssdk调用 agentconfig选人选照片等案例演示

    文章目录 一.验证域名归属校验 1. 阅读文档 2. 配置公网域名 3. 登录企业微信管控台 4. 选择自建应用 5. 网页授权及JS-SDK 6. 填写公网域名 7.下载校验文件 8. 校验文件移动 ...

最新文章

  1. cvs linux权限,Linux下CVS+ACL的权限控制是什么? 爱问知识人
  2. One order search dynamic SQL build logic
  3. 第7步 mybatis-generator dao层生成器
  4. mysql hibernate 分页查询_Hibernate + MySQL 分页类的实现
  5. 安卓miracast花屏_创维酷开电视多屏互动Miracast玩法详解
  6. 关于java加壳和代码混淆
  7. pkill mysql_MYSQL之mysqlcheck命令
  8. 百度的实时搜索架构分析
  9. python实现动态壁纸_如何实现一个 windows 桌面动态壁纸
  10. LTE 调制与解调——QPSK,16QAM,64QAM误码率比较
  11. 斐波那契数列C语言设计步骤,斐波那契数列c语言函数
  12. 网站漏洞修补之苹果cms建站系统
  13. 一文读懂authorized_keys和known_hosts
  14. 博弈论大作战之 PART1
  15. 【转】25个开发性能优化
  16. element tree不刷新视图_00后都开始找工作了,这些都不懂还聊个啥?
  17. python如何在图片上写字
  18. 【Vic的小课堂】Unity游戏功能(2)—第一人称镜头
  19. win10开始菜单打不开_windows10系统电脑开始菜单无法打开的解决教程
  20. JS中或者(或 or ||)与并且(与 and )

热门文章

  1. html5方框的箭头怎么弄,纯CSS-带箭头的DIV方框
  2. css轮播箭头怎么隐藏,css实现带箭头和圆点的轮播
  3. 申请开通支付宝当面付、电脑网站、手机网站、APP、刷脸支付
  4. 鼠标手势对应操作及常用快捷键-------360浏览器所有!!!!阿冬专栏
  5. 时间序列分析之相关性
  6. JAVA中操作数据库方式与设计模式的应用 --青山不改绿水长流-EKing
  7. 读博士得抑郁症自杀的概率有多大?
  8. VB 语言介绍以及VBA、宏(Macro)的关系
  9. 如何将flac文件转换为mp3文件?
  10. JavaWeb 如何从FTP服务器下载文件 页面如何获取到FTP服务器上的图片进行显示