好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Yii Framework框架開發微信公眾平臺示例

Yii Framework框架開發微信公眾平臺示例

熱門標簽:嘟嘟云外呼系統 辦理400電話哪家好點 正規電銷機器人系統 南京3D地圖標注 南寧電話外呼系統線路 邢臺400電話辦理 重慶外呼電銷系統多少錢 濟源百應電銷機器人聯系方式 咸陽電銷

本文實例講述了Yii Framework框架開發微信公眾平臺。分享給大家供大家參考,具體如下:

1. 先到微信公眾平臺注冊帳號

http://mp.weixin.qq.com

2. 下載demo

微信公眾平臺提供了一個十分“樸素”的demo,說明如何調用消息接口的。代碼真的很樸素,具體內容可到官網下載。

3. 按照Yii的規則,做一個extension。

這里命名為 weixin,目錄結構如下:

▾ extensions/
      ▾ weixin/
          Weixin.php*

Weixin.php代碼內容:

?php
 
/**
 * WeixinCallback 
 * 
 * @package 
 * @version $id$
 * @copyright 1997-2005 The PHP Group
 * @author davidhhuan@126.com
 * {@link a  rel="external nofollow" target="_blank">http://www.sharefamily.net/a>}
 */
class Weixin
{
  //$_GET參數
  public $signature;
  public $timest
  public $nonce;
  public $echostr;
  //
  public $token;
  public $debug = false;
  public $msg = array();
  public $setFlag = false;
 
  /**
   * __construct 
   * 
   * @param mixed $params 
   * @access public
   * @return void
   */
  public function __construct($params)
  {
    foreach ($params as $k1 => $v1)
    {
      if (property_exists($this, $k1))
      {
        $this->$k1 = $v1;
      }
    }
  }
   
  /**
   * valid 
   * 
   * @access public
   * @return void
   */
  public function valid()
  {
    //valid signature , option
    if($this->checkSignature()){
      echo $this->echostr;
      Yii::app()->end();
    }
  }
 
  /**
   * 獲得用戶發過來的消息(消息內容和消息類型 ) 
   * 
   * @access public
   * @return void
   */
  public function init()
  {
    $postStr = empty($GLOBALS["HTTP_RAW_POST_DATA"]) ? '' : $GLOBALS["HTTP_RAW_POST_DATA"];
    if ($this->debug) 
    {
      $this->log($postStr);
    }
    if (!empty($postStr)) {
      $this->msg = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
    }
  }
 
  /**
   * makeEvent 
   * 
   * @access public
   * @return void
   */
  public function makeEvent()
  {
     
  }
 
  /**
   * 回復文本消息 
   * 
   * @param string $text 
   * @access public
   * @return void
   */
  public function makeText($text='')
  {
    $createTime = time();
    $funcFlag = $this->setFlag ? 1 : 0;
    $textTpl = "xml>
      ToUserName>![CDATA[{$this->msg->FromUserName}]]>/ToUserName>
      FromUserName>![CDATA[{$this->msg->ToUserName}]]>/FromUserName>
      CreateTime>{$createTime}/CreateTime>
      MsgType>![CDATA[text]]>/MsgType>
      Content>![CDATA[%s]]>/Content>
      FuncFlag>%s/FuncFlag>
      /xml>";
    return sprintf($textTpl,$text,$funcFlag);
  }
   
  /**
   * 根據數組參數回復圖文消息 
   * 
   * @param array $newsData 
   * @access public
   * @return void
   */
  public function makeNews($newsData=array())
  {
    $createTime = time();
    $funcFlag = $this->setFlag ? 1 : 0;
    $newTplHeader = "xml>
      ToUserName>![CDATA[{$this->msg->FromUserName}]]>/ToUserName>
      FromUserName>![CDATA[{$this->msg->ToUserName}]]>/FromUserName>
      CreateTime>{$createTime}/CreateTime>
      MsgType>![CDATA[news]]>/MsgType>
      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['items']);
    //微信公眾平臺圖文回復的消息一次最多10條
    $itemsCount = $itemsCount  10 ? $itemsCount : 10;
    if ($itemsCount) {
      foreach ($newsData['items'] as $key => $item) {
        if ($key=9) {
          $content .= sprintf($newTplItem,$item['title'],$item['description'],$item['picurl'],$item['url']);
        }
      }
    }
    $header = sprintf($newTplHeader,$itemsCount);
    $footer = sprintf($newTplFoot,$funcFlag);
    return $header . $content . $footer;
  }
 
  /**
   * reply 
   * 
   * @param mixed $data 
   * @access public
   * @return void
   */
  public function reply($data)
  {
    if ($this->debug) 
    {
      $this->log($data);
    }
    echo $data;
  }
 
  /**
   * checkSignature 
   * 
   * @access private
   * @return void
   */
  private function checkSignature()
  {
    $tmpArr = array($this->token, $this->timestamp, $this->nonce);
    sort($tmpArr);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
     
    if( $tmpStr == $this->signature ){
      return true;
    }else{
      return false;
    }
  }
 
  /**
   * log 
   * 
   * @access private
   * @return void
   */
  private function log($log)
  {
    if ($this->debug)
    {
      file_put_contents(Yii::getPathOfAlias('application').'/runtime/weixin_log.txt', var_export($log, true)."\n\r", FILE_APPEND);
    }
  }
}

