最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信公眾號(hào)開(kāi)發(fā)之微信公共平臺(tái)消息回復(fù)類(lèi)實(shí)例

 更新時(shí)間:2014年11月14日 17:04:54   投稿:shichen2014  
這篇文章主要介紹了微信公眾號(hào)開(kāi)發(fā)之微信公共平臺(tái)消息回復(fù)類(lèi),給出了其完整實(shí)例,并附有注釋說(shuō)明便于理解與運(yùn)用,對(duì)于微信公眾號(hào)的開(kāi)發(fā)來(lái)說(shuō)非常具有參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了微信公眾號(hào)開(kāi)發(fā)之微信公共平臺(tái)消息回復(fù)類(lèi)。分享給大家供大家參考。具體如下:

微信公眾號(hào)開(kāi)發(fā)代碼我在網(wǎng)上看到了有不少,其實(shí)都是大同小義了都是參考官方給出的demo文件進(jìn)行修改的,這里就給各位分享一個(gè)。

復(fù)制代碼 代碼如下:

<?php
/**
 * 微信公共平臺(tái)消息回復(fù)類(lèi)
 *
 *
 */
class BBCweixin{
 
 private $APPID="******";
 private $APPSECRET="******";
 /*
  *文本消息回復(fù)
  *@param array object
  *@param string content
  *@return string
  */
 public function resText($object,$content,$flag=0){
  $xmlText="<xml>
                  <ToUserName><![CDATA[%s]]></ToUserName>
                  <FromUserName><![CDATA[%s]]></FromUserName>
                  <CreateTime>%s</CreateTime>
                  <MsgType><![CDATA[text]]></MsgType>
                  <Content><![CDATA[%s]]></Content>
                  <FuncFlag>%d</FuncFlag>
                  </xml>";
     $resultStr=sprintf($xmlText,$object->FromUserName,$object->ToUserName,time(),$content,$flag);
  echo $resultStr;exit();
 }
 /*
  *圖片消息回復(fù)
  *@param array object
  *@param string url
  *@return string
  */
 public function resImage($object,$media_id){
  $xmlImage="<xml>";
  $xmlImage.="<ToUserName><![CDATA[%s]]></ToUserName>";
  $xmlImage.="<FromUserName><![CDATA[%s]]></FromUserName>";
  $xmlImage.="<CreateTime>%s</CreateTime>";
  $xmlImage.="<MsgType><![CDATA[image]]></MsgType>";
  $xmlImage.="<Image><MediaId><![CDATA[%s]]></MediaId></Image>";
  $xmlImage.="</xml>";
  $resultStr=sprintf($xmlImage,$object->FromUserName,$object->ToUserName,time(),$media_id);
  echo $resultStr;exit();
 }
 /*
  *圖文消息回復(fù)
  *@param array object
  *@param array newsData 二維數(shù)組 必須包含[Title][Description][PicUrl][Url]字段
  *@return string
  */
 public function resNews($object,$newsData=array()){
     $CreateTime=time();
     $FuncFlag=0;
     $newTplHeader="<xml>
        <ToUserName><![CDATA[{$object->FromUserName}]]></ToUserName>
        <FromUserName><![CDATA[{$object->ToUserName}]]></FromUserName>
        <CreateTime>{$CreateTime}</CreateTime>
        <MsgType><![CDATA[news]]></MsgType>
        <Content><![CDATA[%s]]></Content>
        <ArticleCount>%s</ArticleCount><Articles>";
     $newTplItem="<item>
      <Title><![CDATA[%s]]></Title>
      <Description><![CDATA[%s]]></Description>
      <PicUrl><![CDATA[%s]]></PicUrl>
      <Url><![CDATA[%s]]></Url>
      </item>";
     $newTplFoot="</Articles>
      <FuncFlag>%s</FuncFlag>
      </xml>";
     $Content='';
     $itemsCount=count($newsData);
     $itemsCount=$itemsCount<10?$itemsCount:10;//微信公眾平臺(tái)圖文回復(fù)的消息一次最多10條
     if($itemsCount){
      foreach($newsData as $key=>$item){
       if($key<=9){
      $Content.=sprintf($newTplItem,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']);
    }
      }
  }
     $header=sprintf($newTplHeader,0,$itemsCount);
     $footer=sprintf($newTplFoot,$FuncFlag);
     echo $header.$Content.$footer;exit();
 }
 
 /*
  *音樂(lè)消息回復(fù)
  *@param array object
  *@param array musicContent 二維數(shù)組 包含[Title][Description][MusicUrl][HQMusicUrl]字段
  *@return string
  */
 public function resMusic($object,$musicContent=array()){
   $xmlMusic="<xml>
                    <ToUserName><![CDATA[%s]]></ToUserName>
                    <FromUserName><![CDATA[%s]]></FromUserName>
                    <CreateTime>%s</CreateTime>
                    <MsgType><![CDATA[music]]></MsgType>
                    <Music>
     <Title><![CDATA[%s]]></Title>
                    <Description><![CDATA[%s]]></Description>
                    <MusicUrl><![CDATA[%s]]></MusicUrl>
                    <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
                    </Music>
                    </xml>";
  if(empty($musicContent[0]['HQMusicUrl'])){
   $musicContent[0]['HQMusicUrl']=$musicContent[0]['MusicUrl'];
  }
  $resultStr=sprintf($xmlMusic,$object->FromUserName,$object->ToUserName,time(),$musicContent[0]['Title'],$musicContent[0]['Description'],$musicContent[0]['MusicUrl'],$musicContent[0]['HQMusicUrl']);
  echo $resultStr;exit();
 }
 /*
  *上傳多媒體文件接口
  *@param
  *@param array mediaArr filename、filelength、content-type
  *@return object
  */
 public function uploadMedia($accessToken,$type='image',$mediaArr){
  $url="http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=".$accessToken."&type=".$type;
  $doPost=self::curlPost($mediaArr,$url);
  return $doPost;
 }
 /*
  *GPS,谷歌坐標(biāo)轉(zhuǎn)換成百度坐標(biāo)
  *@param lnt
  *@param lat
  *@return array
  */
 public function mapApi($lng,$lat,$type){
  $map=array();
  if($type=='gps'){
   $url="http://map.yanue.net/gpsApi.php?lat=".$lat."&lng=".$lng;
   $res=json_decode(file_get_contents($url));
   $map['lng']=$res->baidu->lng;
   $map['lat']=$res->baidu->lat;
  }
  if($type=='google'){
   $url="http://api.map.baidu.com/ag/coord/convert?from=2&to=4&mode=1&x=".$lng."&y=".$lat;
   $res=json_decode(file_get_contents($url));
   $map['lng']=base64_decode($res[0]->x);
   $map['lat']=base64_decode($res[0]->y);
  }
  return $map;
 }
 
 /**************************************************************
  *
  *  使用特定function對(duì)數(shù)組中所有元素做處理
  *  @param  string  &$array     要處理的字符串
  *  @param  string  $function   要執(zhí)行的函數(shù)
  *  @return boolean $apply_to_keys_also     是否也應(yīng)用到key上
  *  @access public
  *
  *************************************************************/
 public function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
 {
  static $recursive_counter = 0;
  if (++$recursive_counter > 1000) {
   die('possible deep recursion attack');
  }
  foreach ($array as $key => $value) {
   if (is_array($value)) {
    self::arrayRecursive($array[$key], $function, $apply_to_keys_also);
   } else {
    $array[$key] = $function($value);
   }
 
   if ($apply_to_keys_also && is_string($key)) {
    $new_key = $function($key);
    if ($new_key != $key) {
     $array[$new_key] = $array[$key];
     unset($array[$key]);
    }
   }
  }
  $recursive_counter--;
 }
 
 /**************************************************************
  *
  *  將數(shù)組轉(zhuǎn)換為JSON字符串(兼容中文)
  *  @param  array   $array      要轉(zhuǎn)換的數(shù)組
  *  @return string      轉(zhuǎn)換得到的json字符串
  *  @access public
  *
  *************************************************************/
 public function JSON($array) {
  self::arrayRecursive($array, 'urlencode', true);
  $json = json_encode($array);
  return urldecode($json);
 }
 /*
  *創(chuàng)建菜單
  *
  */
 public function creatMenu($shop_id,$data){
  $jsonArray=self::JSON($data);
  $AccessToken=self::accessToken($weiXin[0]['key'],$weiXin[0]['secret']);
  $MENU_URL="https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$AccessToken;
  return self::curlPost($jsonArray,$MENU_URL);
 }
 /*
  *客服消息回復(fù)
  *@param array jsonArray Array {"touser":"OPENID","msgtype":"text","text":{"content":"Hello World"}}
  *@return string
  */
 
  public function customService($jsonArray,$hash){
  if(empty($jsonArray)){
   return false;
  }
  $db=M();
  $sql="select * from bbc_wechats where hash='".$hash."'";
  $weChast=$db->query($sql);
  $AccessToken=self::accessToken($weChast[0]['key'],$weChast[0]['secret']);
  $TokenUrl="https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$AccessToken;
     $CustomRes=self::curlPost($jsonArray,$TokenUrl);
  return $CustomRes;
  }
  /*
 
   *獲取access_token
   *@return objectStr
   */
  public function accessToken($appid,$secret){
   $access_token=BBCcache::getCache('accesstoken'.$appid);
   if($access_token){
    $AccessTokenRet=$access_token;
   }else{
    $TookenUrl="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";
    $AccessTokenRes=@file_get_contents($TookenUrl);
    $AccessToken=json_decode($AccessTokenRes);
    $AccessTokenRet=$AccessToken->access_token;
    BBCcache::setCache('accesstoken'.$appid,$AccessToken->access_token,3600);
   }
   return $AccessTokenRet;
  }
  /*
   *向遠(yuǎn)程接口POST數(shù)據(jù)
   *@data Array {"touser":"OPENID","msgtype":"text","text":{"content":"Hello World"}}
   *@return objectArray
   */
  public function curlPost($data,$url){
    $ch = curl_init();
 
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
   curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
   curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
   $info = curl_exec($ch);
 
   if (curl_errno($ch)) {
    echo 'Errno'.curl_error($ch);
   }
 
   curl_close($ch);
   return json_decode($info);
  }
 //根據(jù)經(jīng)緯度計(jì)算距離和方向
 function getRadian($d){
  return $d * M_PI / 180;
 }
 
 function getDistance ($lat1, $lng1, $lat2, $lng2){
  $EARTH_RADIUS=6378.137;//地球半徑
  $lat1 =getRadian($lat1);
  $lat2 = getRadian($lat2);
 
  $a = $lat1 - $lat2;
  $b = getRadian($lng1) - getRadian($lng2);
 
  $v = 2 * asin(sqrt(pow(sin($a/2),2) + cos($lat1) * cos($lat2) * pow(sin($b/2),2)));
 
  $v = round($EARTH_RADIUS * $v * 10000) / 10000;
 
  return $v;
 }
}
?>

希望本文所述對(duì)大家基于PHP的微信公眾號(hào)開(kāi)發(fā)有所幫助。

