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

作者:袖梨 2022-11-14
看到微信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;
}

相关文章

精彩推荐