执行:

body = request.data.decode('utf-8')

wechat.parse_data(body,msg_signature=signature,timestamp=timestamp,nonce=nonce)

异常如下:

File "/usr/local/lib/python3.4/site-packages/wechat_sdk/basic.py", line 155, in parse_data

nonce=nonce,

File "/usr/local/lib/python3.4/site-packages/wechat_sdk/lib/crypto/crypto.py", line 112, in decrypt_message

return self._decrypt_message(msg, msg_signature, timestamp, nonce)

File "/usr/local/lib/python3.4/site-packages/wechat_sdk/lib/crypto/crypto.py", line 94, in _decrypt_message

encrypt = msg['Encrypt']

TypeError: byte indices must be integers, not str

因为对pthon2、python3本身不熟悉,看了代码,发现问题在:

if isinstance(msg, six.string_types):

try:

msg = xmltodict.parse(to_text(msg))['xml']

except Exception as e:

raise ParseError(e)

这里的 msg = xmltodict.parse(to_text(msg))['xml']未能执行。

在flask中,直接把request.data返回的是字节组。如果直接把字节组传递给parse函数,以现在sdk的实现上要做几次转换,最后上述错误依然发生。

因为我本身对python了解非常浅,盼解决。

代码如下

from flask import Flask,request,make_response

app = Flask(__name__)

app.debug=True

from wechat_sdk import WechatConf

weconf = WechatConf(

appid='....',

appsecret='....',

encrypt_mode='safe', # 可选项:normal/compatible/safe,分别对应于 明文/兼容/安全 模式

token='....',

encoding_aes_key='....' # 如果传入此值则必须保证同时传入 token, appid

)

from wechat_sdk import WechatBasic

wechat = WechatBasic(conf=weconf)

@app.route('/wcs',methods=['GET','POST'])

def wechat_entry():

args = request.args

signature = args.get('signature','')

timestamp = args.get('timestamp','')

nonce = args.get('nonce','')

if request.method == 'GET':

echostr = args.get('echostr','')

if wechat.check_signature(signature, timestamp, nonce):

print ("OK")

return make_response(echostr)

else:

print ("WRONG")

return make_response("")

else:

body = request.data.decode('utf-8')

#如果以下方法调用,依然出现异常

#body = request.data

wechat.parse_data(body,msg_signature=signature,timestamp=timestamp,nonce=nonce)

print (wechat.message)

return make_response("")

if __name__ == '__main__':

app.run(host="0.0.0.0", port=8080, debug=True)

python版本:Python 3.4.2 (Python 3.4.4上也有以上问题)

python包:

beautifulsoup4==4.4.1

bs4==0.0.1

Flask==0.10.1

itsdangerous==0.24

Jinja2==2.8

MarkupSafe==0.23

pycrypto==2.6.1

requests==2.6.0

six==1.10.0

wechat-sdk==0.6.3

Werkzeug==0.10.4

xmltodict==0.9.2

