鼠笼管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1358 lines
41 KiB

<?php
/**
* 微信企业号
* @author luoyunlai 826132167@qq.com
* @creatime 2017-11-23
**/
class Tool_Qyweixin{
public $corpId = "";//企业ID
public $corpSecret = "";//管理组的凭证秘钥
public $parameters = array();
public $token = "";
public $jsApiTicket = NULL;
public $jsApiTime = NULL;
public function __construct(){
$tWeixinarr = Yaf_Registry::get("config")->weixin->default->toArray();
$this->corpId = $tWeixinarr['corpId'];
$this->corpSecret = $tWeixinarr['corpSecret'];
$this->token = $tWeixinarr['token'];
}
/**
* 对内容进行json编码,并且保持汉字不会被编码
* @param $value 被编码的对象
* @return 编码结果字符串
*/
public function json_encode_ex($value) {
if (version_compare(PHP_VERSION, '5.4.0', '<')) {
$str = json_encode($value);
$str = preg_replace_callback("#\\\u([0-9a-f]{4})#i", function($matchs) {
return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));
}, $str);
return $str;
} else {
return json_encode($value, JSON_UNESCAPED_UNICODE);
}
}
/****************************************************
* 微信提交API方法,返回微信指定JSON
****************************************************/
public function qywxHttpsRequest($url,$data = null){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return json_decode($output, TRUE);
}
// /**
// * 发起httpPOST请求
// * @param $url 请求的URL
// * @param $parameters 请求的参数,以数组形式传递
// */
public function httpPostRequest($url, $parameters = array()) {
if (empty($url)) {
return FALSE;
}
// 初始化CURL
$ch = curl_init();
// 设置要请求的URL
curl_setopt($ch, CURLOPT_URL, $url);
// 设置不显示头部信息
curl_setopt($ch, CURLOPT_HEADER, FALSE);
// 设置不将请求结果直接输出在标准输出里,而是返回
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
// 设置本地不检测SSL证书
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
//设置post方式提交
curl_setopt($ch, CURLOPT_POST, TRUE);
// 设置请求参数
if (!empty($parameters)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->json_encode_ex($parameters));
}
// 执行请求动作,并获取结果
$result = curl_exec($ch);
if ($error = curl_error($ch)) {
die($error);
}
// 关闭CURL
curl_close($ch);
return json_decode($result, TRUE);
}
/**
* 使用POST请求上传文件
*/
public function uploadFileByPost($url, $data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
if ($error = curl_error($ch)) {
die($error);
}
curl_close($ch);
return json_decode($result, TRUE);
}
/****************************************************
* 微信带证书提交数据 - 微信红包使用
****************************************************/
public function qywxHttpsRequestPem($url, $vars, $second=30,$aHeader=array()){
$ch = curl_init();
//超时时间
curl_setopt($ch,CURLOPT_TIMEOUT,$second);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
//这里设置代理,如果有的话
//curl_setopt($ch,CURLOPT_PROXY, '10.206.30.98');
//curl_setopt($ch,CURLOPT_PROXYPORT, 8080);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
//以下两种方式需选择一种
//第一种方法,cert 与 key 分别属于两个.pem文件
//默认格式为PEM,可以注释
curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/apiclient_cert.pem');
//默认格式为PEM,可以注释
curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
curl_setopt($ch,CURLOPT_SSLKEY,getcwd().'/apiclient_key.pem');
curl_setopt($ch,CURLOPT_CAINFO,'PEM');
curl_setopt($ch,CURLOPT_CAINFO,getcwd().'/rootca.pem');
//第二种方式,两个文件合成一个.pem文件
//curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/all.pem');
if( count($aHeader) >= 1 ){
curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
}
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);
$data = curl_exec($ch);
if($data){
curl_close($ch);
return $data;
}
else {
$error = curl_errno($ch);
echo "call faild, errorCode:$error\n";
curl_close($ch);
return false;
}
}
/****************************************************
* 微信获取AccessToken 返回指定微信公众号的at信息
****************************************************/
public function qywxAccessToken($corpId = NULL , $corpSecret = NULL){
$corpId = is_null($corpId) ? $this->corpId : $corpId;
$corpSecret = is_null($corpSecret) ? $this->corpSecret : $corpSecret;
$url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=".$corpId."&corpsecret=".$corpSecret;
$tKey = md5($url);
$access_token = Cache_File::get($tKey,7000);
if(!empty($access_token)){
return $access_token;
}
$result = $this->qywxHttpsRequest($url);
$access_token = $result["access_token"];
Cache_File::set($tKey,$access_token);
return $access_token;
}
/****************************************************
* 微信根据code获取成员信息(USERID)(企业成员授权返回USERID、
* USER_TICKET非企业成员授权返回OPENID)
****************************************************/
public function qywxGetuserinfo($qywxAccessToken = null,$code){
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=".$qywxAccessToken."&code=".$code;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信根据user_ticket获取成员信息
****************************************************/
public function qywxGetuserdetail($code){
$qywxAccessToken = $this->qywxAccessToken();
$userTicket = $this->qywxGetuserinfo($code);
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserdetail?access_token=".$qywxAccessToken;
$data = array(
'user_ticket' => $userTicket['user_ticket'],
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信userid转换openid(微信红包使用)
****************************************************/
public function qywxConvertToOpenid($code){
$qywxAccessToken = $this->qywxAccessToken();
$userInfo = $this->qywxGetuserinfo($code);
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_openid?access_token=".$qywxAccessToken;
$data = array(
'userid' => $userInfo['UserId'],
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信openid转换userid(微信红包使用)
****************************************************/
public function qywxConvertToUserid($code){
$qywxAccessToken = $this->qywxAccessToken();
$userInfo = $this->qywxGetuserinfo($code);
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_userid?access_token=".$qywxAccessToken;
$openId = $this->qywxConvertToOpenid($code);
$data = array(
'userid' => $openId['openid'],
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信根据授权码(code)获取企业号登录用户信息(第三方授权登录使用)
****************************************************/
public function qywxGetlogininfo($code){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_login_info?access_token=".$qywxAccessToken;
$data = array(
'auth_code' => $code,
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信根据授权码(code)获取企业号官网url(单点登录使用)
****************************************************/
public function qywxGetloginurl($code){
$qywxAccessToken = $this->qywxAccessToken();
$loginInfo = $this->qywxGetlogininfo($code);
$url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_login_url?access_token=".$qywxAccessToken;
$data = array(
'login_ticket' => $loginInfo['redirect_login_info']['login_ticket'],//通过get_login_info得到的login_ticket, 10小时有效
'target' => 'agent_setting',//登录跳转到企业号后台的目标页面,目前有:agent_setting、send_msg、contact
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信获取应用列表
****************************************************/
public function qywxAgentlist(){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/agent/list?access_token=".$qywxAccessToken;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信获取应用信息
****************************************************/
public function qywxGetagentinfo($agentId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/agent/get?access_token=".$qywxAccessToken."&agentid=".$agentId;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号设置企业号应用
****************************************************/
public function qywxSetagent($mediaId, $name, $description, $redirect_domain, $home_url, $chat_extension_url, $agentId = '1', $report_loction_flag = '0', $isreportuser = '0', $isreportenter = '0'){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/agent/set?access_token=".$qywxAccessToken;
$data = array(
'mediaid' => $mediaId,
'name' => $name,
'description' => $description,
'redirect_domain' => $redirect_domain,
'home_url' => $home_url,
'chat_extension_url' => $chat_extension_url,
'agentid' => $agentId,
'report_loction_flag' => $report_loction_flag,
'isreportenter' => $isreportenter,
'isreportuser' => $isreportuser,
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号创建应用菜单
****************************************************/
public function qywxCreatemenu($agentId, $jsonData){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/menu/create?access_token=".$qywxAccessToken."&agentid=".$agentId;
$result = $this->httpPostRequest($url, $jsonData);
return $result;
}
/****************************************************
* 微信企业号删除应用菜单
****************************************************/
public function qywxDeletemenu($agentId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/menu/delete?access_token=".$qywxAccessToken."&agentid=".$agentId;
$result = $this->httpPostRequest($url);
return $result;
}
/****************************************************
* 微信企业号获取应用菜单列表
****************************************************/
public function qywxGetmenulist($agentId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/menu/get?access_token=".$qywxAccessToken."&agentid=".$agentId;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号二次验证成功后关注企业号接口
****************************************************/
public function qywxAuthsucc($UserId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/authsucc?access_token=".$qywxAccessToken."&userid=".$UserId;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号创建部门
****************************************************/
public function qywxCreatedDepartemnt($name, $parentId = '1'){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token=".$qywxAccessToken;
$data = array(
'name' => $name,
'parentid' => $parentId
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号更新部门
****************************************************/
public function qywxUpdatedDepartemnt($name, $parentId = '1'){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/department/update?access_token=".$qywxAccessToken;
$data = array(
'name' => $name,
'parentid' => $parentId
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号删除部门
****************************************************/
public function qywxDeleteDepartemnt($pId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/department/delete?access_token=".$qywxAccessToken."&id=".$pId;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号获取部门列表
****************************************************/
public function qywxDepartmentList($pId = null,$qywxAccessToken = null){
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=".$qywxAccessToken."&id=".$pId;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号创建成员
****************************************************/
public function qywxCreateuser($data, $qywxAccessToken = null){
// $qywxAccessToken = $this->qywxAccessToken();
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/create?access_token=".$qywxAccessToken;
// $data = array(
// 'userid' => $UserId,
// 'name' => $name,
// 'department' => $department,
// 'position' => $position,
// 'mobile' => $mobile,
// 'gender' => $gender,
// 'email' => $email,
// 'weixinid' => $weixinid,
// 'avatar_mediaid' => $avatar_mediaid,
// 'extattr' => $extattr
// );
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号更新成员
****************************************************/
public function qywxUpdateuser($data,$qywxAccessToken = null){
// $qywxAccessToken = $this->qywxAccessToken();
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/update?access_token=".$qywxAccessToken;
// $data = array(
// 'userid' => $UserId,
// 'name' => $name,
// 'department' => $department,
// 'position' => $position,
// 'mobile' => $mobile,
// 'gender' => $gender,
// 'email' => $email,
// 'weixinid' => $weixinid,
// 'avatar_mediaid' => $avatar_mediaid,
// 'extattr' => $extattr
// );
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号删除成员
****************************************************/
public function qywxDeleteuser($UserId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/delete?access_token=".$qywxAccessToken."&userid=".$UserId;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号批量删除成员
****************************************************/
public function qywxBatchdeleteuser($UserIdList){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/batchdelete?access_token=".$qywxAccessToken;
$data = array(
'useridlist' => $UserIdList,
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号获取成员
****************************************************/
public function qywxBatchgetuser($UserId,$qywxAccessToken = null){
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=".$qywxAccessToken."&userid=".$UserId;
$result = $this->httpPostRequest($url);
return $result;
}
/****************************************************
* 微信企业号获取部门成员
****************************************************/
public function qywxUserSimplelist($departmentId,$qywxAccessToken = null){
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=".$qywxAccessToken."&department_id=".$departmentId."&fetch_child=1&status=0";
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号获取部门成员详情
****************************************************/
public function qywxUserlist($departmentId,$qywxAccessToken = null){
// $qywxAccessToken = $this->qywxAccessToken();
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token=".$qywxAccessToken."&department_id=".$departmentId."&fetch_child=1&status=0";
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号创建标签
****************************************************/
public function qywxCreatetag($data,$qywxAccessToken = null){
// $qywxAccessToken = $this->qywxAccessToken();
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/tag/create?access_token=".$qywxAccessToken;
// $data = array('tagname' => $tagname);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号更新标签名字
****************************************************/
public function qywxUpdatetag($data, $qywxAccessToken = null){
// $qywxAccessToken = $this->qywxAccessToken();
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/tag/update?access_token=".$qywxAccessToken;
// $data = array(
// 'tagid' => $tagId,
// 'tagname' => $tagname
// );
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号删除标签
****************************************************/
public function qywxDeletetag($tagId,$qywxAccessToken = null){
// $qywxAccessToken = $this->qywxAccessToken();
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/tag/delete?access_token=".$qywxAccessToken."&tagid=".$tagId;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号获取标签成员
****************************************************/
public function qywxGettag($tagId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/tag/get?access_token=".$qywxAccessToken."&tagid=".$tagId;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号增加标签成员
****************************************************/
public function qywxAddtagusers($tagId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/tag/addtagusers?access_token=".$qywxAccessToken;
$data = array(
'tagid' => $tagId,
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号删除标签成员
****************************************************/
public function qywxDeltagusers($tagId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/tag/deltagusers?access_token=".$qywxAccessToken;
$data = array(
'tagid' => $tagId,
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号获取标签列表
****************************************************/
public function qywxTaglist($qywxAccessToken = null){
// $qywxAccessToken = $this->qywxAccessToken();
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/tag/list?access_token=".$qywxAccessToken;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号增量更新成员
****************************************************/
public function qywxBatchSyncuser($mediaId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/batch/syncuser?access_token=".$qywxAccessToken;
$data = array(
'media_id' => $mediaId,
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号全量覆盖成员
****************************************************/
public function qywxBatchReplaceuser($mediaId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/batch/replaceuser?access_token=".$qywxAccessToken;
$data = array(
'media_id' => $mediaId,
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号全量覆盖部门
****************************************************/
public function qywxBatchReplaceparty($mediaId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/batch/replaceparty?access_token=".$qywxAccessToken;
$data = array(
'media_id' => $mediaId,
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号获取异步任务结果
****************************************************/
public function qywxBatchGetresult($jobId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/batch/getresult?access_token=".$qywxAccessToken."&jobid=".$jobId;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号上传临时素材
****************************************************/
public function qywxUploadmedia($type, $media){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=".$qywxAccessToken;
$data = array(
'type' => $type,
'media' => $media,
);
$result = httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号获取临时素材
****************************************************/
public function qywxGetmedia($mediaId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=".$qywxAccessToken."&media_id=".$mediaId;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号消息发送
****************************************************/
public function qywxSendmessage($jsonData, $qywxAccessToken = null){
// $qywxAccessToken = $this->qywxAccessToken();
$qywxAccessToken = is_null($qywxAccessToken)?$this->qywxAccessToken():$qywxAccessToken;
$url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=".$qywxAccessToken;
$result = $this->httpPostRequest($url, $jsonData);
return $result;
}
/****************************************************
* 微信企业号创建会话
****************************************************/
public function qywxCreatechat($chatId, $name, $owner, $userList){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/chat/create?access_token=".$qywxAccessToken;
$data = array(
'chatid' => $chatId,
'name' => $name,
'owner' => $owner,
'userlist' => $userList
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号获取会话
****************************************************/
public function qywxGetchat($chatId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/chat/get?access_token=".$qywxAccessToken."&chatid=".$chatId;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号修改会话信息
****************************************************/
public function qywxUpdatechat($chatId, $UserId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/chat/update?access_token=".$qywxAccessToken;
$data = array(
'chatid' => $chatId,
'op_user' => $UserId,
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号退出会话
****************************************************/
public function qywxQuitchat($chatId, $UserId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/chat/quit?access_token=".$qywxAccessToken;
$data = array(
'chatid' => $chatId,
'op_user' => $UserId,
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号清除会话未读状态
****************************************************/
public function qywxClearNotifychat($UserId, $type, $id){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/chat/clearnotify?access_token=".$qywxAccessToken;
$data = array(
'op_user' => $UserId,
'chat' => array(
'type' => $type,
'id' => $id
)
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号发送会话消息
****************************************************/
public function qywxSendChatmessage($jsonData){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/chat/send?access_token=".$qywxAccessToken;
$result = $this->httpPostRequest($url, $jsonData);
return $result;
}
/****************************************************
* 微信企业号设置成员新消息免打扰
****************************************************/
public function qywxChatSetmute($jsonData){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/chat/setmute?access_token=".$qywxAccessToken;
$result = $this->httpPostRequest($url, $jsonData);
return $result;
}
/****************************************************
* 微信企业号向企业号客服发送客服消息
****************************************************/
public function qywxSendkf($jsonData){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/kf/send?access_token=".$qywxAccessToken;
$result = $this->httpPostRequest($jsonData);
return $result;
}
/****************************************************
* 微信企业号获取客服列表
****************************************************/
public function qywxKflist($type){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/kf/list?access_token=".$qywxAccessToken."&type=".$type;
$result = $this->qywxHttpsRequest($url);
return $result;
}
/****************************************************
* 微信企业号摇一摇获取周边设备及用户信息
****************************************************/
public function qywxGetShakeinfo($ticket){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/shakearound/getshakeinfo?access_token=".$qywxAccessToken;
$data = array(
'ticket' => $ticket
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号上传卡券LOGO
****************************************************/
public function qywxMediaUploadimg($media){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/media/uploadimg?access_token=".$qywxAccessToken."&type=card_logo";
$result = $this->httpPostRequest($url, $media);
return $result;
}
/****************************************************
* 微信企业号创建卡券
****************************************************/
public function qywxCreatecard($jsonData){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/card/create?access_token=".$qywxAccessToken;
$result = $this->httpPostRequest($url, $jsonData);
return $result;
}
/****************************************************
* 微信企业号获取卡券详情
****************************************************/
public function qywxGetcard($cardId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/card/get?access_token=".$qywxAccessToken;
$data = array('card_id' => $cardId);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号获取卡券摘要列表
****************************************************/
public function qywxCardBatchget($offset, $count){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/card/batchget?access_token=".$qywxAccessToken;
$data = array(
'offset' => $offset,
'count' => $count
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号修改卡券库存
****************************************************/
public function qywxCardModifystock($cardId, $reduce_stock_value){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/card/modifystock?access_token=".$qywxAccessToken;
$data = array(
'card_id' => $cardId,
'reduce_stock_value' => $reduce_stock_value
);
$result = $this->httpPostRequest($data);
return $result;
}
/****************************************************
* 微信企业号删除卡券
****************************************************/
public function qywxCarddeletestock($cardId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/card/delete?access_token=".$qywxAccessToken;
$data = array(
'card_id' => $cardId,
);
$result = $this->httpPostRequest($data);
return $result;
}
/****************************************************
* 微信企业号获取卡券图文消息内容
****************************************************/
public function qywxGetCardmpnews($agentId, $cardId){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/card/mpnews/gethtml?access_token=".$qywxAccessToken;
$data = array(
'agentid' => $agentId,
'card_id' => $cardId
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号创建卡券二维码
****************************************************/
public function qywxCardCreateqrcode($jsonData){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/card/qrcode/create?access_token=".$qywxAccessToken;
$result = $this->httpPostRequest($jsonData);
return $result;
}
/****************************************************
* 微信企业号查询卡券code
****************************************************/
public function qywxCardGetcode($code){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/card/code/get?access_token=".$qywxAccessToken;
$data = array(
'code' => $code
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号核销卡券code
****************************************************/
public function qywxCardConsumecode($code){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/card/code/consume?access_token=".$qywxAccessToken;
$data = array(
'code' => $code
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号获取应用套件令牌
****************************************************/
public function qywxServiceGetsuitetoken($suite_id, $suite_secret, $suite_ticket){
$qywxAccessToken = $this->qywxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_suite_token";
$tKey = md5($url);
$access_token = Cache_File::get($tKey, 3600);
if(!empty($access_token)){
return $access_token;
}
$data = array(
'suite_id' => $suite_id,
'suite_secret' => $suite_secret,
'suite_ticket' => $suite_ticket
);
$result = $this->httpPostRequest($url, $result);
$access_token = $result['suite_access_token'];
Cache_File::set($tKey, $access_token);
return $access_token;
}
/****************************************************
* 微信企业号获取预授权码
****************************************************/
public function qywxServiceGetpreauthcode($suite_id, $suite_secret, $suite_ticket){
$qywxAccessToken = $this->qywxAccessToken();
$Suitetoken = $this->qywxServiceGetsuitetoken($suite_id, $suite_secret, $suite_ticket);
$url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_pre_auth_code?suite_access_token=".$Suitetoken['suite_access_token'];
$data = array('suite_id' => $suite_id);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号设置授权配置
****************************************************/
public function qywxServiceSetsessioninfo($suite_id, $suite_secret, $suite_ticket, $jsonData){
$qywxAccessToken = $this->qywxAccessToken();
$Suitetoken = $this->qywxServiceGetsuitetoken($suite_id, $suite_secret, $suite_ticket);
$url = "https://qyapi.weixin.qq.com/cgi-bin/service/set_session_info?suite_access_token=".$Suitetoken['suite_access_token'];
$result = $this->httpPostRequest($url, $jsonData);
return $result;
}
/****************************************************
* 微信企业号获取永久预授权码
****************************************************/
public function qywxServiceGetpermanentcode($suite_id, $suite_secret, $suite_ticket, $auth_code){
$qywxAccessToken = $this->qywxAccessToken();
$Suitetoken = $this->qywxServiceGetsuitetoken($suite_id, $suite_secret, $suite_ticket);
$url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_permanent_code?suite_access_token=".$Suitetoken['suite_access_token'];
$data = array(
'suite_id' => $suite_id,
'auth_code' => $auth_code
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号获取授权信息
****************************************************/
public function qywxServiceGetauthinfo($suite_id, $suite_secret, $suite_ticket, $auth_corpid, $permanent_code){
$qywxAccessToken = $this->qywxAccessToken();
$Suitetoken = $this->qywxServiceGetsuitetoken($suite_id, $suite_secret, $suite_ticket);
$url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_auth_info?suite_access_token=".$Suitetoken['suite_access_token'];
$data = array(
'suite_id' => $suite_id,
'auth_corpid' => $auth_corpid,
'permanent_code' => $permanent_code
);
$result = $this->httpPostRequest($url, $data);
return $result;
}
/****************************************************
* 微信企业号获取access_token
****************************************************/
public function qywxServiceGetcorptoken($suite_id, $suite_secret, $suite_ticket, $auth_corpid, $permanent_code){
$qywxAccessToken = $this->qywxAccessToken();
$Suitetoken = $this->qywxServiceGetsuitetoken($suite_id, $suite_secret, $suite_ticket);
$url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_corp_token?suite_access_token=".$Suitetoken['suite_access_token'];
$tKey = md5($url);
$access_token = Cache_File::get($tKey, 3600);
if(!empty($access_token)){
return $access_token;
}
$data = array(
'suite_id' => $suite_id,
'auth_corpid' => $auth_corpid,
'permanent_code' => $permanent_code
);
$result = $this->httpPostRequest($url, $data);
$access_token = $result['access_token'];
Cache_File::set($tKey, $access_token);
return $access_token;
}
/****************************************************
* 微信企业号获取应用提供商凭证
****************************************************/
public function qywxServiceGetprovidertoken($corpid, $provider_secret){
$url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_provider_token";
$tKey = md5($url);
$access_token = Cache_File::get($tKey, 3600);
if(!empty($access_token)){
return $access_token;
}
$data = array(
'corpid' => $corpid,
'provider_secret' => $provider_secret
);
$result = $this->httpPostRequest($url, $data);
$access_token = $result['get_provider_token'];
Cache_File::set($tKey, $access_token);
return $result;
}
/****************************************************
* 微信获取ApiTicket 返回指定微信公众号的at信息
****************************************************/
public function qywxJsApiTicket($corpId = NULL , $corpSecret = NULL){
$corpId = is_null($corpId) ? $this->corpId : $corpId;
$corpSecret = is_null($corpSecret) ? $this->corpSecret : $corpSecret;
// $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=".$this->wxAccessToken();
$url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=".$this->qywxAccessToken($corpId, $corpSecret);
$result = $this->qywxHttpsRequest($url);
$ticket = $result['ticket'];
//echo $ticket . "<br />";
return $ticket;
}
public function qywxVerifyJsApiTicket($corpId = NULL , $corpSecret = NULL){
if(!empty($this->jsApiTime) && intval($this->jsApiTime) > time() && !empty($this->jsApiTicket)){
$ticket = $this->jsApiTicket;
}
else{
$ticket = $this->qywxJsApiTicket($corpId,$corpSecret);
$this->jsApiTicket = $ticket;
$this->jsApiTime = time() + 7200;
}
return $ticket;
}
}
?>