婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

Yii Framework框架開發(fā)微信公眾平臺示例

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

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

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

http://mp.weixin.qq.com

2. 下載demo

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

3. 按照Yii的規(guī)則,做一個extension。

這里命名為 weixin,目錄結(jié)構(gòu)如下:

▾ extensions/
      ▾ weixin/
          Weixin.php*

Weixin.php代碼內(nèi)容:

?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參數(shù)
  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();
    }
  }
 
  /**
   * 獲得用戶發(fā)過來的消息(消息內(nèi)容和消息類型 ) 
   * 
   * @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()
  {
     
  }
 
  /**
   * 回復(fù)文本消息 
   * 
   * @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);
  }
   
  /**
   * 根據(jù)數(shù)組參數(shù)回復(fù)圖文消息 
   * 
   * @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']);
    //微信公眾平臺圖文回復(fù)的消息一次最多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;
 
    //網(wǎng)址接入時使用
    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);
  }

至此,基本的邏輯都實現(xiàn)了

更多關(guān)于Yii相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結(jié)》、《php優(yōu)秀開發(fā)框架總結(jié)》、《smarty模板入門基礎(chǔ)教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

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

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Yii Framework框架開發(fā)微信公眾平臺示例》,本文關(guān)鍵詞  Yii,Framework,框架,開發(fā),微信,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Yii Framework框架開發(fā)微信公眾平臺示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Yii Framework框架開發(fā)微信公眾平臺示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    xnxx国产精品| 99久久伊人久久99| 男女性色大片免费观看一区二区 | 欧美大片顶级少妇| 亚洲精品欧美专区| 久久久www成人免费毛片麻豆 | 国产欧美日韩视频一区二区 | 亚洲手机成人高清视频| 91碰在线视频| 亚洲欧美国产毛片在线| 色系网站成人免费| 欧美三级在线视频| 国产精品污污网站在线观看| 国产中文字幕精品| 亚洲精品在线免费播放| 精品在线观看免费| 久久免费视频色| 91一区二区在线| 亚洲成av人片在线| 欧美猛男超大videosgay| 视频在线在亚洲| 欧美电影免费观看高清完整版| 亚洲国产另类av| 欧美精品一区二区三区视频| 国产成人av电影免费在线观看| 日韩一区在线看| 欧美一卡二卡三卡| 91在线免费播放| av欧美精品.com| 韩国欧美国产1区| 喷水一区二区三区| 日韩不卡一二三区| 亚洲国产精品久久久久秋霞影院 | 91麻豆精品国产91久久久| 秋霞电影网一区二区| 国产欧美综合在线| 精品视频色一区| eeuss鲁一区二区三区| 人人精品人人爱| 中文字幕中文字幕一区| 久久奇米777| 日韩一级完整毛片| 欧美视频一区在线观看| 91女神在线视频| 国产sm精品调教视频网站| 亚洲一区二区三区爽爽爽爽爽| 国产亚洲美州欧州综合国| 久久精品视频在线看| 在线综合+亚洲+欧美中文字幕| 在线观看网站黄不卡| 不卡的av中国片| 日本精品裸体写真集在线观看| 欧美三级韩国三级日本一级| 欧美日韩另类一区| 久久综合久久综合久久综合| 国产亚洲欧洲一区高清在线观看| 国产精品国产精品国产专区不蜜 | 一本色道亚洲精品aⅴ| 精品视频在线免费观看| 日韩欧美黄色影院| 亚洲日本青草视频在线怡红院| 天天操天天干天天综合网| 国产大片一区二区| 欧美人动与zoxxxx乱| 中文字幕av不卡| 精品一区二区在线播放| 91成人国产精品| 综合在线观看色| 国产麻豆午夜三级精品| 欧美一区二区视频免费观看| 一个色妞综合视频在线观看| 国产麻豆成人精品| 日韩欧美久久久| 日本在线观看不卡视频| 欧美高清视频在线高清观看mv色露露十八| 久久综合久色欧美综合狠狠| 青青草一区二区三区| 91精品国产色综合久久不卡蜜臀| 亚洲一区电影777| 69av一区二区三区| 精品在线播放免费| 欧美国产精品专区| 色哟哟欧美精品| 日韩精品成人一区二区三区| 91精品久久久久久久91蜜桃| 久久精品国产99| 国产精品水嫩水嫩| 91蜜桃传媒精品久久久一区二区| 亚洲精品videosex极品| 欧美无砖专区一中文字| 亚洲国产欧美日韩另类综合| 欧美一区三区二区| 国产91精品一区二区| 一片黄亚洲嫩模| 国产午夜亚洲精品理论片色戒| 成人做爰69片免费看网站| 亚洲香蕉伊在人在线观| 久久久蜜桃精品| 欧美系列日韩一区| 成人黄色av电影| 国产美女av一区二区三区| 一区二区三区视频在线观看| 欧美va亚洲va香蕉在线| 97精品久久久午夜一区二区三区| 男男成人高潮片免费网站| 自拍偷自拍亚洲精品播放| 精品蜜桃在线看| 欧美美女一区二区在线观看| 色欲综合视频天天天| 高清shemale亚洲人妖| 久久精品国产精品亚洲精品| 蜜臀av亚洲一区中文字幕| 亚洲一二三区在线观看| 国产精品电影一区二区三区| 国产日产欧美一区| 欧美韩日一区二区三区四区| 精品国产不卡一区二区三区| 一区视频在线播放| 日本一区二区电影| 亚洲免费av高清| 亚洲欧美另类在线| 亚洲人成精品久久久久| 午夜精品福利在线| 国产真实乱子伦精品视频| 国产91精品精华液一区二区三区| 成人小视频在线观看| 欧美在线免费播放| 久久精子c满五个校花| 日韩一区在线免费观看| 亚洲高清不卡在线观看| 久久成人久久鬼色| 在线观看区一区二| 久久天堂av综合合色蜜桃网| 亚洲日本成人在线观看| 奇米影视7777精品一区二区| 国产精品一区三区| 欧美一区二区三区性视频| 国产欧美视频一区二区| 亚洲国产精品欧美一二99| 另类欧美日韩国产在线| 色香蕉成人二区免费| 久久夜色精品国产噜噜av| 亚洲欧美日韩精品久久久久| 国产成人午夜精品5599| 制服丝袜亚洲网站| 尤物av一区二区| 99国产精品99久久久久久| 国产欧美视频一区二区| 国产精品99精品久久免费| 欧美一级日韩免费不卡| 午夜欧美在线一二页| 欧美三级中文字幕在线观看| 亚洲欧美一区二区三区孕妇| 成人app软件下载大全免费| 亚洲国产精品激情在线观看| 久久不见久久见中文字幕免费| 在线观看91av| 国产在线不卡一卡二卡三卡四卡| 日韩免费成人网| 播五月开心婷婷综合| 综合欧美亚洲日本| 欧美在线免费观看视频| 石原莉奈在线亚洲三区| 精品欧美乱码久久久久久| 国产v综合v亚洲欧| 亚洲va国产va欧美va观看| 精品国产制服丝袜高跟| 99综合影院在线| 久热成人在线视频| 亚洲制服丝袜av| 国产欧美一区二区精品秋霞影院| 99精品视频在线观看| 麻豆精品国产91久久久久久| 久久精品一区八戒影视| 欧美亚洲图片小说| 国产毛片精品视频| 日本欧美加勒比视频| 亚洲一区二区三区精品在线| 国产免费成人在线视频| 免费欧美在线视频| 欧美一区二区三区免费大片| 欧美成人一区二区三区在线观看| 中文字幕免费一区| 免费视频一区二区| 欧美亚洲综合色| 夜夜精品视频一区二区| av激情成人网| 国产精品久久三| 99久久精品国产导航| 日本一区二区三级电影在线观看| 另类小说视频一区二区| 欧美一区二区三区啪啪| 亚洲一区二区三区四区中文字幕| 国产美女视频一区| 国产三级一区二区| 成人理论电影网| 亚洲欧洲精品一区二区三区| 色婷婷精品久久二区二区蜜臀av| 国产精品成人一区二区三区夜夜夜| 狠狠色丁香九九婷婷综合五月 |