收藏
回答

关于用button open-type="getUserInfo"返回数据编码的问题?

在小程序中通过button open-type="getUserInfo"拿到的用户数据都正常。可是将“encryptedData”字段和“vi”字段传到后端解密就会报错:'utf-8' codec can't decode byte 0xcf in position 1: invalid continuation byte 。请问 encryptedData 字段用的什么编码?是utf-8吗?为什么会报错呢?

后端解密用的是官方链接中提供的解密示例代码中的python版。pyhon3默认utf-8编码。(如下图)。



回答关注问题邀请回答
收藏

2 个回答

  • 如若时光倒流s
    如若时光倒流s
    2019-11-14

    你好 请问现在 解决了这个问题了吗, 我在解密中也遇到这个问题

    2019-11-14
    有用
    回复 9
    • 小洋葱
      小洋葱
      2019-11-14
      可能是没注意获取code和encryptedData的先后顺序。要先获取code,再用open-type="getUserInfo"拿encryptedData数据。


      如果反过来的话用code拿到的session_key就已经是新的了,被wx.login刷新了。所以用新的session_key解密旧的encryptedData。就会报错。


      应该是这样。我这边量比较少,还在观察。改完到现在只出现过一次错。您试下,如果没问题了,麻烦上来回复下。谢谢
      2019-11-14
      回复
    • 如若时光倒流s
      如若时光倒流s
      2019-11-15回复小洋葱
      你好, 按照你给的思路之后, 确实解决了这个问题。但是好像没有返回这个状态码,不知道是我本地的原因还是本来就不会返回
      2019-11-15
      回复
    • 小洋葱
      小洋葱
      2019-11-15回复如若时光倒流s
      正常就不会返回,官方文档很多地方说返回错误码都没返回。失败就会返回,做个判断就好了。
      2019-11-15
      回复
    • 如若时光倒流s
      如若时光倒流s
      2019-11-15回复小洋葱
      好的 谢谢您了。帮我解决了一个大麻烦
      2019-11-15
      回复
    • 小洋葱
      小洋葱
      2019-11-15
      客气,互相帮助
      2019-11-15
      回复
    查看更多(4)
  • 王浩Hanks🇨🇳
    王浩Hanks🇨🇳
    2019-10-14

    谢邀,没遇见过你这问题,建议试试其他编码格式

    2019-10-14
    有用
    回复 4
    • 小洋葱
      小洋葱
      2019-10-14
      试过gbk和utf-16发生的概率要小了一些,但都不能解决根本问题。还有什么编码的可能吗?
      2019-10-14
      回复
    • 王浩Hanks🇨🇳
      王浩Hanks🇨🇳
      2019-10-14回复小洋葱
      对了,你这是python,我是java语言,所以你代码,我看不太明白,你看看你代码是否把其他字符串拼接到解码的字符串里边了呢?
      2019-10-14
      回复
    • 小洋葱
      小洋葱
      2019-10-14回复王浩Hanks🇨🇳
      没有,我输出来看过。好吧,谢谢您。还有什么可能的编码推荐下嘛?
      2019-10-14
      回复
    • 小洋葱
      小洋葱
      2019-11-21
      很偶尔会遇到。也没找到问题,现在出问题都把变量打出来,还没找到规律
      2019-11-21
      回复
登录 后发表内容
问题标签