微信企业号开发之中文编码40006

2014年为了尝鲜自己为单位做了微信服务号,受到同事们的一致好评,然而大boss对此毫无所知,小boss们也是可有可无。平时的工作也是实在平淡,2015年上半年又加入些许实用功能。(不要我问我怎么能拿到数据,我知回答他们的数据库都托管到我们部门,每次维护都是我配合集成商工程师调试,所以搞好各部门的关系也是十分必要的)。

9月单位换了新的大boss,对微信十分感兴趣,特别是喜欢微信每天推送的新闻格式。于是大boos问中boss,中boss又讯问小boss,小boss又询问跑腿的。也是boss们才知晓原来已经有了微信服务号。于是在初秋的一个上午,俺就是接到了部门boss询问电话。我回答目前的服务号已无法满足需求,企业号才是最佳解决方案呢。也是近期俺的工作就立刻被切换到企业号了。

废话已不少,其实企业号与服务号api大体相同。只不过appid换成了corpid,然后在消息内增加了AgentID。不过在开发过程还是遇到了不少坑。

第一个坑,也是开发软件过程中遇到了通用坑。编码问题,特别中文编码问题。腾讯为了提高信息安全性,服务器消息都是通过严格加密的。不过还好,腾讯也给出了响应的样例。下载地址如下:http://qydev.weixin.qq.com/wiki/index.php?title=%E5%8A%A0%E8%A7%A3%E5%AF%86%E5%BA%93%E4%B8%8B%E8%BD%BD%E4%B8%8E%E8%BF%94%E5%9B%9E%E7%A0%81

一切按照Sample.py里面的demo进行都挺顺利,解密加密也都很方便。不过当返回消息出现中文时,一切就不那么和谐了。只要加密中文就出现下面的错误

Input strings must be a multiple of 16 in length
ERR: EncryptMsg ret: -40006 

其实也很简单,主要是str和unicode问题。sha1加密支持str,而unicode就好出现这个问题。

解决方案

sRespData=sRespData.encode('utf8')
ret,sEncryptMsg=wxcpt.EncryptMsg(sRespData, sReqNonce, sReqTimeStamp)

问题解决了。俺又要去迁移其他功能了

更多相关文章
  • Force.com微信企业号开发系列一-启用二次验证
    微信于9月份推出企业号后引起了业界不小的反响,许多企业都在思索企业号将如何影响企业的运营,从本文开始,我将详细阐述微信企业号开发的相关知识,而本文将着重介绍如何实现更高安全机制的二次验证. 申请企业体验号: 企业号顾名思义就是企业来申请的号,申请时就像申请服务号一样,需要提供各种组织证明文件,对广大 ...
  • 最近有项目基于微信企业号开发,简单记录下如何查看企业号secert 工具/原料 微信企业号 方法/步骤  用管理员的帐号登录后,选择[设置]-[权限管理]进入管理组设置界面  在左边点击[新建管理组],新建一个管理组(这里必须新建一个管理组,因为系统管理组是无法获取权限的)   新建好管理组后,根据 ...
  • 转载微信企业号开发如何建立连接
    连接将使你的企业号更具价值,你可以使用以下三种方式,连接你的企业号及企业应用: 1.企业应用调用企业号提供的接口,管理或查询企业号后台所管理的资源.或给成员发送消息等,以下称主动调用模式. 2.企业号把用户发送的消息或用户触发的事件推送给企业应用,由企业应用处理,以下称回调模式. 3.用户在微信中阅 ...
  • 微信回调模式的官方文档. 开发语言:C#(微信相关功能代码可以从官网下载) 首先,必须要明确几个参数,这几个参数在微信企业号中,每次调用都会使用到. 1.msg_signature:签名(已加密,加密方法可从官网下载) 2.timestamp:时间戳 3.nonce:随机数 4.echostr:随机 ...
  • 微信企业号开发步骤
    1.申请微信企业号测试账号,参考http://www.cnblogs.com/comsokey/p/enterprise.html. 2.熟悉微信企业号后台功能,参考http://www.cnblogs.com/comsokey/p/enterprise.html. 着重练习下通讯录管理,可以先看本 ...
  • 1 微OA365 2 起步软件 应用开发
  • C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理
     前面一篇随笔企业号的一些基础信息,以及介绍如何配置企业号的回调方式实现和企业号服务器进行沟通的桥梁.本篇主要还是继续介绍企业号的开发工作的开展,介绍微信企业号通讯录管理开发功能,介绍其中组织机构里面如何获取和管理部门的信息等内容.  1.企业组织的创建和配置 首先我们可以在企业号的管理后台里面创建 ...
  • C#开发微信门户及应用(20)-微信企业号的菜单管理
    前面几篇陆续介绍了很多微信企业号的相关操作,企业号和公众号一样都可以自定义菜单,因此他们也可以通过API进行菜单的创建.获取列表.删除的操作,因此本篇继续探讨这个主体,介绍企业号的菜单管理操作. 菜单在很多情况下,能够给我们提供一个快速入口,也可以用来获取用户信息的主要入口,通过OAuth2验证接口 ...
一周排行
  • 如果使用 web 和数据库不在同一台服务器上,MySQL 服务器就需要允许远程链接,网站才能正常运行.MySQL 的远程链接设置有两种方法:1.改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时 ...
  • 说明:    最近做cms想本地修改模板,然后把最新的模板内容存到数据中,所以想到Runnable写个定时任务:思路:    每隔一分钟查看模板是否有改动,如果有改变执行保存到数据库中:定时任务核心代码:packag ...
  • 13.4检查文件和标头信息
    13.4 检查文件和标头信息13.4.1 检查文件结构 通过查询backupfile表,可 ...
  •  1.先从你本机C:\Windows\Fonts拷贝或者网络上下载你想要安装的字体文件(*.ttf文件)到/usr/share/fonts/chinese/TrueType目录下(如果系统中没有此目录,则自行mkdi ...
  • Hadoop的虚拟化之恋-软件和信息服务2012.12
     高速增长的数据量和日益增加的竞争压力,让越来越多的企业开始思考如何挖掘这些数据的价值.传 ...
  • Linux系统和windows系统有太多不一样的地方,我相信99%的读者朋友最早接触电脑肯定不是Linux系统,要么是windows系统,要么是苹果操作系统.所以,当你刚刚使用Linux操作系统时,肯定有诸多不习惯的 ...
  • VMwarevSphere6ESXI主机安装二
    VMware vSphere 6  ESXI主机安装(二)以下操作将在VMware Wor ...
  • Android\OPhone动画分析之翻转效果
    看到很多人在问如何实现三维的翻转效果,所以今天在这里简单的给大家分析一下,其实在APIDe ...
  • 1.插入联通(移动)的SIM卡,锁网机开机应显示此SIM未被接受. 2.在手机上输入*#06#,抄下显示的手机串号,也就是IMEI 3.在卸下SIM卡的状态下开机,手机显示请插入SIM卡. 4.用IE打开如下网址:[ ...
  • 磁盘及文件系统管理
    一.基础知识      冯诺依曼计算机的五大体系结构为计算器.控制器.存储器和输入设备.输 ...