使用方法,這里舉例在SiteController里面

/**
   * actionIndex 
   * 
   * @access public
   * @return void
   */
  public function actionIndex()
  {
    $weixin = new Weixin($_GET);
    $weixin->token = $this->_weixinToken;
    //$weixin->debug = true;
 
    //網址接入時使用
    if (isset($_GET['echostr']))
    {
      $weixin->valid();
    }
     
    $weixin->init();
    $reply = '';
    $msgType = empty($weixin->msg->MsgType) ? '' : strtolower($weixin->msg->MsgType);
    switch ($msgType)
    {
    case 'text':
      //你要處理文本消息代碼
      break;
    case 'image':
      //你要處理圖文消息代碼
      break;
    case 'location':
      //你要處理位置消息代碼
      break;
    case 'link':
      //你要處理鏈接消息代碼
      break;
    case 'event':
      //你要處理事件消息代碼
      break;
    default: 
      //無效消息情況下的處理方式
      break;
    }
    $weixin->reply($reply);
  }

至此,基本的邏輯都實現了

更多關于Yii相關內容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。

您可能感興趣的文章:
  • 記錄Yii2框架開發微信公眾號遇到的問題及解決方法
  • 使用YII2框架實現微信公眾號中表單提交功能
  • 完美利用Yii2微信后臺開發的系列總結
  • Yii PHP Framework實用入門教程(詳細介紹)
  • YII Framework框架使用YIIC快速創建YII應用之migrate用法實例詳解
  • YII Framework框架教程之使用YIIC快速創建YII應用詳解
  • Yii Framework框架獲取分類下面的所有子類方法
  • YiiFramework入門知識點總結(圖文教程)
  • YII Framework框架教程之緩存用法詳解
  • YII Framework框架教程之國際化實現方法
  • YII Framework框架教程之安全方案詳解

標簽:隴南 唐山 通遼 南通 黃山 平頂山 河南 武漢

巨人網絡通訊聲明:本文標題《Yii Framework框架開發微信公眾平臺示例》,本文關鍵詞  Yii,Framework,框架,開發,微信,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Yii Framework框架開發微信公眾平臺示例》相關的同類信息!
  • 本頁收集關于Yii Framework框架開發微信公眾平臺示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 免费毛片在线看片免费丝瓜视频| 师尊被绑奶头跪爬羞辱调教| av色欲无码人妻中文字幕小松杏| 韩国啪啪高清网站| 黄色网址在线| 啊~用力cao我噗嗤噗嗤| 999欧美精品大片久久久| 很黄很黄有细节的短篇小说| 男人午夜视频| 少妇被爽到高潮喷水久久夜色直播 | 免费在线观看黄色小说| 思思99re6国产在线播放| 男女嘿咻嘿咻视频| 把女警玩到高潮| 美女脱内衣胸罩和内裤和衣服裤子| 日本bl动漫在线无删减版| 男人私gay玩奴图片| yin乱大集合| 被男同桌强摁做开腿呻吟| 久久久久久天堂AV无码专区蜜 | 91??丨PORNY丨白浆| 国产最猛黑人XXXXX猛交| 日韩在线一区视频| 2022年国产精品久久久久| 七仙女思春成人版2艳谈最新章节| 妖娆(糙汉*寡妇H)| 婷婷国产天堂久久综合五月| 高清录播服务器| 午夜yy6080在线观看福利片| 精品91?海角乱| 王筱惠的性经历| 欧美啪啪精品| 最新国产精品| 夫洗澡公强我了30分钟| 性瘾少妇被粗大爽ⅩXoo网站| 宅男宅女午夜免费观看| 女同桌让我憋尿揉我裆部| 青青草免费在线| 精品国产一区二区三区久久久蜜月| 99久久国产精品毛片水果柢 | 亚洲Av天堂久久精品9966|