>wechat對象對應的方法使用
## 主要功能
* 接入驗證**(初級權限)**
* 自動回復(文本、圖片、語音、視頻、音樂、圖文)**(初級權限)**
* 菜單操作(查詢、創建、刪除)**(菜單權限)**
* 客服消息(文本、圖片、語音、視頻、音樂、圖文)**(認證權限)**
* 二維碼(創建臨時、永久二維碼,獲取二維碼URL)**(服務號、認證權限)**
* 長鏈接轉短鏈接接口**(服務號、認證權限)**
* 分組操作(查詢、創建、修改、移動用戶到分組)**(認證權限)**
* 網頁授權(基本授權,用戶信息授權)**(服務號、認證權限)**
* 用戶信息(查詢用戶基本信息、獲取關注者列表)**(認證權限)**
* 多客服功能(客服管理、獲取客服記錄、客服會話管理)**(認證權限)**
* 媒體文件(上傳、獲取)**(認證權限)**
* 高級群發**(認證權限)**
* 模板消息(設置所屬行業、添加模板、發送模板消息)**(服務號、認證權限)**
* 卡券管理(創建、修改、刪除、發放、門店管理等)**(認證權限)**
* 語義理解**(服務號、認證權限)**
* 獲取微信服務器IP列表**(初級權限)**
* 微信JSAPI授權(獲取ticket、獲取簽名)**(初級權限)**
* 數據統計(用戶、圖文、消息、接口分析數據)**(認證權限)**
>備注:
初級權限:基本權限,任何正常的公眾號都有此權限
菜單權限:正常的服務號、認證后的訂閱號擁有此權限
認證權限:分為訂閱號、服務號認證,如前綴服務號則僅認證的服務號有此權限,否則為認證后的訂閱號、服務號都有此權限
支付權限:僅認證后的服務號可以申請此權限
### 初始化獲取對象
```
$options = array(
'token'=>'tokenaccesskey', //填寫你設定的key
'encodingaeskey'=>'encodingaeskey', //填寫加密用的EncodingAESKey
'appid'=>'wxdk1234567890', //填寫高級調用功能的app id, 請在微信開發模式后臺查詢
'appsecret'=>'xxxxxxxxxxxxxxxxxxx' //填寫高級調用功能的密鑰
);
//如果控制器繼承了user\Memberbase 類 或者user\Member 類 可以直接使用
$wechat = $this->wechat ;
//如果沒有繼承上邊2個類
$wechat = getWechat($options); //按照所傳的參數連接對應的公眾號
$wechat1 = getWechat();//按照cowcms后臺配置的公眾號連接
```
### 被動接口方法:
* valid() 驗證連接,被動接口處于加密模式時必須調用
* getRev() 獲取微信服務器發來信息(不返回結果),被動接口必須調用
* getRevData() 返回微信服務器發來的信息(數組)
* getRevFrom() 返回消息發送者的userid
* getRevTo() 返回消息接收者的id(即公眾號id)
* getRevType() 返回接收消息的類型
* getRevID() 返回消息id
* getRevCtime() 返回消息發送時間
* getRevContent() 返回消息內容正文或語音識別結果(文本型)
* getRevPic() 返回圖片信息(圖片型信息) 返回數組{'mediaid'=>'','picurl'=>''}
* getRevLink() 接收消息鏈接(鏈接型信息) 返回數組{'url'=>'','title'=>'','description'=>''}
* getRevGeo() 返回地理位置(位置型信息) 返回數組{'x'=>'','y'=>'','scale'=>'','label'=>''}
* getRevEventGeo() 返回事件地理位置(事件型信息) 返回數組{'x'=>'','y'=>'','precision'=>''}
* getRevEvent() 返回事件類型(事件型信息) 返回數組{'event'=>'','key'=>''}
* getRevScanInfo() 獲取自定義菜單的掃碼推事件信息,事件類型為`scancode_push`或`scancode_waitmsg`返回數組array ('ScanType'=>'qrcode','ScanResult'=>'123123')
* getRevSendPicsInfo() 獲取自定義菜單的圖片發送事件信息,事件類型為`pic_sysphoto`或`pic_photo_or_album`或`pic_weixin`數組結構見php文件內方法說明
* getRevSendGeoInfo() 獲取自定義菜單的地理位置選擇器事件推送,事件類型為`location_select`數組結構見php文件內方法說明
* getRevVoice() 返回語音信息(語音型信息) 返回數組{'mediaid'=>'','format'=>''}
* getRevVideo() 返回視頻信息(視頻型信息) 返回數組{'mediaid'=>'','thumbmediaid'=>''}
* getRevTicket() 返回接收TICKET(掃描帶參數二維碼,關注或SCAN事件) 返回二維碼的ticket值
* getRevSceneId() 返回二維碼的場景值(掃描帶參數二維碼的關注事件) 返回二維碼的參數值
* getRevTplMsgID() 返回主動推送的消息ID(群發或模板消息事件) 返回MsgID值
* getRevStatus() 返回模板消息發送狀態(模板消息事件) 返回文本:success(成功)|failed:user block(用戶拒絕接收)|failed: system failed(發送失敗(非用戶拒絕))
* getRevResult() 返回群發或模板消息發送結果(群發或模板消息事件) 返回數組,內容依事件類型而不同,參考開發文檔中群發、模板消息推送事件
* getRevKFCreate() 返回多客服-接入會話的客服賬號(多客服-接入會話事件) 返回文本型
* getRevKFClose() 返回多客服-處理會話的客服賬號(多客服-接入會話事件) 返回文本型
* getRevKFSwitch() 返回多客服-轉接會話信息(多客服-轉接會話事件) 返回數組 {'FromKfAccount' => '','ToKfAccount' => ''}
* getRevCardPass() 返回卡券-審核通過的卡券ID(卡券-卡券審核事件) 返回文本型
* getRevCardGet() 返回卡券-用戶領取卡券的相關信息(卡券-領取卡券事件) 返回數組{'CardId' => '','IsGiveByFriend' => '','UserCardCode' => ''}
* getRevCardDel() 返回卡券-用戶刪除卡券的相關信息(卡券-刪除卡券事件) 返回數組{'CardId' => '','UserCardCode' => ''}
* text($text) 設置文本型消息,參數:文本內容
* image($mediaid) 設置圖片型消息,參數:圖片的media\_id
* voice($mediaid) 設置語音型消息,參數:語音的media\_id
* video($mediaid='',$title,$description) 設置視頻型消息,參數:視頻的media\_id、標題、摘要
* music($title,$desc,$musicurl,$hgmusicurl='',$thumbmediaid='') 設置回復音樂,參數:音樂標題、音樂描述、音樂鏈接、高音質鏈接、縮略圖的媒體id
* news($newsData) 設置圖文型消息,參數:數組。數組結構見php文件內方法說明
* Message($msg = '',$append = false) 設置發送的消息(一般不需要調用這個方法)
* transfer\_customer\_service($customer\_account = '') 轉接多客服,如不指定客服可不提供參數,參數:指定客服的賬號
* reply() 將以上已經設置好的消息,回復給微信服務器 ,被動回復是自能回復一次,不建議使用,一般建議使用sendCustomMessage($data)
### 預定義常量列表:
~~~
////消息類型,使用實例調用getRevType()方法取得
const MSGTYPE_TEXT = 'text';
const MSGTYPE_IMAGE = 'image';
const MSGTYPE_LOCATION = 'location';
const MSGTYPE_LINK = 'link';
const MSGTYPE_EVENT = 'event';
const MSGTYPE_MUSIC = 'music';
const MSGTYPE_NEWS = 'news';
const MSGTYPE_VOICE = 'voice';
const MSGTYPE_VIDEO = 'video';
////事件類型,使用實例調用getRevEvent()方法取得
const EVENT_SUBSCRIBE = 'subscribe'; //訂閱
const EVENT_UNSUBSCRIBE = 'unsubscribe'; //取消訂閱
const EVENT_SCAN = 'SCAN'; //掃描帶參數二維碼
const EVENT_LOCATION = 'LOCATION'; //上報地理位置
const EVENT_MENU_VIEW = 'VIEW'; //菜單 - 點擊菜單跳轉鏈接
const EVENT_MENU_CLICK = 'CLICK'; //菜單 - 點擊菜單拉取消息
const EVENT_MENU_SCAN_PUSH = 'scancode_push'; //菜單 - 掃碼推事件(客戶端跳URL)
const EVENT_MENU_SCAN_WAITMSG = 'scancode_waitmsg'; //菜單 - 掃碼推事件(客戶端不跳URL)
const EVENT_MENU_PIC_SYS = 'pic_sysphoto'; //菜單 - 彈出系統拍照發圖
const EVENT_MENU_PIC_PHOTO = 'pic_photo_or_album'; //菜單 - 彈出拍照或者相冊發圖
const EVENT_MENU_PIC_WEIXIN = 'pic_weixin'; //菜單 - 彈出微信相冊發圖器
const EVENT_MENU_LOCATION = 'location_select'; //菜單 - 彈出地理位置選擇器
const EVENT_SEND_MASS = 'MASSSENDJOBFINISH'; //發送結果 - 高級群發完成
const EVENT_SEND_TEMPLATE = 'TEMPLATESENDJOBFINISH';//發送結果 - 模板消息發送結果
const EVENT_KF_SEESION_CREATE = 'kfcreatesession'; //多客服 - 接入會話
const EVENT_KF_SEESION_CLOSE = 'kfclosesession'; //多客服 - 關閉會話
const EVENT_KF_SEESION_SWITCH = 'kfswitchsession'; //多客服 - 轉接會話
const EVENT_CARD_PASS = 'card_pass_check'; //卡券 - 審核通過
const EVENT_CARD_NOTPASS = 'card_not_pass_check'; //卡券 - 審核未通過
const EVENT_CARD_USER_GET = 'user_get_card'; //卡券 - 用戶領取卡券
const EVENT_CARD_USER_DEL = 'user_del_card'; //卡券 - 用戶刪除卡券
~~~
### 主動接口方法:
* checkAuth($appid,$appsecret,$token) 此處傳入公眾后臺高級接口提供的appid和appsecret, 或者手動指定$token為access\_token。函數將返回access\_token操作令牌
* resetAuth($appid='') 刪除驗證數據
* resetJsTicket($appid='') 刪除JSAPI授權TICKET
* getJsTicket($appid='',$jsapi\_ticket='') 獲取JSAPI授權TICKET
* getJsSign($url, $timestamp=0, $noncestr='', $appid='') 獲取JsApi使用簽名信息數組,可只提供url地址
* createMenu($data) 創建菜單 $data菜單結構詳見**[自定義菜單創建接口](http://mp.weixin.qq.com/wiki/index.php?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95%E5%88%9B%E5%BB%BA%E6%8E%A5%E5%8F%A3)**
* getServerIp() 獲取微信服務器IP地址列表 返回數組array('127.0.0.1','127.0.0.1')
* getMenu() 獲取菜單
* deleteMenu() 刪除菜單
* uploadMedia($data, $type) 上傳臨時素材,有效期為3天(注意上傳大文件時可能需要先調用 set\_time\_limit(0) 避免超時)
* getMedia($media\_id,$is\_video=false) 獲取臨時素材(含接收到的音頻、視頻媒體文件)
* uploadForeverMedia($data, $type,$is\_video=false,$video\_info=array()) 上傳永久素材,可以在公眾平臺官網素材管理模塊中看到
* uploadForeverArticles($data) 上傳永久圖文素材
* updateForeverArticles($media\_id,$data,$index=0) 修改永久圖文素材(認證后的訂閱號可用)
* getForeverMedia($media\_id,$is\_video=false) 獲取永久素材
* delForeverMedia($media\_id) 刪除永久素材
* getForeverList($type,$offset,$count) 獲取永久素材列表(認證后的訂閱號可用)
* getForeverCount() 獲取永久素材總數
* uploadMpVideo($data) 上傳視頻素材,當需要群發視頻時,必須使用此方法得到的MediaID,否則無法顯示
* uploadArticles($data) 上傳圖文消息素材
* sendMassMessage($data) 高級群發消息
* sendGroupMassMessage($data) 高級群發消息(全體或分組群發)
* deleteMassMessage($msg\_id) 刪除群發圖文消息
* previewMassMessage($data) 預覽群發消息
* queryMassMessage($msg\_id) 查詢群發消息發送狀態
* getQRCode($scene\_id,$type=0,$expire=1800) 獲取推廣二維碼ticket字串
* getQRUrl($ticket) 獲取二維碼圖片地址
* getShortUrl($long\_url) 長鏈接轉短鏈接接口
* getUserList($next\_openid) 批量獲取關注用戶列表
* getUserInfo($openid) 獲取關注者詳細信息
* updateUserRemark($openid,$remark) 設置用戶備注名
* getGroup() 獲取用戶分組列表
* getUserGroup($openid) 獲取用戶所在分組
* createGroup($name) 新增自定分組
* updateGroup($groupid,$name) 更改分組名稱
* updateGroupMembers($groupid,$openid) 移動用戶分組
* batchUpdateGroupMembers($groupid,$openid\_list) 批量移動用戶分組
* sendCustomMessage($data) 發送客服消息
* getOauthRedirect($callback,$state,$scope) 獲取網頁授權oAuth跳轉地址
* getOauthAccessToken() 通過回調的code獲取網頁授權access\_token
* getOauthRefreshToken($refresh\_token) 通過refresh\_token對access\_token續期
* getOauthUserinfo($access\_token,$openid) 通過網頁授權的access\_token獲取用戶資料
* getOauthAuth($access\_token,$openid) 檢驗授權憑證access\_token是否有效
* getSignature($arrdata,'sha1') 生成簽名字串
* generateNonceStr($length=16) 獲取隨機字串
* setTMIndustry($id1,$id2='') 模板消息,設置所屬行業
* addTemplateMessage($tpl\_id) 模板消息,添加消息模板
* sendTemplateMessage($data) 發送模板消息
* 多客服接口:
* getCustomServiceMessage($data) 獲取多客服會話記錄
* transfer\_customer\_service($customer\_account) 轉發多客服消息
* getCustomServiceKFlist() 獲取多客服客服基本信息
* getCustomServiceOnlineKFlist() 獲取多客服在線客服接待信息
* createKFSession($openid,$kf\_account,$text='') 創建指定多客服會話
* closeKFSession($openid,$kf\_account,$text='') 關閉指定多客服會話
* getKFSession($openid) 獲取用戶會話狀態
* getKFSessionlist($kf\_account) 獲取指定客服的會話列表
* getKFSessionWait() 獲取未接入會話列表
* addKFAccount($account,$nickname,$password) 添加客服賬號
* updateKFAccount($account,$nickname,$password) 修改客服賬號信息
* deleteKFAccount($account) 刪除客服賬號
* setKFHeadImg($account,$imgfile) 上傳客服頭像
* querySemantic($uid,$query,$category,$latitude=0,$longitude=0,$city="",$region="") 語義理解接口 參數含義及返回的json內容請查看**[微信語義理解接口](http://mp.weixin.qq.com/wiki/index.php?title=%E8%AF%AD%E4%B9%89%E7%90%86%E8%A7%A3)**
* getDatacube($type,$subtype,$begin\_date,$end\_date='') 獲取統計數據 參數需注意$type與$subtype的定義
>獲取統計數據方法 參數定義
| 數據分類 | $type值(字符串) | 數據子分類 | $subtype值(字符串) | 時間跨度(天) |
| --- | :-: | --- | :-: | --: |
| 用戶分析 | 'user' | 獲取用戶增減數據 | 'summary' | 7 |
| 用戶分析 | 'user' | 獲取累計用戶數據 | 'cumulate' | 7 |
| 圖文分析 | 'article' | 獲取圖文群發每日數據 | 'summary' | 1 |
| 圖文分析 | 'article' | 獲取圖文群發總數據 | 'total' | 1 |
| 圖文分析 | 'article' | 獲取圖文統計數據 | 'read' | 3 |
| 圖文分析 | 'article' | 獲取圖文統計分時數據 | 'readhour' | 1 |
| 圖文分析 | 'article' | 獲取圖文分享轉發數據 | 'share' | 7 |
| 圖文分析 | 'article' | 獲取圖文分享轉發分時數據 | 'sharehour' | 1 |
| 消息分析 | 'upstreammsg' | 獲取消息發送概況數據 | 'summary' | 7 |
| 消息分析 | 'upstreammsg' | 獲取消息分送分時數據 | 'hour' | 1 |
| 消息分析 | 'upstreammsg' | 獲取消息發送周數據 | 'week' | 30 |
| 消息分析 | 'upstreammsg' | 獲取消息發送月數據 | 'month' | 30 |
| 消息分析 | 'upstreammsg' | 獲取消息發送分布數據 | 'dist' | 15 |
| 消息分析 | 'upstreammsg' | 獲取消息發送分布周數據 | 'distweek' | 30 |
| 消息分析 | 'upstreammsg' | 獲取消息發送分布月數據 | 'distmonth' | 30 |
| 接口分析 | 'interface' | 獲取接口分析數據 | 'summary' | 30 |
| 接口分析 | 'interface' | 獲取接口分析分時數據 | 'summaryhour' | 1 |
>[danger]注意`begin_date`和`end_date`的差值需小于“最大時間跨度”(比如最大時間跨度為1時,`begin_date`和`end_date`的差值只能為0,才能小于1)
> 卡券接口:
* createCard($data) 創建卡券
* updateCard($data) 修改卡券
* delCard($card\_id) 刪除卡券
* getCardInfo($card\_id) 查詢卡券詳情
* getCardColors() 獲取顏色列表
* getCardLocations() 拉取門店列表
* addCardLocations($data) 批量導入門店信息
* createCardQrcode($card\_id) 生成卡券二維碼
* consumeCardCode($code) 消耗 code
* decryptCardCode($encrypt\_code) code 解碼
* checkCardCode($code) 獲取 code 的有效性
* getCardIdList($data) 批量查詢卡列表
* updateCardCode($code,$card\_id,$new\_code) 更改 code
* unavailableCardCode($code,$card\_id='') 設置卡券失效\*\*(不可逆)\*\*
* modifyCardStock($data) 庫存修改
* activateMemberCard($data) 激活/綁定會員卡,參數結構請參看卡券開發文檔(6.1.1 激活/綁定會員卡)章節
* updateMemberCard($data) 會員卡交易,參數結構請參看卡券開發文檔(6.1.2 會員卡交易)章節
* updateLuckyMoney($code,$balance,$card\_id='') 更新紅包金額
* setCardTestWhiteList($openid=array(),$user=array()) 設置卡券測試白名單
> 搖一搖周邊接口:
* applyShakeAroundDevice($data) 申請設備ID
* updateShakeAroundDevice($data) 編輯設備的備注信息
* searchShakeAroundDevice($data) 查詢設備列表
* bindLocationShakeAroundDevice($device\_id,$poi\_id,$uuid='',$major=0,$minor=0) 配置設備與門店的關聯關系
* bindPageShakeAroundDevice($device\_id,$page\_ids=array(),$bind=1,$append=1,$uuid='',$major=0,$minor=0) 配置設備與頁面的關聯關系
* uploadShakeAroundMedia($data) 上傳在搖一搖頁面展示的圖片素材
* addShakeAroundPage($title,$description,$icon\_url,$page\_url,$comment='') 新增搖一搖出來的頁面信息
* updateShakeAroundPage($page\_id,$title,$description,$icon\_url,$page\_url,$comment='') 編輯搖一搖出來的頁面信息
* searchShakeAroundPage($page\_ids=array(),$begin=0,$count=1) 查詢搖一搖已有的頁面
* deleteShakeAroundPage($page\_ids=array()) 刪除搖一搖已有的頁面,必須是未與設備關聯的頁面
* getShakeInfoShakeAroundUser($ticket) 獲取搖周邊的設備及用戶信息
* deviceShakeAroundStatistics($device\_id,$begin\_date,$end\_date,$uuid='',$major=0,$minor=0) 以設備為維度的數據統計接口
* pageShakeAroundStatistics($page\_id,$begin\_date,$end\_date) 以頁面為維度的數據統計接口
- 序言
- 基礎
- 源碼包
- 核心包
- 完整包
- 系統模塊
- 安裝模塊
- 后臺模塊
- 插件模塊
- 插件開發
- 開發基礎
- 權限開發
- 菜單開發
- 開發調試
- 碎片開發
- 碎片鉤子預設表
- 插件說明
- 字段插件
- 插件介紹
- 字段使用
- 單行文本
- 多行文本
- 選項-下拉
- 選項-復選
- 選項-單選
- 選項-滑塊
- 顏色選擇器
- 星級評分
- 日期時間
- 文件上傳
- 編輯器
- API接口
- 微信插件
- 微信配置
- 公眾號配置
- 支付配置
- 微信支付使用
- API類庫
- 紅包發放
- 付款到零錢
- 碎片
- 公眾號碎片
- 紅包碎片
- 付款到零錢碎片
- API微信接口
- 支付寶插件
- 支付寶配置
- 支付寶支付使用
- api接口
- api接口后端開發
- api接口前端使用
- API參數接口
- 會員插件
- 登錄使用
- 會員碎片
- API會員接口
- API注冊接口
- 積分插件
- 積分設置
- 積分碎片
- API積分接口
- API提現接口
- API兌換接口
- API充值接口
- 訂單
- 訂單碎片
- API訂單接口
- 商城
- 商城鉤子
- API商城接口
- API商城會員接口
- 簽到
- 簽到設置
- 簽到碎片
- API簽到接口
- 上傳
- 上傳設置
- 上傳JS接口
- 推廣插件
- 海報設置
- API海報接口
- 文章插件
- 文章設置
- 文章鉤子
- API文章接口
- API文章會員接口
- 管理員
- 管理員碎片
- 站內信
- API站內信接口
- 雜項
- 菜單
- 菜單設置
- API菜單接口
- 錯誤碼
- 支付碎片
- 支付
- 充值
- 購買會員組
- 購買產品