微信发布菜单失败

php中文网
发布: 2016-06-06 20:38:32
原创
1278人浏览过

把微信中接口中的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 < count ( $keys ); $i ++) { //See if each key correspondes to its position
                if ($i != $keys [$i]) { //A key fails at position check.
                    $is_list = false; //It is an associative array.
                    break;
                }
            }
        }
        foreach ( $arr as $key => $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<2000000000)
                    $str .= $value; //Numbers
                elseif ($value === false)
                $str .= 'false'; //The booleans
                elseif ($value === true)
                $str .= 'true';
                else
                    $str .= '"' . addslashes ( $value ) . '"'; //All other things
                // :TODO: Is there any more datatype we should be in the lookout for? (Object?)
                $parts [] = $str;
            }
        }
        $json = implode ( ',', $parts );
        if ($is_list)
            return '[' . $json . ']'; //Return numerical JSON
        return '{' . $json . '}'; //Return associative JSON
    }
</code>
登录后复制

参见: wechat-php-sdk

直接拼接json串也可以啊,为什么要先数组,再encode。

AUGMVC权限管理微信开发源码
AUGMVC权限管理微信开发源码

一、源码特点1、UI:界面美观 ;漂亮 ;大方;实用。 二、功能介绍这是一款集MVC+权限管理+微信开发的源码,功能比较丰富。三、菜单功能1、微信管理:微信菜单管理、微信调用管理、微信关注用户、微信文章管理。2、基础资料:实体类生成、数据迁移、字典管理3、系统设置:组织管理、权限管理、角色管理、用户管理、用户组管理。4、系统菜单:登入系统、用户密码修改、登入日志查询。四、注意事项1、管理员用

AUGMVC权限管理微信开发源码 0
查看详情 AUGMVC权限管理微信开发源码

而且json更直观。

相关标签:
php
微信app下载
微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号