overtrue/wechatを使用してwechatプロジェクトを開発しています。
overtrue/wechat batchget APIで開発する場合、
マイコード:
$usersInfo = array();
$usersInfo = $userService->batchGet($usingOpenids);
エラーを返します:
User.php 行 103の ErrorException :
Illegal string offset 'user_info_list'.
いくつかの回答を確認したところ、下の写真のような不明な文字がいくつか見つかりました (崇高で開きます)。ただし、他の応答は正しいです。
以下は wechat の batchGet API です。overtrue/wechat の batchget 関数は以下のことを目指しています。
HTTP POST: https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN
投稿データ:
{
"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 の 116 行目にあると思います。ここでフォーマットを転送できますか?しかし、方法がわかりません。
$contents = json_decode($response['data'], true);
PS: 一部のドキュメントが中国語であることについては申し訳ありません...