|
|
|
@ -1,127 +0,0 @@
|
|
|
|
|
<?php
|
|
|
|
|
namespace LaneWeChat\Core;
|
|
|
|
|
/**
|
|
|
|
|
* 多客服功能类,用于微信公众号的多客服系统管理。
|
|
|
|
|
* 该类提供接口以添加、编辑、删除客服账号,获取客服列表,设置客服头像,以及获取客服聊天记录。
|
|
|
|
|
* Class CustomService
|
|
|
|
|
* User: lane
|
|
|
|
|
* Date: 14-10-31
|
|
|
|
|
* Time: 上午10:30
|
|
|
|
|
* E-mail: lixuan868686@163.com
|
|
|
|
|
* WebSite: http://www.lanecn.com
|
|
|
|
|
*/
|
|
|
|
|
Class CustomService{
|
|
|
|
|
/**
|
|
|
|
|
* 添加客服账号。
|
|
|
|
|
* 此方法用于在微信公众号后台添加一个新的客服账号。
|
|
|
|
|
* 注意:必须先在公众平台官网为公众号设置微信号后才能使用该能力。
|
|
|
|
|
*
|
|
|
|
|
* @param string $kfAccount 完整客服账号,格式为:账号前缀@公众号微信号。
|
|
|
|
|
* @param string $nickname 客服昵称。
|
|
|
|
|
* @param string $password 客服密码。
|
|
|
|
|
* @return array 操作结果,成功返回操作结果数组,失败返回false。
|
|
|
|
|
*/
|
|
|
|
|
public function addAccount($kfAccount, $nickname, $password){
|
|
|
|
|
$queryUrl = 'https://api.weixin.qq.com/customservice/kfaccount/add?access_token='.AccessToken::getAccessToken();
|
|
|
|
|
$queryAction = 'POST';
|
|
|
|
|
$template = array();
|
|
|
|
|
$template['kf_account'] = $kfAccount;
|
|
|
|
|
$template['nickname'] = $nickname;
|
|
|
|
|
$template['password'] = $password;
|
|
|
|
|
$template = json_encode($template);
|
|
|
|
|
return Curl::callWebServer($queryUrl, $template, $queryAction);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 修改客服账号信息。
|
|
|
|
|
* 此方法用于修改已存在的客服账号信息。
|
|
|
|
|
*
|
|
|
|
|
* @param string $kfAccount 完整客服账号,格式为:账号前缀@公众号微信号。
|
|
|
|
|
* @param string $nickname 客服昵称。
|
|
|
|
|
* @param string $password 客服密码。
|
|
|
|
|
* @return array 操作结果,成功返回操作结果数组,失败返回false。
|
|
|
|
|
*/
|
|
|
|
|
public function editAccount($kfAccount, $nickname, $password){
|
|
|
|
|
$queryUrl = 'https://api.weixin.qq.com/customservice/kfaccount/update?access_token='.AccessToken::getAccessToken();
|
|
|
|
|
$queryAction = 'POST';
|
|
|
|
|
$template = array();
|
|
|
|
|
$template['kf_account'] = $kfAccount;
|
|
|
|
|
$template['nickname'] = $nickname;
|
|
|
|
|
$template['password'] = $password;
|
|
|
|
|
$template = json_encode($template);
|
|
|
|
|
return Curl::callWebServer($queryUrl, $template, $queryAction);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除客服账号。
|
|
|
|
|
* 此方法用于从微信公众号后台删除一个客服账号。
|
|
|
|
|
*
|
|
|
|
|
* @param string $kfAccount 完整客服账号,格式为:账号前缀@公众号微信号。
|
|
|
|
|
* @return array 操作结果,成功返回操作结果数组,失败返回false。
|
|
|
|
|
*/
|
|
|
|
|
public function delAccount($kfAccount){
|
|
|
|
|
$queryUrl = 'https://api.weixin.qq.com/customservice/kfaccount/del?access_token='.AccessToken::getAccessToken();
|
|
|
|
|
$queryAction = 'POST';
|
|
|
|
|
$template = array();
|
|
|
|
|
$template['kf_account'] = $kfAccount;
|
|
|
|
|
$template = json_encode($template);
|
|
|
|
|
return Curl::callWebServer($queryUrl, $template, $queryAction);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取所有客服账号列表。
|
|
|
|
|
* 此方法用于获取公众号下所有客服账号的信息。
|
|
|
|
|
*
|
|
|
|
|
* @return array 客服账号列表,每个客服账号包含kf_account, kf_nick, kf_id, kf_headimgurl等信息。
|
|
|
|
|
*/
|
|
|
|
|
public function getAccountList(){
|
|
|
|
|
$queryUrl = 'https://api.weixin.qq.com/cgi-bin/customservice/getkflist?access_token='.AccessToken::getAccessToken();
|
|
|
|
|
$queryAction = 'GET';
|
|
|
|
|
return Curl::callWebServer($queryUrl, '', $queryAction);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 设置客服账号的头像。
|
|
|
|
|
* 此方法用于上传并设置客服账号的头像。
|
|
|
|
|
* 头像图片文件必须是jpg格式,推荐使用640*640大小的图片以达到最佳效果。
|
|
|
|
|
*
|
|
|
|
|
* @param string $kfAccount 完整客服账号,格式为:账号前缀@公众号微信号。
|
|
|
|
|
* @param string $imagePath 待上传的头像文件路径。
|
|
|
|
|
* @return array 操作结果,成功返回操作结果数组,失败返回false。
|
|
|
|
|
*/
|
|
|
|
|
public function setAccountImage($kfAccount, $imagePath){
|
|
|
|
|
if(!file_exists($imagePath)){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
$queryUrl = 'http://api.weixin.qq.com/customservice/kfaccount/uploadheadimg?access_token='.AccessToken::getAccessToken().'&kf_account='.$kfAccount;
|
|
|
|
|
$data = array();
|
|
|
|
|
$data['media'] = '@'.$imagePath;
|
|
|
|
|
return Curl::callWebServer($queryUrl, $data, 'POST', 1 , 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取客服聊天记录。
|
|
|
|
|
* 此方法用于获取多客服的会话记录,包括客服和用户会话的所有消息记录和会话的创建、关闭等操作记录。
|
|
|
|
|
* 利用此接口可以开发如“消息记录”、“工作监控”、“客服绩效考核”等功能。
|
|
|
|
|
*
|
|
|
|
|
* @param int $startTime 查询开始时间,UNIX时间戳。
|
|
|
|
|
* @param int $endTime 查询结束时间,UNIX时间戳,每次查询不能跨日查询。
|
|
|
|
|
* @param int $pageIndex 查询第几页,从1开始。
|
|
|
|
|
* @param int $pageSize 每页大小,每页最多拉取1000条。
|
|
|
|
|
* @param string $openId 可以为空,普通用户的标识,对当前公众号唯一。
|
|
|
|
|
* @return array 聊天记录列表,包含worker, openid, opercode, time, text等信息。
|
|
|
|
|
*/
|
|
|
|
|
public function getRecord($startTime, $endTime, $pageIndex=1, $pageSize=1000, $openId=''){
|
|
|
|
|
$queryUrl = 'https://api.weixin.qq.com/cgi-bin/customservice/getrecord?access_token='.AccessToken::getAccessToken();
|
|
|
|
|
$queryAction = 'POST';
|
|
|
|
|
$template = array();
|
|
|
|
|
$template['starttime'] = $startTime;
|
|
|
|
|
$template['endtime'] = $endTime;
|
|
|
|
|
$template['openid'] = $openId;
|
|
|
|
|
$template['pagesize'] = $pageSize;
|
|
|
|
|
$template['pageindex'] = $pageIndex;
|
|
|
|
|
$template = json_encode($template);
|
|
|
|
|
$result = Curl::callWebServer($queryUrl, $template, $queryAction);
|
|
|
|
|
return isset($result['recordlist']) ? $result['recordlist'] : array();
|
|
|
|
|
}
|
|
|
|
|
}
|