收藏
回答

企业微信 wx.getwerundata 数据解密返回乱码

问题类型 API/组件名称 AppID 微信版本 基础库版本
Bug wx.getwerundata wxbcc75b33c274c2b2 7.0.4 1.2

- 当前 Bug 的表现(可附上截图)

1. 调用第三方服务商 登录接口

  1. https://qyapi.weixin.qq.com/cgi-bin/service/miniprogram/jscode2session?suite_access_token=SUITE_ACCESS_TOKEN&js_code=CODE&grant_type=authorization_code

  2. 返回  

  3. {"corpid":"xx","userid":"xx","session_key":"VWVHgIpiHewNxDYQuStaew==","errcode":0,"errmsg":"ok"}


2.调用微信运动服务API

wx.getWeRunData

返回

{errMsg: "getWeRunData:ok", encryptedData: "XCDaUmN15a6+uiam/sHqPiqizpbdGcyWjlgRxo888NoUCviPCE…L47QAqhmtUUKlLeVOFn4hjjg71Aq3nimQkEod8MttOirEN8HE", iv: "Zi6zI9lcG5GAhrSqz4w0BQ=="}


3.调用解密


var pc = new WXBizDataCrypt(appid, sessionKey)

  console.log(pc)

  var data = pc.decryptData(encryptedData, iv)

返回

"���

������=�϶y܁H�}E]��씋�2�ds/m���5�ښ��

%&��)_������2!��|=[7�8&sC1<����c�/�eN^^��

Ӫ &,`��z

�Kwk�|���q�+�_r9\ֽ�\?�(K������"w��AWD�{[6Az��׌)Ћ�����j�����l�b�ߠ��Ɓ9^M�f]�R[�1wR��.M(e�<��xL�(�0mـ3�?��&_O� 

S��n�q쫺g��zʱ�qo���U�c�����k%�Y�-Ԧ�>z���V��

�����k�

�B[���"Ĉ�kQ�ӹ�����&�����fR�U���~~��"&�}"�w;{�@

�֒VG��ģ��������!���,Q�Y

��ED

�LR^m�q֚����i�._BR�/���~+�}e�$� �۵%F�m'(�Bᡖ�;��/P�

����[��,�(�<8�5���m6�ۤ�#�3lJ����<�oi��Ǎ��d"�� �$ƪIѿ�e���Ȗ��g/4��G��Z*�"�'O�Ak�|K���y��6��!��@����(lȾ��خ����}�֊]`ׂ�~n�V

�+��[:�#��W��������J�P3�F0�f��N���:jі��m�������6�)��=$�9*�o�\��nM

��BO�L��?X{�C���~�ϩ�H?l[V�����+�9j����w�x'!r4:+hb����7�hnp

2���ڸ��6x-4��^C�V�!/�p�Q)#xkb����0v���V���y�R��1?�Zc���[��u����HAO�'ӷ®I%0��%�}>O��;�+���Ej2�h�w���s�`m�I���H�8�t���Q�P��3�4�Lƒ�8vo.�� 4:ؒ�6�el��F�� �?h�p�z�Xɉ'w���~c

ʹ����}��R<`�0t�B�Ѯ���

�E����������'jYEG�B�G ��r����Yfq�sCnY����

3q��Y�^{ɍ��a��@M����wݨz�z

g��b�9Ο{���}T!/T�J�J}t�*ٰ�)�GT���˜.��N��PIa��U�.�J��c���|�o�o�

c���$���V�A�o�S��� "


解密方法如下:

var crypto = require('crypto');

var Buffer = require('safe-buffer').Buffer;


function WXBizDataCrypt (appId, sessionKey) {

  this.appId = appId

  this.sessionKey = sessionKey

}


WXBizDataCrypt.prototype.decryptData = function (encryptedData, iv) {

  debugger

  // base64 decode

  var sessionKey =   Buffer.from(this.sessionKey, 'base64')

  encryptedData =   Buffer.from(encryptedData, 'base64')

  iv =   Buffer.from(iv, 'base64')


  try {

    // 解密

    var decipher = crypto.createDecipheriv('aes-128-cbc', sessionKey, iv)

    // 设置自动 padding 为 true,删除填充补位

    decipher.setAutoPadding(true)

    var decoded = decipher.update(encryptedData, 'binary', 'utf8')

    decoded += decipher.final('utf8')


    /*decoded = JSON.parse(decoded)*/

  } catch (err) {

    /*throw new Error('Illegal Buffer')*/

  }


  /*if (decoded.watermark.appid !== this.appId) {

    throw new Error('Illegal Buffer')

  }*/


  return decoded

}


module.exports = WXBizDataCrypt


使用微信小程序登录调用正常




文档问题:企业微信APi文档里面说支持,小程序里面说不支持





文档也有问题 企业微信现在是否支持微信运动 ?

最后一次编辑于  2019-06-18
回答关注问题邀请回答
收藏

2 个回答

  • 泽鑫✨
    泽鑫✨
    2019-06-14

    要用wx.login的流程

    2019-06-14
    有用 1
    回复 4
    • yuanchuming
      yuanchuming
      2019-06-14

      我是在小程序 企业微信模式下调用 出现了问题 。 代码如下

      返回:


      小程序模式下返回是正常的

      2019-06-14
      回复
    • 泽鑫✨
      泽鑫✨
      2019-06-14回复yuanchuming

      wx.getwerundata是要用微信授权,故采用wx.login流程,与微信侧加解密一致

      2019-06-14
      1
      回复
    • yuanchuming
      yuanchuming
      2019-06-14回复泽鑫✨

      在企业微信中 wx.qy.login 等同于 wx.login .

      已经授权了  。在微信小程序中解密是正常的  下面粘贴的是微信小程序解密过程 。




      企业微信小程序 :



      2019-06-14
      回复
    • yuanchuming
      yuanchuming
      2019-06-17

      请问有确定问题吗 ?

      2019-06-17
      回复
  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2019-06-13

    你好,能否具体补充问题流程?是企业微信小程序的问题?

    2019-06-13
    有用
    回复 4
    • yuanchuming
      yuanchuming
      2019-06-13

      使用企业微信开发第三方应用小程序

      wx.getwerundata 解密报错 。

      刚才在小程序里面也试了(相同的解密方法步骤) 解密成功。

      所有是 企业微信小程序的问题

      2019-06-13
      回复
    • yuanchuming
      yuanchuming
      2019-06-13

      请问确定问题了没有?企业微信第三方应用开发是存在这个问题吗 ?

      2019-06-13
      回复
    • yuanchuming
      yuanchuming
      2019-06-18

      使用

      wx.getwerundata是要用微信授权,故采用wx.login流程,与微信侧加解密一致

      已经解决

      2019-06-18
      回复
    • TigerZ
      TigerZ
      2019-07-18回复yuanchuming
      同样遇到这个问题,在么解决的
      2019-07-18
      回复
登录 后发表内容