你可以看一下你的组装JSON的代码,肯定是直接用的类似于这样的形式:
"touser": $openID
如果你试过用json_encode的话,你会发现这样是不会报invalid openID错误的。
我们可以把两种方式组装的数据打印出来比较一下:
string(104) "{"touser":"xxxxxxx","msgtype":"text","text":{"content":"xxx"}}"()
string(173) "{
'touser':xxxxxxx,
'msgtype':'text',
'text':
{
'content':xxx
}
}"
显然,后者的"openID"并没有被双引号包含,这就是invalid openID报错的原因。
有两种方法可以解决,第一是用 \"$openID\" 的形式来组装数据,但是并不提倡这么做。
还有就是使用json_encode组装数组数据,但是用过的人可能会发现content里的汉字都会被换成unicode字符,解决办法是网上找一个ch_json_encode()方法,可以完美解决!
原创!手打!