微信生态体系架构

打印 上一主题 下一主题

主题 553|帖子 553|积分 1659

微信生态体系架构


企业微信客服相关业务实现

一、 微信端怎样获取用户的 UnionID 和 OpenID

UnionID 机制阐明

unionid 来区分用户的唯一性,在相同微信开放平台帐号下的移动应用、网站应用、小程序、公众号,用户的 unionid 是唯一的。也就是说,同一用户,对同一个微信开放平台下的不同应用,unionid 是相同的。
OpenID 机制阐明

OpenId 是用来区分应用的唯一性,在相同微信开放平台账号下不用的应用,其 unionid 相同,OpenId 而不同,好比说同一个微信开放平台绑定了多个小程序应用,每个应用的 OpenId 是不相同。
UnionID 获取途径

1、微信小程序中调用接口 wx.getUserInfo,从解密数据中获取 UnionID。留意本接口需要用户授权。
2、如果开发者帐号下存在同主体的公众号,而且该用户已经关注了该公众号。开发者可以直接通过 wx.login + code2Session 获取到该用户 UnionID,无须用户再次授权。
3、 如果开发者帐号下存在同主体的公众号或移动应用,而且该用户已经授权登录过该公众号或移动应用。开发者也可以直接通过 wx.login + code2Session 获取到该用户 UnionID ,无须用户再次授权。
4、云函数、小程序端调用云函数时,可在云函数中通过 Cloud.getWXContext 获取 UnionID。
UnionID获取两种实现方式

① 通过小程序接口wx.getUserInfo,从解密数据中获取 UnionID。


相关接口:
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html
② 通过小程序wx.login获取code,请求微信code2Session接口,获取UnionID
相关接口:
  https://developers.weixin.qq.com/miniprogram/dev/dev_wxwork/dev-doc/qywx-api/login/code2session.html
二、 怎样在企业微信端获取用户的 unionid JSSDK方式

步调一:引入JS文件

  1. <script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
复制代码
步调二:通过config接口注入权限验证配置

   全部需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变革url的SPA(single-page application)的web app可在每次url变革时举行调用)。
  1. wx.config({
  2.     beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
  3.     debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  4.     appId: '', // 必填,企业微信的corpID
  5.     timestamp: , // 必填,生成签名的时间戳
  6.     nonceStr: '', // 必填,生成签名的随机串
  7.     signature: '',// 必填,签名,见 附录-JS-SDK使用权限签名算法
  8.     jsApiList: [] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
  9. });
复制代码
生成签名算法:
https://developer.work.weixin.qq.com/document/path/90506
步调三:通过ready接口处置惩罚成功验证

  1. wx.error(function(res){
  2.     // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
  3. wx.agentConfig({
  4.                 // https://developer.work.weixin.qq.com/document/path/94313
  5.                 corpid: "", // 必填,企业微信的corpid,必须与当前登录的企业一致
  6.                 agentid: "", // 必填,企业微信的应用id (e.g. 1000247)
  7.                 timestamp: "", // 必填,生成签名的时间戳
  8.                 nonceStr: "", // 必填,生成签名的随机串
  9.                 signature: "", // 必填,签名,见附录-JS-SDK使用权限签名算法
  10.                 jsApiList: [], //必填,传入需要使用的接口名称
  11.                 success: (res) => {
  12.                   wx.invoke &&
  13.                     wx.invoke("getContext", {}, (res) => {
  14.        // 返回进入H5页面的入口类型,目前有normal、contact_profile、single_chat_tools、group_chat_tools、chat_attachment
  15.                       if (res.err_msg == "getContext:ok") {
  16.                         wx.invoke("getCurExternalContact", {}, (res) => {
  17.                           if (res.err_msg == "getCurExternalContact:ok") {
  18.                             const { userId = '' } = res || {}; //返回当前外部联系人userId
  19.                           } else {
  20.                             //错误处理
  21.                             console.log("getCurExternalContact:fail");
  22.                           }
  23.                         });
  24.                       } else {
  25.                         //错误处理
  26.                         console.log("getContext:fail");
  27.                       }
  28.                     });
  29.                 },
  30.                 fail: (res) => {
  31.                   if (res.errMsg.indexOf("function not exist") > -1) {
  32.                     console.log("版本过低请升级");
  33.                   }
  34.                 },
  35.               });
  36. });
复制代码
步调四:服务端端通过上一步拿到的 userId 获取 UnionID




相关接口:
https://developer.work.weixin.qq.com/document/path/92114

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表