python wechat flask_python3+flask不能解析消息
执行:
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不能解析消息相关推荐
- Flask框架flash消息闪现学习与优化符合闪现之名
Flask的flash 第一次知道Flask有flash这个功能时,听这名字就觉得高端,消息闪现-是跳刀blink闪烁躲技能的top10操作吗?可结果让我好失望,哪里有什么闪现的效果,不过是平常的消息 ...
- 师傅带徒弟学:Python Web之Flask框架-关东升-专题视频课程
师傅带徒弟学:Python Web之Flask框架-317人已学习 课程介绍 Python Web是Python语言一个重要的应用方面,Python Web有很多,其中Flask和Dj ...
- 【Python】通过构造树结构解析查询条件
[Python]通过构造树结构解析查询条件 背景概述 最近遇到了需要解析类似这种东西的需求 名称,摘要,主权项+=(育种 or 选育 or (培育 and (种 or 苗)) or 育苗) and ( ...
- 【Python开发】Flask开发实战:个人博客(三)
Flask开发实战:个人博客(三) 在[Python开发]Flask开发实战:个人博客(一) 中,我们已经完成了 数据库设计.数据准备.模板架构.表单设计.视图函数设计.电子邮件支持 等总体设计的内容 ...
- Python中的flask入门
迫不及待要开始了吗?本页提供了一个很好的 Flask 介绍,并假定你已经安装好了 Flask.如果没有,请跳转到 安装 章节. 一个最小的应用 一个最小的 Flask 应用看起来会是这样: fro ...
- 使用Python实现给企业微信发送消息功能
本文将介绍如何使用python3给企业微信发送消息,文中有详细的图文解说及代码示例,对正在学习python的小伙伴很有帮助,需要的朋友可以参考下.编程资料点击领取 目录 一.概述 二.python脚本 ...
- 杭州python靠谱吗_杭州Python前景怎么样?来解析
众所周知,Python是目前使用最广泛且用户增长最快的编程语言.优雅简洁的语法.强大的第三方库支持等都是Python能够风靡各行各业的原因.然而,你很多就业者还在观望Python发展方向,那么Pyth ...
- python中url是什么_怎么在Python中实现URL的解析
怎么在Python中实现URL的解析 发布时间:2020-08-24 17:56:47
- Python 获取接口数据,解析JSON,写入文件
Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而 ...
- python爬虫小说代码示例-Python从零开始写爬虫-4 解析HTML获取小说正文
Python从零开始写爬虫-4 解析HTML获取小说正文 在上一节中, 我们已经学会如何获取小说的目录, 这一节我们将学习如何通过正则表达式(在第二节学习过)来获取小说正文. 首先, 先随便选择一个章 ...
最新文章
- RecyclerView的基本用法
- 学 Win32 汇编[12]: PTR、OFFSET、ADDR、THIS
- 基于通用权限管理系统实现的单点登录
- 1024|程序员节来了!
- SpringMVC-Controller怎么直接在页面上传递参数
- jquery判断元素是否包含某class
- 解析css之position
- 统计范围内不含‘7‘的数字个数(洛谷P1590题题解,Java语言描述)
- 华为鸿蒙内测报名要报吗,华为鸿蒙HarmonyOS 2.0公测版/内测版申请和招募指南,快来报名尝鲜吧!...
- 数据结构之线性表学习一
- python numpy模块玩转矩阵与科学计算
- 人工智能(AI)测试方法
- CGGame资源(转)
- baidu 地图 3d版 自定义地图样式
- .net编程的十大技巧 转载之Jeffery.Sun
- lol 8.21服务器维护,《LOL》8.16版本维护到几点 8月21日更新维护内容汇总
- web前端期末大作业 HTML+CSS+JavaScript仿唯品会购物商城网页设计实例 企业网站制作
- 关于中文乱码问题的一些解决方案和经验
- 涪陵创新计算机学校2015元旦晚会,涓涓之情助力成才丨重庆市涪陵创新计算机学校助推纳雍脱贫...
- 上海电子计算机学校招生要什么条件,【上海市致远中学招生简章/入学条件|上海市致远中学】- 上海房天下...
热门文章
- Idea中找不到Java Application 的xml配置文件问题研究
- js 中通过 var 在声明的变量中写方法
- Java StringBuffer 用法
- 近乎 5.3 发布,SNS 社区系统
- Windows server 2012远程桌面会话主机和远程桌面授权,server2012
- 解决Maven关于本地jar包的打包处理
- Activiti 统一身份管理
- PHP_$_SERVER中QUERY_STRING,REQUEST_URI的用法
- Iptables 中文 man 文档
- 有关likely和unlikely??