  • 完美實(shí)現(xiàn)GIF動(dòng)畫(huà)縮略圖的php代碼

    完美實(shí)現(xiàn)GIF動(dòng)畫(huà)縮略圖的php代碼

    縮略圖是個(gè)很常用的功能。它的實(shí)現(xiàn)并不復(fù)雜,但如果原圖是GIF動(dòng)畫(huà)的話,問(wèn)題就會(huì)變得繁瑣一點(diǎn)。
    2011-01-01
  • 一個(gè)完整的PHP類(lèi)包含的七種語(yǔ)法說(shuō)明

    一個(gè)完整的PHP類(lèi)包含的七種語(yǔ)法說(shuō)明

    這篇文章主要介紹了一個(gè)完整的PHP類(lèi)包含的七種語(yǔ)法說(shuō)明,這些語(yǔ)法包括屬性、靜態(tài)屬性、方法、靜態(tài)方法、類(lèi)常量、構(gòu)造函數(shù)、析構(gòu)函數(shù),本文一一給代碼示例和詳細(xì)注解讓你快速了解類(lèi)的寫(xiě)法,需要的朋友可以參考下
    2015-06-06
  • php有效防止同一用戶(hù)多次登錄

    php有效防止同一用戶(hù)多次登錄

    這篇文章主要介紹了php有效防止同一賬號(hào)同一時(shí)間多次登錄的方法,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 解析php利用正則表達(dá)式解決采集內(nèi)容排版的問(wèn)題

