以下代码只作参考,毕竟大家所写的方式不同,我的处理过程是,取到表单数据后,先提交给多客服的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;
}