Maison >développement back-end >tutoriel php >微信发布菜单失败
把微信中接口中的http_post请求拿出来,单独发送请求,生成菜单。但是创建字母的菜单就可以发布成功,如果创建中文汉字的就提示发布失败,报40033错误, 不合法的请求字符,不能包含\uxxxx格式的字符 。这是为什么。利用接口中的createMenu发布中文都可以的
把微信中接口中的http_post请求拿出来,单独发送请求,生成菜单。但是创建字母的菜单就可以发布成功,如果创建中文汉字的就提示发布失败,报40033错误, 不合法的请求字符,不能包含\uxxxx格式的字符 。这是为什么。利用接口中的createMenu发布中文都可以的
<code>php</code><code> /** * 微信api不支持中文转义的json结构 * @param array $arr */ static function json_encode($arr) { $parts = array (); $is_list = false; //Find out if the given array is a numerical array $keys = array_keys ( $arr ); $max_length = count ( $arr ) - 1; if (($keys [0] === 0) && ($keys [$max_length] === $max_length )) { //See if the first key is 0 and last key is length - 1 $is_list = true; for($i = 0; $i $value ) { if (is_array ( $value )) { //Custom handling for arrays if ($is_list) $parts [] = self::json_encode ( $value ); /* :RECURSION: */ else $parts [] = '"' . $key . '":' . self::json_encode ( $value ); /* :RECURSION: */ } else { $str = ''; if (! $is_list) $str = '"' . $key . '":'; //Custom handling for multiple data types if (is_numeric ( $value ) && $value</code>
参见: wechat-php-sdk
直接拼接json串也可以啊,为什么要先数组,再encode。
而且json更直观。