    解析php利用正則表達(dá)式解決采集內(nèi)容排版的問(wèn)題

    本篇文章是對(duì)php利用正則表達(dá)式解決采集內(nèi)容排版問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php 下載保存文件保存到本地的兩種實(shí)現(xiàn)方法

    php 下載保存文件保存到本地的兩種實(shí)現(xiàn)方法

    以下是對(duì)php下載保存文件保存到本地的兩種實(shí)現(xiàn)方法進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08
  • PHP入門(mén)教程之PHP操作MySQL的方法分析

    PHP入門(mén)教程之PHP操作MySQL的方法分析

    這篇文章主要介紹了PHP操作MySQL的方法,結(jié)合實(shí)例形式分析了php針對(duì)mysql數(shù)據(jù)庫(kù)的基本連接、查詢(xún)、修改、更新及刪除等常見(jiàn)技巧,并附帶了Zend開(kāi)發(fā)環(huán)境的編碼設(shè)置方法說(shuō)明,需要的朋友可以參考下
    2016-09-09
  • PHP中json浮點(diǎn)精度的解決方法

    PHP中json浮點(diǎn)精度的解決方法

    這篇文章主要帶大家一起深入研究下PHP的json中,浮點(diǎn)型的精度該如何保留的問(wèn)題,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,希望對(duì)大家有所幫助
    2024-10-10
  • php+mysql+jquery實(shí)現(xiàn)日歷簽到功能

    php+mysql+jquery實(shí)現(xiàn)日歷簽到功能

    本文主要介紹了php+mysql+jquery實(shí)現(xiàn)日歷簽到功能的過(guò)程與步驟,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • 最新評(píng)論

    梅州市| 南宫市| 沂南县| 连平县| 河津市| 交城县| 兴仁县| 陆川县| 鄯善县| 清徐县| 西华县| 儋州市| 台江县| 尖扎县| 开封县| 南阳市| 邵阳市| 文昌市| 琼海市| 溆浦县| 驻马店市| 张掖市| 哈尔滨市| 乌兰察布市| 阿拉善左旗| 元谋县| 乳源| 陈巴尔虎旗| 普兰店市| 广平县| 亚东县| 莒南县| 肇源县| 玉山县| 潞城市| 手游| 甘洛县| 聊城市| 天祝| 阿坝| 光山县|