萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> eaglephp使用微信api接口開發微信框架

eaglephp使用微信api接口開發微信框架

 EaglePHP框架開發微信5.0的API接口,包含微信5.0 API基礎接口、自定義菜單、高級接口,包括如下接收用戶消息、向用戶回復消息、會話界面自定義菜單、語音識別、客服接口等功能

適用平台:window/Linux 依賴項目:EaglePHP框架   包含微信5.0 API基礎接口、自定義菜單、高級接口,具體如下: 1、接收用戶消息。 2、向用戶回復消息。 3、接受事件推送。 4、會話界面自定義菜單。 5、語音識別。 6、客服接口。 7、OAuth2.0網頁授權。 8、生成帶參數二維碼。 9、獲取用戶地理位置。 10、獲取用戶基本信息。 11、獲取關注者列表。 12、用戶分組。     復制代碼 代碼如下: <?php /**  * 微信公眾平台API  */ class WeixinChat {    private $token;    private $appid;    private $appsecret;    private $access_token;    // 接收的數據  private $_receive = array();    private $_reply = '';    // 接口錯誤碼  private $errCode = '';    // 接口錯誤信息  private $errMsg = '';    // 微信oauth登陸獲取code  const CONNECT_OAUTH_AUTHORIZE_URL = 'https://open.weixin.qq.com/connect/oauth2/authorize?';    // 微信oauth登陸通過code換取網頁授權access_token  const SNS_OAUTH_ACCESS_TOKEN_URL = 'https://api.weixin.qq.com/sns/oauth2/access_token?';    // 微信oauth登陸刷新access_token(如果需要)  const SNS_OAUTH_REFRESH_TOKEN_URL = 'https://api.weixin.qq.com/sns/oauth2/refresh_token?';    // 通過ticket換取二維碼  const SHOW_QRCODE_URL = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?';    // 微信oauth登陸拉取用戶信息(需scope為 snsapi_userinfo)  const SNS_USERINFO_URL = 'https://api.weixin.qq.com/sns/userinfo?';    // 請求api前綴  const API_URL_PREFIX = 'https://api.weixin.qq.com/cgi-bin';    // 自定義菜單創建  const MENU_CREATE_URL = '/menu/create?';    // 自定義菜單查詢  const MENU_GET_URL = '/menu/get?';    // 自定義菜單刪除  const MENU_DELETE_URL = '/menu/delete?';    // 獲取 access_token  const AUTH_URL = '/token?grant_type=client_credential&';    // 獲取用戶基本信息  const USER_INFO_URL = '/user/info?';    // 獲取關注者列表  const USER_GET_URL = '/user/get?';    // 查詢分組  const GROUPS_GET_URL = '/groups/get?';     // 創建分組  const GROUPS_CREATE_URL = '/groups/create?';    // 修改分組名  const GROUPS_UPDATE_URL = '/groups/update?';    // 移動用戶分組  const GROUPS_MEMBERS_UPDATE_URL = '/groups/members/update?';    // 發送客服消息  const MESSAGE_CUSTOM_SEND_URL = '/message/custom/send?';    // 創建二維碼ticket  const QRCODE_CREATE_URL = '/qrcode/create?';        /**   * 初始化配置數據   * @param array $options   */  public function __construct($options)  {   $this->token = isset($options['token']) ? $options['token'] : '';   $this->appid = isset($options['appid']) ? $options['appid'] : '';   $this->appsecret = isset($options['appsecret']) ? $options['appsecret'] : '';  }      /**   * 獲取發來的消息   * 當普通微信用戶向公眾賬號發消息時,微信服務器將POST消息的XML數據包到開發者填寫的URL上。   */  public function getRev()  {   $postStr = file_get_contents('php://input');   if($postStr)   {    $this->_receive = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);    //Log::info(var_export($this->_receive, true));   }   return $this;  }      /**   * 獲取微信服務器發來的消息   */  public function getRevData()  {   return $this->_receive;  }      /**   * 獲取接收者   */  public function getRevTo()  {   return isset($this->_receive['ToUserName']) ? $this->_receive['ToUserName'] : false;  }      /**   * 獲取消息發送者(一個OpenID)   */  public function getRevFrom()  {   return isset($this->_receive['FromUserName']) ? $this->_receive['FromUserName'] : false;  }      /**   * 獲取接收消息創建時間 (整型)   */  public function getRevCTime()  {   return isset($this->_receive['CreateTime']) ? $this->_receive['CreateTime'] : false;  }      /**   * 獲取接收消息類型(text、image、voice、video、location、link、event)   */  public function getRevType()  {   return isset($this->_receive['MsgType']) ? $this->_receive['MsgType'] : false;  }      /**   * 獲取接收消息編號   */  public function getRevId()  {   return isset($this->_receive['MsgId']) ? $this->_receive['MsgId'] : false;  }      /**   * 獲取接收消息文本   * 通過語音識別接口,用戶發送的語音,將會同時給出語音識別出的文本內容。(需申請服務號的高級接口權限)   */  public function getRevText()  {   if(isset($this->_receive['Content'])) return trim($this->_receive['Content']);   elseif(isset($this->_receive['Recognition'])) return trim($this->_receive['Recognition']);   else return false;  }      /**   * 獲取接收圖片消息   */  public function getRevImage()  {   if(isset($this->_receive['PicUrl'])){    return array(         'picUrl' => $this->_receive['PicUrl'],  //圖片鏈接      'mediaId' => $this->_receive['MediaId'] //圖片消息媒體id,可以調用多媒體文件下載接口拉取數據。        );   }   return false;  }      /**   * 獲取接收語音消息   */  public function getRevVoice()  {   if(isset($this->_receive['MediaId'])){    return array(         'mediaId' => $this->_receive['MediaId'],  //語音消息媒體id,可以調用多媒體文件下載接口拉取數據。      'format' => $this->_receive['Format'] //語音格式,如amr,speex等        );   }   return false;  }      /**   * 獲取接收視頻消息   */  public function getRevVideo()  {   if(isset($this->_receive['MediaId'])){    return array(         'mediaId' => $this->_receive['MediaId'],       //視頻消息媒體id,可以調用多媒體文件下載接口拉取數據。      'thumbMediaId' => $this->_receive['ThumbMediaId']  //視頻消息縮略圖的媒體id,可以調用多媒體文件下載接口拉取數據。        );   }   return false;  }       /**   * 獲取用戶地理位置   */  public function getRevLocation()  {   if(isset($this->_receive['Location_X'])){    return array(         'locationX' => $this->_receive['Location_X'],  //地理位置維度      'locationY' => $this->_receive['Location_Y'],  //地理位置經度      'scale' => $this->_receive['Scale'], //地圖縮放大小      'label' => $this->_receive['Label'] //地理位置信息        );   }   //開通了上報地理位置接口的公眾號,用戶在關注後進入公眾號會話時,會彈框讓用戶確認是否允許公眾號使用其地理位置。   //彈框只在關注後出現一次,用戶以後可以在公眾號詳情頁面進行操作。   elseif(isset($this->_receive['Latitude']))    {    return array(         'latitude' => $this->_receive['Latitude'],  //地
copyright © 萬盛學電腦網 all rights reserved