一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

php版微信多客服务API开发-添加、更新、上传、删除

时间:2016-05-08 编辑:简简单单 来源:一聚教程网

看到微信API文档加入了多客服务接口,就想着把它的功能集成到本站的WP微信插件里,开发过程中因为文档的误导,真是坑人不小的,微信就不能写文档认真点么?不过总归最后得到解决,先看下效果图:
wechat-post-customer

 

添加一个多客服帐号,还可以上传头像哦
wechat-post-add-customer

 

下面是官方文档坑人的API 截图:
uploadheader

 

如上图,开始自己留意到http://开头是错误的,但万万没想到,自己核对过参数和API的url都没错的情况下,居然给我报48001 即API没有被授权!我就郁闷,我用多客服的其他add 、update、del接口都没问题,怎么这个上传upload头像就没授权呢?
无奈之下找微信官方客服,一番令人无语的问答后,最终解决了!原来是API的URL上的/customservice/kfacount/中的kfaccount少了个c,真是操啊!!

 

以下代码只作参考,毕竟大家所写的方式不同,我的处理过程是,取到表单数据后,先提交给多客服的add接口,成功后,再upload头像,最后再写进数据库!流程处理的代码如下:

/*
     * 添加多客服帐号
     */
    public function add_customer() {
        $data = array();
        foreach($_POST['customer'] as $items ) {
            if( ! empty($items['value'])) {
                $key = $items['name'];
                $val = $items['value'];
                if($key == 'media_file') {
                    $img_url = $val;
                    continue;
                }
                if($key == 'password') {
                    $original_pass = $val;
                    $val = md5($val);
                }
                $data[$key] = $val;
            }
        }
        $res = $this->call('/kfaccount/add', $data, self::JSON, self::API_TYPE_SERVICE);
        if($res) {
            if($img_url) {
                $this->upload_customer_header($img_url, $data['kf_account']);
                $data['local_headimgurl'] = $img_url;
            }
            global $wpdb;
            $table = $wpdb->prefix.'wechat_customer';
            if( ! empty($original_pass)) $data['password'] = $original_pass;
            $wpdb->insert($table, array_merge($data, array('create_time' => time())));
            exit('ok');
        }
        exit('errcode: '.$this->_error_number.' errmsg: '.$this->_error);
    }
要改Wechat-JSON.php API类,新增多客服接口上传方法:
//上传多客服头像 必须是jpg格式,推荐640*640大小的图片以达到最佳效果
    public function CustomerHeaderUpload($file_full_path, $account = '') {
        $this->_access_token = $this->getAccessToken();
        $res = false;
        if ($this->_access_token) {
            $url = 'https://api.weixin.qq.com/customservice/kfaccount/uploadheadimg?';
            $url = $url.'access_token='.$this->_access_token.'&kf_account='.$account;
            $res = $this->request($url, array(
                'media' => '@'.$file_full_path,
            ), self::POST);
        }
        return $res;
    }

热门栏目