微信公众号获取token失败是什么意思,微信公众号token已过期

  微信公众号获取token失败是什么意思,微信公众号token已过期

  我用的是python3,官网给出的例子是python2。问题是python版本不一样。

  以下是截取官方示例的部分代码。

  list=[令牌、时间戳、随机数]

  list.sort()

  sha1=hashlib.sha1()

  地图(sha1.update,列表)

  hashcode=sha1.hexdigest()

  我直接告诉你,这一段错了。我也是对比了微信验证时发来的信息后得出的结论。以下是网上找到的加密原理。你可以选择性地看看。

  当我们点击提交时,微信服务器将向我们填写的URL发起GET请求,参数如下:时间戳、nonce、echostr、签名。其中,timestamp是时间戳,nonce是随机数,echostr也是随机数。这些都很常见,关键点在于签名。它是通过将nonce、timestamp和token(也就是我们在网页中配置的TOKNE)按字典顺序排序,然后使用智能咖啡豆加密算法得到排序后的字符串数组而生成的。在收到这个GET请求后,我们的服务器提取相应的参数并生成前面提到的hashcode。如果这个值与参数中的签名相同,那么我们将echostr返回给微信服务器,否则返回空值。微信服务器收到这个echostr后,验证这个值是否与它发送的echostr值相同。如果相同,说明这个值确实是我们服务器返回的,从而完成验证,以后所有信息都可以发送到这个服务器地址。这涉及到一些关于安全认证的知识,有兴趣的朋友可以咨询更详细的信息。一般来说,就是让双方能够确认对方的真实身份。

  令牌验证失败的原因是map函数。我觉得python的2和3是不一样的。map的第一个参数是函数,第二个参数是列表。函数是将第一个函数依次应用于列表中的每个元素。

  我在这里了解了一些关于hashlib的事情。更新是为了防止数据过大,可以使用Update依次添加要加密的数据。

  所以综上所述,微信加密就是现在对列表进行排序,然后通过更新将排序后的列表的每个元素合并到总数据中进行加密。贴一段代码帮助你理解

  importhashlib

  sha1=hashlib.sha1()

  sha1.update(a )。编码( utf-8 ))

  sha1.update(b 。编码( utf-8 ))

  sha1.update(c )。编码( utf-8 ))

  相当于:

  sha1.update(abc )。编码( utf-8 ))

  Hashcode=sha1.hexdigest() #获取加密字符串

  因此,在python3下,加密算法应该更改如下

  list=[令牌、时间戳、随机数]

  list.sort()

  sha1=hashlib.sha1()

  sha1.update(列表[0])。编码( utf-8 ))

  sha1.update(列表[1])。编码( utf-8 ))

  sha1.update(列表[2])。编码( utf-8 ))

  hashcode=sha1.hexdigest()

  经过一番折腾,问题终于解决了。我忍不住吐槽。python3这么久了,为什么开发文档还没有更新?而且还有很多程序还在python2下。唉,对python的又一大批评。

  别说,有了这些东西,我都快饿死了。我去吃饭了。

  参考文章:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 微信读书做笔记主页有显示吗,微信读书做笔记赚钱
  • 微信如何建群详细步骤,怎么建群微信怎么建群呢
  • 微信拍一拍怎么拍肩膀好看,微信如何拍一拍肩膀
  • 微信如何转发给qq,怎么从QQ转发到微信
  • 微信表情含义图解大全2022吃西瓜,微信表情含义图解大全2020高清
  • 微信网页版文件传输助手的文件在哪里,微信文件传输助手怎么批量保存
  • ,,详解微信小程序开发之formId使用(模板消息)
  • ,,最详细的ASP.NET微信JS-SDK支付代码
  • ,,微信小程序视图容器(swiper)组件创建轮播图
  • ,,微信小程序自定义toast弹窗效果的实现代码
  • ,,微信小程序的WXSS和全局、页面配置详细讲解
  • ,,微信小程序左右滚动公告栏效果代码实例
  • ,,微信小程序实现简易table表格
  • ,,微信小程序实现二维码签到考勤系统
  • ,,微信小程序中wxs文件的一些妙用分享
  • 留言与评论(共有 条评论)
       
    验证码: