Сбой ответа API с недопустимым смещением строки и содержит неизвестные символы

я использую 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: я сожалею о том, что некоторые документы китайские …

1

Решение

Как говорится в комментариях, эта ошибка означает, что я использую строку в качестве массива.
Поэтому я снова добавляю json_decode для форматирования ответа в User.php.

    if(!is_array($response))
{
$response = json_decode($response, true);
}

Тем не менее, меня все еще что-то смущает. Потому что в Http.php, он уже использовал функцию json_decode. Теперь я использую json_decode в User.php снова.
Так что, может быть, есть лучший способ или другие проблемы. Однако это один из способов ее решения. Спасибо за все ответы на вопрос ~

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]