я использую overtrue / WeChat разработать WeChat проект.
При разработке с API overtrue / wechat batchget,
mycode:
$usersInfo = array();
$usersInfo = $userService->batchGet($usingOpenids);
возвращает ошибку:
ErrorException в User.php line 103:
Illegal string offset 'user_info_list'.
Я проверил некоторые ответы, а затем обнаружил некоторые неизвестные символы, такие как рисунки ниже (открыть с возвышенным). Однако другие ответы верны.
Ниже представлен wechat batchGet API, функция пакетного переопределения / wechat имеет целью сделать следующее:
HTTP POST:
https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN
Данные POST:
{
"user_list": [
{
"openid": "otvxTs4dckWG7imySrJd6jSi0CWE",
"lang": "zh-CN"},
{
"openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg",
"lang": "zh-CN"}
]
}
Данные ответа:
{
"user_info_list": [
{
"subscribe": 1,
"openid": "otvxTs4dckWG7imySrJd6jSi0CWE",
"nickname": "iWithery",
"sex": 1,
"language": "zh_CN",
"city": "Jieyang",
"province": "Guangdong",
"country": "China",
"headimgurl": "http://wx.qlogo.cn/mmopen/xbIQx1GRqdvyqkMMhEaGOX802l1CyqMJNgUzKP8MeAeHFicRDSnZH7FY4XB7p8XHXIf6uJA2SCunTPicGKezDC4saKISzRj3nz/0",
"subscribe_time": 1434093047,
"unionid": "oR5GjjgEhCMJFyzaVZdrxZ2zRRF4",
"remark": "",
"groupid": 0
},
{
"subscribe": 0,
"openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg",
"unionid": "oR5GjjjrbqBZbrnPwwmSxFukE41U",
}
]
}
Итак, что я могу сделать, чтобы избежать этой ошибки?
Я думаю, может быть, проблема здесь Http.php line 116. Может быть, я могу перенести формат здесь?
Но я не знаю как.
$ contents = json_decode ($ response [‘data’], true);
PS: я сожалею о том, что некоторые документы китайские …
Как говорится в комментариях, эта ошибка означает, что я использую строку в качестве массива.
Поэтому я снова добавляю json_decode для форматирования ответа в User.php.
if(!is_array($response))
{
$response = json_decode($response, true);
}
Тем не менее, меня все еще что-то смущает. Потому что в Http.php, он уже использовал функцию json_decode. Теперь я использую json_decode в User.php снова.
Так что, может быть, есть лучший способ или другие проблемы. Однако это один из способов ее решения. Спасибо за все ответы на вопрос ~
Других решений пока нет …