1. 程式人生 > >微信公眾平臺訊息介面PHP版開發教程

微信公眾平臺訊息介面PHP版開發教程

三、驗證介面

用自己的個人微信關注下你的公眾賬號,給這個賬號發一條訊息過去,收到原樣的訊息返回,即驗證成功了。

四、開始自定義回覆

註釋掉$wechatObj->valid(); 這行,同時去掉//$wechatObj->responseMsg();這行的註釋。

你可以修改responseMsg函式裡面的程式碼,根據使用者的訊息型別('text','image','location')和訊息內容來回複用戶不同的內容。

訊息介面就可以使用了,發個訊息試試看吧?

封裝weixin.class.php

由於微信公眾平臺的通訊使用的是特定格式的XML資料,每次接受和回覆都要去做一大堆的資料處理。
我們就考慮在這個基礎上做一次封裝,weixin.class.php,程式碼如下:

  1. <?php  
  2. class Weixin  
  3. {  
  4.     public$token = '';//token
  5.     public$debug =  false;//是否debug的狀態標示,方便我們在除錯的時候記錄一些中間資料
  6.     public$setFlag = false;  
  7.     public$msgtype = 'text';   //('text','image','location')
  8.     public$msg = array();  
  9.     publicfunction __construct($token,$debug)  
  10.     {  
  11.         $this->token = $token;  
  12.         $this->debug = $debug;  
  13.     }<br>     //獲得使用者發過來的訊息(訊息內容和訊息型別  )
  14.     publicfunction getMsg()  
  15.     {  
  16.         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];  
  17.         if ($this->debug) {  
  18.                         $this->write_log(
    $postStr);  
  19.         }  
  20.         if (!empty($postStr)) {  
  21.             $this->msg = (array)simplexml_load_string($postStr'SimpleXMLElement', LIBXML_NOCDATA);  
  22.             $this->msgtype = strtolower($this->msg['MsgType']);  
  23.         }  
  24.     }<br>     //回覆文字訊息
  25.     publicfunction makeText($text='')  
  26.     {  
  27.         $CreateTime = time();  
  28.         $FuncFlag = $this->setFlag ? 1 : 0;  
  29.         $textTpl = "<xml>  
  30.             <ToUserName><![CDATA[{$this->msg['FromUserName']}]]></ToUserName>  
  31.             <FromUserName><![CDATA[{$this->msg['ToUserName']}]]></FromUserName>  
  32.             <CreateTime>{$CreateTime}</CreateTime>  
  33.             <MsgType><![CDATA  
  34. 1      
  35. ]></MsgType>  
  36.             <Content><![CDATA[%s]]></Content>  
  37.             <FuncFlag>%s</FuncFlag>  
  38.             </xml>";  
  39.         return sprintf($textTpl,$text,$FuncFlag);  
  40.     }<br>     //根據陣列引數回覆圖文訊息
  41.     publicfunction makeNews($newsData=array())  
  42.     {  
  43.         $CreateTime = time();  
  44.         $FuncFlag = $this->setFlag ? 1 : 0;  
  45.         $newTplHeader = "<xml>  
  46.             <ToUserName><![CDATA[{$this->msg['FromUserName']}]]></ToUserName>  
  47.             <FromUserName><![CDATA[{$this->msg['ToUserName']}]]></FromUserName>  
  48.             <CreateTime>{$CreateTime}</CreateTime>  
  49.             <MsgType><![CDATA[news]]></MsgType>  
  50.             <Content><![CDATA[%s]]></Content>  
  51.             <ArticleCount>%s</ArticleCount><Articles>";  
  52.         $newTplItem = "<item>  
  53.             <Title><![CDATA[%s]]></Title>  
  54.             <Description><![CDATA[%s]]></Description>  
  55.             <PicUrl><![CDATA[%s]]></PicUrl>  
  56.             <Url><![CDATA[%s]]></Url>  
  57.             </item>";  
  58.         $newTplFoot = "</Articles>  
  59.             <FuncFlag>%s</FuncFlag>  
  60.             </xml>";  
  61.         $Content = '';  
  62.         $itemsCount = count($newsData['items']);  
  63.         $itemsCount = $itemsCount < 10 ? $itemsCount : 10;//微信公眾平臺圖文回覆的訊息一次最多10條
  64.         if ($itemsCount) {  
  65.             foreach ($newsData['items'as$key => $item) {  
  66.                 if ($key<=9) {  
  67.                     $Content .= sprintf($newTplItem,$item['title'],$item['description'],$item['picurl'],$item['url']);  
  68.                 }  
  69.             }  
  70.         }  
  71.         $header = sprintf($newTplHeader,$newsData['content'],$itemsCount);  
  72.         $footer = sprintf($newTplFoot,$FuncFlag);  
  73.         return$header . $Content . $footer;  
  74.     }  
  75.     publicfunction reply($data)  
  76.     {  
  77.         if ($this->debug) {  
  78.                     $this->write_log($data);  
  79.         }  
  80.         echo$data;  
  81.     }  
  82.     publicfunction valid()  
  83. 相關推薦

    公眾平臺訊息介面PHP開發教程

    三、驗證介面 用自己的個人微信關注下你的公眾賬號,給這個賬號發一條訊息過去,收到原樣的訊息返回,即驗證成功了。 四、開始自定義回覆 註釋掉$wechatObj->valid(); 這行,同時去掉//$wechatObj->responseMsg();這行的註釋。 你

    公眾平臺訊息介面PHP

    使用前提條件:擁有一個公網上的HTTP伺服器主機空間,具有建立目錄、上傳檔案等許可權。 首先請註冊微信公眾平臺的賬號,註冊地址:http://mp.weixin.qq.com/ 一、寫好介面程式 在你的伺服器上上傳好一個介面程式檔案,如http://www.yourdoma

    公眾平臺——token驗證php

    head 一點 輸出 lean host ont 題解 開發 問題解決 這幾天開始接觸微信公眾號的開發,註冊這些就不說了,我是先弄了個測試號用著。進入正題 所謂token驗證,其實就是微信服務器向自己要用到的服務器url發送一段數據,其中有一個參數$_GET[‘ec

    公眾平臺訊息介面開發---快遞查詢

    JSON格式 {"message":"ok","status":"1","state":"3","data": [{"time":"2012-07-07 13:35:14","context":"客戶已簽收"}, {"time":"2012-07-07 09:10:10","context":"離開 [北京

    公眾平臺訊息介面使用指南

    一 、簡介 公眾平臺訊息介面為開發者提供了一種新的訊息處理方式。 二 、 申請訊息介面 點選申請,如實填寫負責人姓名 、 手機號和郵箱,填寫網址url和token,其中token可由開發者可以任意填寫,用作生成簽名。 三 、 網址接入 公眾平臺使用者提交資訊後,我們將以GET請求方式請求到填寫的

    公眾平臺訊息介面開發(24)圖片識別之人臉識別API

    一、微信圖片獲取 首先要獲得使用者發過來的圖片,微信公眾平臺支援接收圖片,一條圖片訊息的格式如下: <xml> <ToUserName><![CDATA[gh_13d1a3a7x46a]]></ToUserName>

    php公眾平臺API介面(thinkphp5)

    整合了微信公眾號的介面。包括但不限於:獲取access_token,自定義選單,訊息管理,使用者管理等。持續更新。。。下一步增加微信支付和支付寶支付介面 介面類使用了名稱空間,可直接引入並例項化。基於thinkphp5測試。 介面類放在extend/We

    公眾平臺API介面開發教程

    簡介 微信公眾平臺訊息介面為開發者提供了一種新的訊息處理方式。微信公眾平臺訊息介面為開發者提供與使用者進行訊息互動的能力。對於成功接入訊息介面的微信公眾賬號,當用戶發訊息給公眾號,微信公眾平臺伺服器會使用http請求對接入的網址進行訊息推送,第三方伺服器可通過響應包回覆特

    爬蟲-公眾平臺訊息獲取

    幫朋友抓取微信公眾平臺的使用者評論資訊。 下面只說核心的部分,怎麼獲取評論資訊。 檢視HTML程式碼,沒有發現關於評論部分的標籤。看來是用JS動態生成的,但是查詢ajax請求也沒有找到哪裡有返回資料。 最後搜尋一下,原來是在這裡,很直白的寫在了JS裡: <sc

    公眾平臺百度天氣預報開發

    2.實現天氣資訊功能baiduWeather.php<?php /** * 使用百度天氣預報介面獲取城市天氣資訊案例實現 */ //獲取城市天氣資訊 function getWeatherInfo($cityName){ if

    PHP公眾平臺開發高階篇--模板訊息介面

    * 2.不建議用瀏覽器直接請求,會導致推送多次訊息,可設定為事件推送 */ header("Content-type: text/html; charset=utf-8"); $postArr = file_get_contents('php://input'); $postObj = simplexm

    PHP實現公眾平臺開發---提升篇(模板訊息介面)

    模版訊息 介面 模板訊息僅用於公眾號向用戶傳送重要的服務通知,只能用於符合其要求的服務場景中,如信用卡刷卡通知,商品購買成功通知等。不支援廣告等營銷類訊息以及其它所有可能對使用者造成騷擾的訊息。 規則 所有服務號都可以在功能->新增功能外掛處看到申請模板訊息功

    公眾平臺——基礎配置——務器配置:PHP

    sort 文件 cti pre amp 提交 false pst 加解密 在自己的服務器上新建一個空白php文件,輸入以下任一版本的代碼,如下: 版本一: <?php $token = "dige1994"; $signature = $_GET["signatur

    PHP公眾平臺開發高階篇--群發介面

    <?php /** * 群發介面 * PS:群發之前呼叫“預覽介面”進行測試 * PS:通過第三方後臺呼叫微信上傳圖片素材介面,獲取圖片url,如:{"url":"http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/BdxWN2kspVgJOFpRHJojlWmbl0pMxUaJ

    公眾平臺 傳送訊息-群發介面

    前言:最近做微信開發,弄了一個群發介面,本著不記錄肯定會忘記的本事,在這裡整理一下。多學習多進步。本文比較囉嗦,可以檢視參考文章,我就是從那位大神那裡學習到的。本片文章基於Spring開發,Spring提供的用於訪問Rest服務的客戶端。 這篇文章解決的問題:

    基於公眾平臺的第三方介面接入Java接發訊息

    玩過微信公眾號的都清楚,微信公眾號的專案欄是可以在裡面生成的,今天就來說一下使用Java接入微信平臺提供的第三方介面。  開啟微信公眾平臺,開啟開發者模式,裡面有一個介入指南,下面有三款:1.填寫伺服器配置。2.驗證伺服器地址的有效性。3依據介面文件實現業務邏輯。  1.填

    PHP公眾平臺開發高階篇—網頁授權介面

    一、說明 二、程式碼實現 /* *$url 介面url string *$type 請求型別 string *$res 返回資料型別 string *%$arr post 請求引數 string */

    第三篇 :公眾平臺開發實戰Java之請求訊息,響應訊息以及事件訊息類的封裝

    微信伺服器和第三方伺服器之間究竟是通過什麼方式進行對話的? 下面,我們先看下圖: 其實我們可以簡單的理解: (1)首先,使用者向微信伺服器傳送訊息; (2)微信伺服器接收到使用者的訊息處理之後,通過開發者配置的URL和Token 來找到第三方伺服器,並以XML形式向第三方伺服器傳送訊息

    第四篇 :公眾平臺開發實戰Java之完成訊息接受與相應以及訊息的處理

    溫馨提示:      這篇文章是依賴前幾篇的文章的。 首先,我們看看原來寫的dopost方法: /** * 處理微信伺服器發來的訊息 */ public void doPost(HttpServletRequest request, Http

    公眾平臺 客服介面-發訊息

    微信公眾平臺技術文件:客服訊息 一、介面說明 當用戶和公眾號產生特定動作的互動時(具體動作列表請見下方說明),微信將會把訊息資料推送給開發者,開發者可以在一段時間內(目前修改為48小時)呼叫客服介面,通過POST一個JSON資料包來發送訊息給普通使用者。