企业微信开发者工具文档
企业微信-错误码查找工具

写在前面的注意事项

  • config注入的是企业的身份与权限

  • agentConfig注入的是应用的身份与权限

  • jsapi_ticket是H5应用调用企业微信JS接口的临时票据,访问次数受限,需缓存

  • 获取企业的jsapi_ticket,只能用于wx.config计算签名

  • 获取应用的jsapi_ticket,只能用于wx.agentConfig计算签名

  • 签名参数是jsapi_ticket、noncestr(随机字符串)、timestamp(时间戳-秒)、url
    jsapi_ticket=JSAPITICKET&noncestr=NONCESTR&timestamp=TIMESTAMP&url=URL

  • 签名要sha1加密

  • 计算签名的noncestr、timestamp要与获取jsapi_ticket一致

  • 为了安全,jsapi_ticket建议接口返回,同时将计算jsapi_ticket的noncestr、timestamp一并返回,前端再进行加密。也可以所有参数都接口返回,包括加密后的签名。

H5使用JS-SDK调用企业微信接口

遇到的报错:
80001: 本地接入sdk成功,本地域名不受信
40093: ticket签名错误,可能需要重新配置一下。
40063: 参数为空
wx.config注入权限,wx.error方法报错: 企业的jsapi_ticket只能用于wx.config计算签名,应用的jsapi_ticket只能用于agentConfig计算签名,可能是配置反了。

  1. 引入所需的js文件

    <!-- config: 所有使用js-sdk接口都需要config配置 -->
    <script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
    <!-- agentConfig: 注入应用的权限 -->
    <script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>
  2. 通过config接口注入权限验证配置
    获取企业的ticket

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

    wx.agentConfig({corpid: '', // 必填,企业微信的corpid,必须与当前登录的企业一致agentid: '', // 必填,企业微信的应用id (e.g. 1000247)timestamp: , // 必填,生成签名的时间戳nonceStr: '', // 必填,生成签名的随机串signature: '',// 必填,签名,见附录-JS-SDK使用权限签名算法jsApiList: ['getContext', 'getCurExternalContact'], //必填,传入需要使用的接口名称success: function(res) {// 回调,这里可以调用需要的接口// 调用获取H5入口的接口getContext() // 在下面},fail: function(res) {if(res.errMsg.indexOf('function not exist') > -1){alert('版本过低请升级')}}
    });
    
  4. 通过ready验证,error处理失败验证

    wx.ready(function(){// config信息验证后会执行ready方法,// 将页面加载后直接调用的方法放在ready里// 需要用户触发时才调用的接口,则可以直接调用。// 如果需要配置agentConfig,在这里配置步骤三
    });
    wx.error(function(res) {// 返回错误信息
    })
    
  5. 签名sha1加密
    通过接口返回的timestamp、nonceStr和当前的url处理加密
    url: window.location.href.split('#')[0]

    getJsapiTicket(data) {let params = {jsapi_ticket: data.jsapiTicket,noncestr: data.nonceStr,timestamp: data.timestamp,url: window.location.href.split('#')[0]}let signstr = ''for (let item in params) {signstr += item + "=" + params[item] + "&"}signstr = signstr.substring(0, signstr.length - 1)return sha1(signstr)
    },
    
  6. 调用获取H5环境入口的接口

    function getContext() {wx.invoke('getContext', {}, function(res){if(res.err_msg == "getContext:ok"){// 正常处理业务逻辑// 获取当前对话框useridgetUserid()// entry  = res.entry ; // shareTicket = res.shareTicket; //可用于调用getShareInfo接口}else {//错误处理}});
    }
    
  7. 当前外部联系人userId

    function getUserid() {wx.invoke('getCurExternalContact', {}, function(res){if(res.err_msg == "getCurExternalContact:ok"){userId  = res.userId ; //返回当前外部联系人userId}else {//错误处理}});
    }
    

企业微信后台管理需要配置

  • 配置可受信的域名,并将生成的文件(.txt)放到域名服务器根目录下
  • 管理后台需要点击,授信(我没账号不太确定)
  • 将H5页面路径配置到入口处

Mac企业微信打开开发者工具

  • command + shift + control + D
  • 帮助 -》开发调试选项 -》浏览器、webView相关 -》 开启webView元素审查

H5使用JS-SDK调用企业微信接口、调试相关推荐

  1. python调用企业微信接口

    python调用企业微信接口实现关联添加用户 # --*-- coding: utf-8 --*--import json import urllib2coreID = secret = apisec ...

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

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

  3. java调用企业微信接口发送文件功能

    java调用企业微信接口发送文件功能 代码 结合几位大佬的代码后实现此功能:感谢大佬让我完成此功能的实现,如有侵权,立刻删除. 借鉴文章地址: java调用企业微信接口发送消息https://blog ...

  4. java调用企业微信接口---获取考勤数据

    Static和new的区别? static : 不需要创建实例可直接使用, 会直到程序关闭才会释放资源,类的一个成员被static修饰后,该成员就属于类的成员了,被所有对象共享. new 对象: 每次 ...

  5. python企业微信群聊_python调用企业微信接口发送群聊消息代码参考

    # Author: sea 2019 import requests import json import time class WebchatUtil: corpid = '必须填写你自己申请的' ...

  6. Thinkphp6调用企业微信官方php版本接口方法

    因为业务需要对接企业微信,准备使用Thinkphp6开发,直接使用企业微信官方接口.原计划在企业微信接口类文件中全部定义命名空间,但是并没有成功(因为文件在嵌套调用,可能是没有全部命名的原因). 1. ...

  7. 企业微信接口开启收费模式,意在第三方生态健康发展

    企业微信官方在5月9日一篇"面向服务商进行收费模式调整的说明",在服务商中一石激起千层浪,引发不少的讨论,此次企业微信官方意在何处,对于服务商与企业用户又会出现什么影响. 首先我们 ...

  8. vue调用企业微信扫码接口

    准备工作 -企业微信授权 见企业微信官方网站:https://developer.work.weixin.qq.com/document/path/90513 前端 test01.vue 1. 引入j ...

  9. 企业微信api接口调用-企业微信好友收发消息

    企业微信api消息接口调用-企业微信好友收发消息 /** * 给企业微信好友发消息 * @author wechat:happybabby110 * @blog http://www.wlkankan ...

最新文章

  1. 文字加减前后缀lisp_华为笔试题---仿LISP算法
  2. iconmobileu驱动设置教_不求人,超简单打印机共享设置!
  3. Incorrect line ending: found carriage return (\r) without corresponding newline (\n)错误的解决方案...
  4. 一文看懂卷积神经网络CNN的核心
  5. JavaScript试题练习题
  6. iOS Android 上传代码库+持续集成+单元测试
  7. iOS:对GCD中 同步、异步、并行、串行的见解
  8. Oracle grant connect, resource to user语句中的权限
  9. excel在线_如何设计有趣又实用的在线课程
  10. opencv cvtColor 出错
  11. 福特汉姆大学计算机科学专业,福特汉姆大学计算机研究生
  12. 投影坐标系、大地坐标系(地理坐标系)
  13. CSS3知识点复习与总结
  14. 清茶一杯-手机、电子阅读器和生活
  15. Android 布局旋转 横屏竖屏
  16. SQL PLUS命令使用大全(转,特有用)
  17. 斯坦福大学的低码率音频编码博士论文
  18. (Java实习生)每日10道面试题打卡——Java基础知识篇
  19. SharePoint使用资源管理器打开,提示:在文件资源管理器中打开此库时遇到问题
  20. 一、Unity环境安装

热门文章

  1. bilibili自动答题
  2. 非常好听的磁盘取名,创意和有个性的硬盘名字使人充满朝气活力
  3. matlab avi视频文件与mat文件 互相转换
  4. Centos7搭建多个Redis实例
  5. tp view html 引用css,TP5.1:将外部资源引入到框架中(css/js/font文件)
  6. 一张图看懂黄奇帆对房地产的结构化分析
  7. 创新奇智通过上市聆讯:成立不久就开始转型,能以AI自称?
  8. FFmpeg源码分析:视频滤镜介绍(下)
  9. 获得人生第一桶金对遥感的一些思考
  10. 广电“科技少年”科普大赛在广州紫泥堂基地圆满闭幕