有哪些php官方微信接口
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,本篇内容主要讲解"有哪些php官方微信接口",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"有哪些php官方微信接口"吧!微信入口绑定,微信事件处理,微信AP
千家信息网最后更新 2025年01月16日有哪些php官方微信接口
本篇内容主要讲解"有哪些php官方微信接口",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"有哪些php官方微信接口"吧!
微信入口绑定,微信事件处理,微信API全部操作包含在这些文件中。
内容有:微信摇一摇接口/微信多客服接口/微信支付接口/微信红包接口/微信卡券接口/微信小店接口/JSAPI
= 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 wxAccessToken($appId = NULL , $appSecret = NULL){ $appId = is_null($appId) ? self::appId : $appId; $appSecret = is_null($appSecret) ? self::appSecret : $appSecret; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret; $result = $this->wxHttpsRequest($url); //print_r($result); $jsoninfo = json_decode($result, true); $access_token = $jsoninfo["access_token"]; return $access_token; } /**************************************************** * 微信获取ApiTicket 返回指定微信公众号的at信息 ****************************************************/ public function wxJsApiTicket($appId = NULL , $appSecret = NULL){ $appId = is_null($appId) ? self::appId : $appId; $appSecret = is_null($appSecret) ? self::appSecret : $appSecret; $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=".$this->wxAccessToken(); $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); $ticket = $jsoninfo['ticket']; //echo $ticket . "
"; return $ticket; } public function wxVerifyJsApiTicket($appId = NULL , $appSecret = NULL){ if(!empty($this->jsApiTime) && intval($this->jsApiTime) > time() && !empty($this->jsApiTicket)){ $ticket = $this->jsApiTicket; } else{ $ticket = $this->wxJsApiTicket($appId,$appSecret); $this->jsApiTicket = $ticket; $this->jsApiTime = time() + 7200; } return $ticket; } /**************************************************** * 微信通过OPENID获取用户信息,返回数组 ****************************************************/ public function wxGetUser($openId){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$wxAccessToken."&openid=".$openId."&lang=zh_CN"; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信生成二维码ticket ****************************************************/ public function wxQrCodeTicket($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=".$wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); return $result; } /**************************************************** * 微信通过ticket生成二维码 ****************************************************/ public function wxQrCode($ticket){ $url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" . urlencode($ticket); return $url; } /**************************************************** * 微信通过指定模板信息发送给指定用户,发送完成后返回指定JSON数据 ****************************************************/ public function wxSendTemplate($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); return $result; } /**************************************************** * 发送自定义的模板消息 ****************************************************/ public function wxSetSend($touser, $template_id, $url, $data, $topcolor = '#7B68EE'){ $template = array( 'touser' => $touser, 'template_id' => $template_id, 'url' => $url, 'topcolor' => $topcolor, 'data' => $data ); $jsonData = urldecode(json_encode($template)); echo $jsonData; $result = $this->wxSendTemplate($jsonData); return $result; } /**************************************************** * 微信设置OAUTH跳转URL,返回字符串信息 - SCOPE = snsapi_base //验证时不返回确认页面,只能获取OPENID ****************************************************/ public function wxOauthBase($redirectUrl,$state = "",$appId = NULL){ $appId = is_null($appId) ? self::appId : $appId; $url = "https://open.weixin.qq.com/connect/oauth3/authorize?appid=".$appId."&redirect_uri=".$redirectUrl."&response_type=code&scope=snsapi_base&state=".$state."#wechat_redirect"; return $url; } /**************************************************** * 微信设置OAUTH跳转URL,返回字符串信息 - SCOPE = snsapi_userinfo //获取用户完整信息 ****************************************************/ public function wxOauthUserinfo($redirectUrl,$state = "",$appId = NULL){ $appId = is_null($appId) ? self::appId : $appId; $url = "https://open.weixin.qq.com/connect/oauth3/authorize?appid=".$appId."&redirect_uri=".$redirectUrl."&response_type=code&scope=snsapi_userinfo&state=".$state."#wechat_redirect"; return $url; } /**************************************************** * 微信OAUTH跳转指定URL ****************************************************/ public function wxHeader($url){ header("location:".$url); } /**************************************************** * 微信通过OAUTH返回页面中获取AT信息 ****************************************************/ public function wxOauthAccessToken($code,$appId = NULL , $appSecret = NULL){ $appId = is_null($appId) ? self::appId : $appId; $appSecret = is_null($appSecret) ? self::appSecret : $appSecret; $url = "https://api.weixin.qq.com/sns/oauth3/access_token?appid=".$appId."&secret=".$appSecret."&code=".$code."&grant_type=authorization_code"; $result = $this->wxHttpsRequest($url); //print_r($result); $jsoninfo = json_decode($result, true); //$access_token = $jsoninfo["access_token"]; return $jsoninfo; } /**************************************************** * 微信通过OAUTH的Access_Token的信息获取当前用户信息 // 只执行在snsapi_userinfo模式运行 ****************************************************/ public function wxOauthUser($OauthAT,$openId){ $url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$OauthAT."&openid=".$openId."&lang=zh_CN"; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 创建自定义菜单 ****************************************************/ public function wxMenuCreate($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 获取自定义菜单 ****************************************************/ public function wxMenuGet(){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 删除自定义菜单 ****************************************************/ public function wxMenuDelete(){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 获取第三方自定义菜单 ****************************************************/ public function wxMenuGetInfo(){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信客服接口 - Add 添加客服人员 ****************************************************/ public function wxServiceAdd($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/customservice/kfaccount/add?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信客服接口 - Update 编辑客服人员 ****************************************************/ public function wxServiceUpdate($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/customservice/kfaccount/update?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信客服接口 - Delete 删除客服人员 ****************************************************/ public function wxServiceDelete($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/customservice/kfaccount/del?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /******************************************************* * 微信客服接口 - 上传头像 *******************************************************/ public function wxServiceUpdateCover($kf_account, $media = '') { $wxAccessToken = $this->wxAccessToken(); //$data['access_token'] = $wxAccessToken; $data['media'] = '@D:\\workspace\\htdocs\\yky_test\\logo.jpg'; $url = "https:// api.weixin.qq.com/customservice/kfaccount/uploadheadimg?access_token=".$wxAccessToken."&kf_account=".$kf_account; $result = $this->wxHttpsRequest($url,$data); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信客服接口 - 获取客服列表 ****************************************************/ public function wxServiceList(){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/customservice/getkflist?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信客服接口 - 获取在线客服接待信息 ****************************************************/ public function wxServiceOnlineList(){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/customservice/getonlinekflist?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信客服接口 - 客服发送信息 ****************************************************/ public function wxServiceSend($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信客服会话接口 - 创建会话 ****************************************************/ public function wxServiceSessionAdd($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/customservice/kfsession/create?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信客服会话接口 - 关闭会话 ****************************************************/ public function wxServiceSessionClose(){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/customservice/kfsession/close?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信客服会话接口 - 获取会话 ****************************************************/ public function wxServiceSessionGet($openId){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/customservice/kfsession/getsession?access_token=".$wxAccessToken."&openid=" . $openId; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信客服会话接口 - 获取会话列表 ****************************************************/ public function wxServiceSessionList($kf_account){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/customservice/kfsession/getsessionlist?access_token=".$wxAccessToken."&kf_account=" . $kf_account ; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信客服会话接口 - 未接入会话 ****************************************************/ public function wxServiceSessionWaitCase(){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/customservice/kfsession/getwaitcase?access_token=".$wxAccessToken; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信摇一摇 - 申请设备ID ****************************************************/ public function wxDeviceApply($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/shakearound/device/applyid?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信摇一摇 - 编辑设备ID ****************************************************/ public function wxDeviceUpdate($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/shakearound/device/update?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信摇一摇 - 本店关联设备 ****************************************************/ public function wxDeviceBindLocation($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/shakearound/device/bindlocation?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信摇一摇 - 查询设备列表 ****************************************************/ public function wxDeviceSearch($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/shakearound/device/search?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信摇一摇 - 新增页面 ****************************************************/ public function wxPageAdd($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/shakearound/page/add?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信摇一摇 - 编辑页面 ****************************************************/ public function wxPageUpdate($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/shakearound/page/update?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信摇一摇 - 查询页面 ****************************************************/ public function wxPageSearch($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/shakearound/page/search?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信摇一摇 - 删除页面 ****************************************************/ public function wxPageDelete($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/shakearound/page/delete?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /******************************************************* * 微信摇一摇 - 上传图片素材 *******************************************************/ public function wxMaterialAdd($media = '') { $wxAccessToken = $this->wxAccessToken(); //$data['access_token'] = $wxAccessToken; $data['media'] = '@D:\\workspace\\htdocs\\yky_test\\logo.jpg'; $url = "https://api.weixin.qq.com/shakearound/material/add?access_token=".$wxAccessToken; $result = $this->wxHttpsRequest($url,$data); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信摇一摇 - 配置设备与页面的关联关系 ****************************************************/ public function wxDeviceBindPage($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/shakearound/device/bindpage?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信摇一摇 - 获取摇周边的设备及用户信息 ****************************************************/ public function wxGetShakeInfo($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/shakearound/user/getshakeinfo?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /**************************************************** * 微信摇一摇 - 以设备为维度的数据统计接口 ****************************************************/ public function wxGetShakeStatistics($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/shakearound/statistics/device?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /***************************************************** * 生成随机字符串 - 最长为32位字符串 *****************************************************/ public function wxNonceStr($length = 16, $type = FALSE) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str = ""; for ($i = 0; $i < $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } if($type == TRUE){ return strtoupper(md5(time() . $str)); } else { return $str; } } /******************************************************* * 微信商户订单号 - 最长28位字符串 *******************************************************/ public function wxMchBillno($mchid = NULL) { if(is_null($mchid)){ if(self::mchid == "" || is_null(self::mchid)){ $mchid = time(); } else{ $mchid = self::mchid; } } else{ $mchid = substr(addslashes($mchid),0,10); } return date("Ymd",time()).time().$mchid; } /******************************************************* * 微信格式化数组变成参数格式 - 支持url加密 *******************************************************/ public function wxSetParam($parameters){ if(is_array($parameters) && !empty($parameters)){ $this->parameters = $parameters; return $this->parameters; } else{ return array(); } } /******************************************************* * 微信格式化数组变成参数格式 - 支持url加密 *******************************************************/ public function wxFormatArray($parameters = NULL, $urlencode = FALSE){ if(is_null($parameters)){ $parameters = $this->parameters; } $restr = "";//初始化空 ksort($parameters);//排序参数 foreach ($parameters as $k => $v){//循环定制参数 if (null != $v && "null" != $v && "sign" != $k) { if($urlencode){//如果参数需要增加URL加密就增加,不需要则不需要 $v = urlencode($v); } $restr .= $k . "=" . $v . "&";//返回完整字符串 } } if (strlen($restr) > 0) {//如果存在数据则将最后"&"删除 $restr = substr($restr, 0, strlen($restr)-1); } return $restr;//返回字符串 } /******************************************************* * 微信MD5签名生成器 - 需要将参数数组转化成为字符串[wxFormatArray方法] *******************************************************/ public function wxMd5Sign($content, $privatekey){ try { if (is_null($privatekey)) { throw new Exception("财付通签名key不能为空!"); } if (is_null($content)) { throw new Exception("财付通签名内容不能为空"); } $signStr = $content . "&key=" . $privatekey; return strtoupper(md5($signStr)); } catch (Exception $e) { die($e->getMessage()); } } /******************************************************* * 微信Sha1签名生成器 - 需要将参数数组转化成为字符串[wxFormatArray方法] *******************************************************/ public function wxSha1Sign($content){ try { if (is_null($content)) { throw new Exception("签名内容不能为空"); } //$signStr = $content; return sha1($content); } catch (Exception $e) { die($e->getMessage()); } } /******************************************************* * 微信jsApi整合方法 - 通过调用此方法获得jsapi数据 *******************************************************/ public function wxJsapiPackage(){ $jsapi_ticket = $this->wxVerifyJsApiTicket(); // 注意 URL 一定要动态获取,不能 hardcode. $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url = $protocol.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]; $timestamp = time(); $nonceStr = $this->wxNonceStr(); $signPackage = array( "jsapi_ticket" => $jsapi_ticket, "nonceStr" => $nonceStr, "timestamp" => $timestamp, "url" => $url ); // 这里参数的顺序要按照 key 值 ASCII 码升序排序 $rawString = "jsapi_ticket=$jsapi_ticket&noncestr=$nonceStr×tamp=$timestamp&url=$url"; //$rawString = $this->wxFormatArray($signPackage); $signature = $this->wxSha1Sign($rawString); $signPackage['signature'] = $signature; $signPackage['rawString'] = $rawString; $signPackage['appId'] = self::appId; return $signPackage; } /******************************************************* * 微信卡券:JSAPI 卡券Package - 基础参数没有附带任何值 - 再生产环境中需要根据实际情况进行修改 *******************************************************/ public function wxCardPackage($cardId , $timestamp = ''){ $api_ticket = $this->wxVerifyJsApiTicket(); if(!empty($timestamp)){ $timestamp = $timestamp; } else{ $timestamp = time(); } $arrays = array(self::appSecret,$timestamp,$cardId); sort($arrays , SORT_STRING); //print_r($arrays); //echo implode("",$arrays)."
"; $string = sha1(implode($arrays)); //echo $string; $resultArray['cardId'] = $cardId; $resultArray['cardExt'] = array(); $resultArray['cardExt']['code'] = ''; $resultArray['cardExt']['openid'] = ''; $resultArray['cardExt']['timestamp'] = $timestamp; $resultArray['cardExt']['signature'] = $string; //print_r($resultArray); return $resultArray; } /******************************************************* * 微信卡券:JSAPI 卡券全部卡券 Package *******************************************************/ public function wxCardAllPackage($cardIdArray = array(),$timestamp = ''){ $reArrays = array(); if(!empty($cardIdArray) && (is_array($cardIdArray) || is_object($cardIdArray))){ //print_r($cardIdArray); foreach($cardIdArray as $value){ //print_r($this->wxCardPackage($value,$openid)); $reArrays[] = $this->wxCardPackage($value,$timestamp); } //print_r($reArrays); } else{ $reArrays[] = $this->wxCardPackage($cardIdArray,$timestamp); } return strval(json_encode($reArrays)); } /******************************************************* * 微信卡券:获取卡券列表 *******************************************************/ public function wxCardListPackage($cardType = "" , $cardId = ""){ //$api_ticket = $this->wxVerifyJsApiTicket(); $resultArray = array(); $timestamp = time(); $nonceStr = $this->wxNonceStr(); //$strings = $arrays = array(self::appId,self::appSecret,$timestamp,$nonceStr); sort($arrays , SORT_STRING); $string = sha1(implode($arrays)); $resultArray['app_id'] = self::appId; $resultArray['card_sign'] = $string; $resultArray['time_stamp'] = $timestamp; $resultArray['nonce_str'] = $nonceStr; $resultArray['card_type'] = $cardType; $resultArray['card_id'] = $cardId; return $resultArray; } /******************************************************* * 将数组解析XML - 微信红包接口 *******************************************************/ public function wxArrayToXml($parameters = NULL){ if(is_null($parameters)){ $parameters = $this->parameters; } if(!is_array($parameters) || empty($parameters)){ die("参数不为数组无法解析"); } $xml = ""; foreach ($arr as $key=>$val) { if (is_numeric($val)) { $xml.="<".$key.">".$val."".$key.">"; } else $xml.="<".$key.">".$key.">"; } $xml.=" "; return $xml; } /******************************************************* * 微信卡券:上传LOGO - 需要改写动态功能 *******************************************************/ public function wxCardUpdateImg() { $wxAccessToken = $this->wxAccessToken(); //$data['access_token'] = $wxAccessToken; $data['buffer'] = '@D:\\workspace\\htdocs\\yky_test\\logo.jpg'; $url = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=".$wxAccessToken; $result = $this->wxHttpsRequest($url,$data); $jsoninfo = json_decode($result, true); return $jsoninfo; //array(1) { ["url"]=> string(121) "http://mmbiz.qpic.cn/mmbiz/ibuYxPHqeXePNTW4ATKyias1Cf3zTKiars9PFPzF1k5icvXD7xW0kXUAxHDzkEPd9micCMCN0dcTJfW6Tnm93MiaAfRQ/0" } } /******************************************************* * 微信卡券:获取颜色 *******************************************************/ public function wxCardColor(){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/card/getcolors?access_token=".$wxAccessToken; $result = $this->wxHttpsRequest($url); $jsoninfo = json_decode($result, true); return $jsoninfo; } /******************************************************* * 微信卡券:拉取门店列表 *******************************************************/ public function wxBatchGet($offset = 0, $count = 0){ $jsonData = json_encode(array('offset' => intval($offset) , 'count' => intval($count))); $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/card/location/batchget?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /******************************************************* * 微信卡券:创建卡券 *******************************************************/ public function wxCardCreated($jsonData) { $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/card/create?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /******************************************************* * 微信卡券:查询卡券详情 *******************************************************/ public function wxCardGetInfo($jsonData) { $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/card/get?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /******************************************************* * 微信卡券:设置白名单 *******************************************************/ public function wxCardWhiteList($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/card/testwhitelist/set?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /******************************************************* * 微信卡券:消耗卡券 *******************************************************/ public function wxCardConsume($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/card/code/consume?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /******************************************************* * 微信卡券:删除卡券 *******************************************************/ public function wxCardDelete($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/card/delete?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /******************************************************* * 微信卡券:选择卡券 - 解析CODE *******************************************************/ public function wxCardDecryptCode($jsonData){ $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/card/code/decrypt?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /******************************************************* * 微信卡券:更改库存 *******************************************************/ public function wxCardModifyStock($cardId , $increase_stock_value = 0 , $reduce_stock_value = 0){ if(intval($increase_stock_value) == 0 && intval($reduce_stock_value) == 0){ return false; } $jsonData = json_encode(array("card_id" => $cardId , 'increase_stock_value' => intval($increase_stock_value) , 'reduce_stock_value' => intval($reduce_stock_value))); $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/card/modifystock?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } /******************************************************* * 微信卡券:查询用户CODE *******************************************************/ public function wxCardQueryCode($code , $cardId = ''){ $jsonData = json_encode(array("code" => $code , 'card_id' => $cardId )); $wxAccessToken = $this->wxAccessToken(); $url = "https://api.weixin.qq.com/card/code/get?access_token=" . $wxAccessToken; $result = $this->wxHttpsRequest($url,$jsonData); $jsoninfo = json_decode($result, true); return $jsoninfo; } }
分享实例:
wxOauthAccessToken($CODE); //print_r($Info); $openId = $Info['openid']; } $signPackage = $wx->wxJsapiPackage();?>JSAPI接口测试
token = $token; } public function wcCheckSignature(){ try{ if (empty($this->token)) { throw new Exception('TOKEN is not defined!'); } $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = $this->token; $tmpArr = array($token, $timestamp, $nonce); // use SORT_STRING rule sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } catch (Exception $e) { echo 'Message: ' .$e->getMessage(); } } public function wcValid(){ $echoStr = isset($_GET["echostr"]) && !empty($_GET["echostr"]) ? addslashes($_GET["echostr"]) : NULL; if(is_null($echoStr)){ $this->wcMsg(); } else{ //valid signature , option if($this->wcCheckSignature()){ echo $echoStr; exit; } else{ exit(); } } } public function wcMsg(){ //get post data, May be due to the different environments $postStr = isset($GLOBALS["HTTP_RAW_POST_DATA"]) && !empty($GLOBALS["HTTP_RAW_POST_DATA"]) ? $GLOBALS["HTTP_RAW_POST_DATA"] : ""; if(!empty($postStr)){ libxml_disable_entity_loader(true); $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $this->zcLog(TRUE,$postObj); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $MsgType = $postObj->MsgType; if($MsgType == 'event'){//执行事件相应 $Event = $postObj->Event; switch ($Event) { case 'subscribe'://关注 break; case 'unsubscribe'://取消关注 break; case 'SCAN'://扫描 break; case 'LOCATION'://地址 break; case 'CLICK'://点击时间 break; case 'VIEW'://跳转 break; case 'card_pass_check'://卡券审核通过 break; case 'card_not_pass_check'://卡券审核失败 break; case 'user_get_card'://用户领取卡券 break; case 'user_del_card'://用户删除卡券 break; case 'user_view_card'://用户浏览会员卡 break; case 'user_consume_card'://用户核销卡券 break; case 'kf_create_session'://创建会话 break; case 'kf_close_session'://关闭会话 break; case 'kf_switch_session'://转接会话 break; default: break; } } else{ switch ($MsgType) { case 'text'://文本格式 break; case 'image'://图片格式 break; case 'voice'://声音 break; case 'video'://视频 break; case 'shortvideo'://小视频 break; case 'location'://上传地理位置 break; case 'link'://链接相应 break; default: break; } } //////////////////////////////////////////////////////////////////// $keyword = trim($postObj->Content); $time = time(); $textTpl = ""; if(!empty( $keyword )){ $msgType = "text"; $contentStr = "Welcome to wechat world!"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; } else{ echo "Input something..."; } //////////////////////////////////////////////////////////////////// } else{ echo "暂时没有任何信息!"; exit; } } //日志LOG public function zcLog($errcode , $errmsg){ $this->returnAy = array(); $this->returnAy['errcode'] = $errcode; $this->returnAy['errmsg'] = $errmsg; $this->returnAy['errtime'] = date("Y-m-d H:i:s",time()); $logfile = fopen("logfile_".date("Ymd",time()).".txt", "a+"); $txt = json_encode($this->returnAy)."\n"; fwrite($logfile, $txt); fclose($logfile); //return $this->returnAy; } } %s 0
到此,相信大家对"有哪些php官方微信接口"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
接口
信息
用户
参数
字符
字符串
内容
设备
页面
数组
查询
生成
数据
方法
格式
菜单
官方
人员
朋友
事件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
僵尸毁灭工程突然没服务器了
网络安全防勒索公司
数据库中的隔离级别有哪些
网络版点歌服务器安装
软件开发的领导表扬
直播服务器管理员
万方医学数据库评价
泰安智慧城管软件开发系统
大班幼儿网络安全目标
服务器存储类型
李沧区电商软件开发公司
怎么看论文属于哪个数据库
mysql数据库复制建表
哪些数据库提供同行评审
如何查看服务器性能占用率
空岛战争服务器下载
汉硕互联网科技有限公司
手机mc国际服宝可梦服务器
勤得网络技术
稳定不抽风服务器
统计局举措做好网络安全
如何让自己的电脑当服务器
代抢系统服务器位置有限制
软件开发的开发质量
我的世界水云间服务器
esm终端安全服务器配置要求
网络安全班会布置
无锡先导激光软件开发
我国网络安全形势严峻
湖南省网络安全演练