php微信菜单40017错误,微信公众号接口添加菜单时错误(errcode”:40017 invalid button type) | IT自由人...

33b311e6e75b3bcc511a393dcffe07b0.png

POST提交时总是报错:

{"errcode":40017,"errmsg":"invalid button type"}

最后查出来是由于数据中有中文引起的

解决:

data = {"button":[

{"name": u"会员服务",

"sub_button":[

{"type":"click","name":u"健康咨询","key":"JKZX"},

]

},

{"name":u"申请加入","sub_button":[

{"type":"view","name":u"企业入会申请","url": ""},

]

},

{"type":"view","name":u"关于","url":""}

]

}

url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token=。。。'

data = simplejson.dumps(data, ensure_ascii=False).encode('utf-8')

#加上参数ensure_ascii=False 后 提交的数据中的中文就不会再被转码,然后再编下UTF-8

print data

req = urllib2.Request(url)

req.add_header('Content-Type', 'application/json')

req.add_header('encoding', 'utf-8')

response = urllib2.urlopen(req, data)

result = response.read()

print result

小猪CMS在提交“生成自定义菜单”的时候,提示“发生错误:错误代码40017,微信返回错误信息:不合格的按钮个数”。但是网站本身用的就是UFT-8的格式,应该不需要以上方式去转码,仔细检查“\PigCms\Lib\Action\User\DiymenAction.class.php”发现编码是“UTF-8”格式,立即转码为“UTF-8 w/o BOM”格式,再试一遍,正常提交!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值