php微信公眾平臺開發(fā)類實例_PHP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:PHP生成指定隨機(jī)字符串的簡單實現(xiàn)方法具體分析如下: 這是一個簡單的函數(shù),沒有對生成的內(nèi)容作強(qiáng)制設(shè)定。所以在生成的字符串長度較少的時候,會出現(xiàn)沒有指定類型字符的情況。當(dāng)然,修改起來也很簡單,這里就不做添加了。
這篇文章主要介紹了php微信公眾平臺開發(fā)類,實例分析了針對微信消息的響應(yīng)、回復(fù)、編碼等相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
本文實例講述了php微信公眾平臺開發(fā)類。分享給大家供大家參考。具體分析如下:
ThinkWechat.php類文件如下:
- <?php
- class Wechat {
- /**
- * 微信推送過來的數(shù)據(jù)或響應(yīng)數(shù)據(jù)
- * @var array
- */
- private $data = array();
- /**
- * 構(gòu)造方法,用于實例化微信SDK
- * @param string $token 微信開放平臺設(shè)置的TOKEN
- */
- public function __construct($token) {
- $this->auth($token) || exit;
- if(!emptyempty($_GET['echostr'])){
- exit($_GET['echostr']);
- } else {
- try
- {
- $xml = file_get_contents("php://input");
- $xml = new SimpleXMLElement($xml);
- $xml || exit;
- foreach ($xml as $key => $value) {
- $this->data[$key] = strval($value);
- }
- }catch(Exception $e){
- }
- }
- }
- /**
- * 獲取微信推送的數(shù)據(jù)
- * @return array 轉(zhuǎn)換為數(shù)組后的數(shù)據(jù)
- */
- public function request(){
- return $this->data;
- }
- /**
- * * 響應(yīng)微信發(fā)送的信息(自動回復(fù))
- * @param string $to 接收用戶名
- * @param string $from 發(fā)送者用戶名
- * @param array $content 回復(fù)信息,文本信息為string類型
- * @param string $type 消息類型
- * @param string $flag 是否新標(biāo)剛接受到的信息
- * @return string XML字符串
- */
- public function response($content, $type = 'text', $flag = 0){
- /* 基礎(chǔ)數(shù)據(jù) */
- $this->data = array(
- 'ToUserName' => $this->data['FromUserName'],
- 'FromUserName' => $this->data['ToUserName'],
- 'CreateTime' => time(),
- 'MsgType' => $type,
- );
- /* 添加類型數(shù)據(jù) */
- $this->$type($content);
- /* 添加狀態(tài) */
- $this->data['FuncFlag'] = $flag;
- /* 轉(zhuǎn)換數(shù)據(jù)為XML */
- $xml = new SimpleXMLElement('<xml></xml>');
- $this->data2xml($xml, $this->data);
- exit($xml->asXML());
- }
- /**
- * 回復(fù)文本信息
- * @param string $content 要回復(fù)的信息
- */
- private function text($content){
- $this->data['Content'] = $content;
- }
- /**
- * 回復(fù)音樂信息
- * @param string $content 要回復(fù)的音樂
- */
- private function music($music){
- list(
- $music['Title'],
- $music['Description'],
- $music['MusicUrl'],
- $music['HQMusicUrl']
- ) = $music;
- $this->data['Music'] = $music;
- }
- /**
- * 回復(fù)圖文信息
- * @param string $news 要回復(fù)的圖文內(nèi)容
- */
- private function news($news){
- $articles = array();
- foreach ($news as $key => $value) {
- list(
- $articles[$key]['Title'],
- $articles[$key]['Description'],
- $articles[$key]['PicUrl'],
- $articles[$key]['Url']
- ) = $value;
- if($key >= 9) { break; } //最多只允許10調(diào)新聞
- }
- $this->data['ArticleCount'] = count($articles);
- $this->data['Articles'] = $articles;
- }
- /**
- * 數(shù)據(jù)XML編碼
- * @param object $xml XML對象
- * @param mixed $data 數(shù)據(jù)
- * @param string $item 數(shù)字索引時的節(jié)點(diǎn)名稱
- * @return string
- */
- private function data2xml($xml, $data, $item = 'item') {
- foreach ($data as $key => $value) {
- /* 指定默認(rèn)的數(shù)字key */
- is_numeric($key) && $key = $item;
- /* 添加子元素 */
- if(is_array($value) || is_object($value)){
- $child = $xml->addChild($key);
- $this->data2xml($child, $value, $item);
- } else {
- if(is_numeric($value)){
- $child = $xml->addChild($key, $value);
- } else {
- $child = $xml->addChild($key);
- $node = dom_import_simplexml($child);
- $node->appendChild($node->ownerDocument->createCDATASection($value));
- }
- }
- }
- }
- /**
- * 對數(shù)據(jù)進(jìn)行簽名認(rèn)證,確保是微信發(fā)送的數(shù)據(jù)
- * @param string $token 微信開放平臺設(shè)置的TOKEN
- * @return boolean true-簽名正確,false-簽名錯誤
- */
- private function auth($token){
- if(emptyempty($_GET['signature'])) return;
- /* 獲取數(shù)據(jù) */
- $data = array($_GET['timestamp'], $_GET['nonce'], $token);
- $sign = $_GET['signature'];
- /* 對數(shù)據(jù)進(jìn)行字典排序 */
- sort($data,SORT_STRING);
- /* 生成簽名 */
- $signature = sha1(implode($data));
- return $signature === $sign;
- }
- }
分享:php使用Image Magick將PDF文件轉(zhuǎn)換為JPG文件的方法這是一個非常簡單的格式轉(zhuǎn)換代碼,可以把.PDF文件轉(zhuǎn)換為.JPG文件,代碼要起作用,服務(wù)器必須要安裝Image Magick 擴(kuò)展。
相關(guān)PHP教程:
- php生成圓角圖片的方法
- php按單詞截取字符串的方法
- php生成zip文件類實例
- php生成圖片縮略圖的方法
- php獲取網(wǎng)頁里所有圖片并存入數(shù)組的方法
- 經(jīng)典PHP加密解密函數(shù)Authcode()修復(fù)版代碼
- php簡單實現(xiàn)快速排序的方法
- php獲取網(wǎng)頁上所有鏈接的方法
- php將HTML表格每行每列轉(zhuǎn)為數(shù)組實現(xiàn)采集表格數(shù)據(jù)的方法
- PHP常用處理靜態(tài)操作類
- php使用post數(shù)組的鍵值創(chuàng)建同名變量并賦值的方法
- php刪除指定目錄的方法
- 相關(guān)鏈接:
- 教程說明:
PHP教程-php微信公眾平臺開發(fā)類實例
。