微信公众平台发送客服消息 invalid openID错误 errcode:40003

你可以看一下你的组装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()方法,可以完美解决!


原创!手打!

你可能感兴趣的:(微信公众平台)