python wechat flask_python3+flask不能解析消息相关推荐

  1. Flask框架flash消息闪现学习与优化符合闪现之名

    Flask的flash 第一次知道Flask有flash这个功能时,听这名字就觉得高端,消息闪现-是跳刀blink闪烁躲技能的top10操作吗?可结果让我好失望,哪里有什么闪现的效果,不过是平常的消息 ...

  2. 师傅带徒弟学:Python Web之Flask框架-关东升-专题视频课程

    师傅带徒弟学:Python Web之Flask框架-317人已学习 课程介绍         Python Web是Python语言一个重要的应用方面,Python Web有很多,其中Flask和Dj ...

  3. 【Python】通过构造树结构解析查询条件

    [Python]通过构造树结构解析查询条件 背景概述 最近遇到了需要解析类似这种东西的需求 名称,摘要,主权项+=(育种 or 选育 or (培育 and (种 or 苗)) or 育苗) and ( ...

  4. 【Python开发】Flask开发实战:个人博客(三)

    Flask开发实战:个人博客(三) 在[Python开发]Flask开发实战:个人博客(一) 中,我们已经完成了 数据库设计.数据准备.模板架构.表单设计.视图函数设计.电子邮件支持 等总体设计的内容 ...

  5. Python中的flask入门

    迫不及待要开始了吗?本页提供了一个很好的 Flask 介绍,并假定你已经安装好了 Flask.如果没有,请跳转到  安装  章节. 一个最小的应用 一个最小的 Flask 应用看起来会是这样: fro ...

  6. 使用Python实现给企业微信发送消息功能

    本文将介绍如何使用python3给企业微信发送消息,文中有详细的图文解说及代码示例,对正在学习python的小伙伴很有帮助,需要的朋友可以参考下.编程资料点击领取 目录 一.概述 二.python脚本 ...

  7. 杭州python靠谱吗_杭州Python前景怎么样?来解析

    众所周知,Python是目前使用最广泛且用户增长最快的编程语言.优雅简洁的语法.强大的第三方库支持等都是Python能够风靡各行各业的原因.然而,你很多就业者还在观望Python发展方向,那么Pyth ...

  8. python中url是什么_怎么在Python中实现URL的解析

    怎么在Python中实现URL的解析 发布时间:2020-08-24 17:56:47

  9. Python 获取接口数据,解析JSON,写入文件

    Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而 ...

  10. python爬虫小说代码示例-Python从零开始写爬虫-4 解析HTML获取小说正文

    Python从零开始写爬虫-4 解析HTML获取小说正文 在上一节中, 我们已经学会如何获取小说的目录, 这一节我们将学习如何通过正则表达式(在第二节学习过)来获取小说正文. 首先, 先随便选择一个章 ...

最新文章

  1. RecyclerView的基本用法
  2. 学 Win32 汇编[12]: PTR、OFFSET、ADDR、THIS
  3. 基于通用权限管理系统实现的单点登录
  4. 1024|程序员节来了!
  5. SpringMVC-Controller怎么直接在页面上传递参数
  6. jquery判断元素是否包含某class
  7. 解析css之position
  8. 统计范围内不含‘7‘的数字个数(洛谷P1590题题解,Java语言描述)
  9. 华为鸿蒙内测报名要报吗,华为鸿蒙HarmonyOS 2.0公测版/内测版申请和招募指南,快来报名尝鲜吧!...
  10. 数据结构之线性表学习一
  11. python numpy模块玩转矩阵与科学计算
  12. 人工智能(AI)测试方法
  13. CGGame资源(转)
  14. baidu 地图 3d版 自定义地图样式
  15. .net编程的十大技巧 转载之Jeffery.Sun
  16. lol 8.21服务器维护,《LOL》8.16版本维护到几点 8月21日更新维护内容汇总
  17. web前端期末大作业 HTML+CSS+JavaScript仿唯品会购物商城网页设计实例 企业网站制作
  18. 关于中文乱码问题的一些解决方案和经验
  19. 涪陵创新计算机学校2015元旦晚会,涓涓之情助力成才丨重庆市涪陵创新计算机学校助推纳雍脱贫...
  20. 上海电子计算机学校招生要什么条件,【上海市致远中学招生简章/入学条件|上海市致远中学】- 上海房天下...

热门文章

  1. Idea中找不到Java Application 的xml配置文件问题研究
  2. js 中通过 var 在声明的变量中写方法
  3. Java StringBuffer 用法
  4. 近乎 5.3 发布,SNS 社区系统
  5. Windows server 2012远程桌面会话主机和远程桌面授权,server2012
  6. 解决Maven关于本地jar包的打包处理
  7. Activiti 统一身份管理
  8. PHP_$_SERVER中QUERY_STRING,REQUEST_URI的用法
  9. Iptables 中文 man 文档
  10. 有关likely和unlikely??