微信公眾平台訊息介面開發(29)校正簽名與訊息響應合并_PHP教程

來源:互聯網
上載者:User
公眾平台開發 公眾平台開發人員 公眾平台開發模式 簽名校正 訊息響應
作者:方倍工作室
原文:http://www.cnblogs.com/txw1958/archive/2013/05/08/weixin-if29-valid-responseMsg.html

一、問題來源

公眾平台在啟用介面的時候使用valid函數進行驗證,

("TOKEN", "方倍工作室" = ->valid();

但在驗證完成後,就開始執行對訊息的響應,不再使用valid函數,需要把他注釋掉,並且設定成responseMsg()

如下

("TOKEN", "方倍工作室" = ->responseMsg();

這樣操作,其實比較麻煩,因為要回頭來改函數。

二、問題分析

為什麼要用兩個不同函數來處理呢?這是因為兩個不同的函數執行不同的功能,

當執行valid函數時,提交的是驗證字串,用於保證url和token填寫提交正確,這個時候伺服器提交給url的請求是

=eded789463180edf6c13691398d0cb4c85fb0e23=5838479218127813673=1359100969=1359376876

而當響應訊息的時候,已經可以確定url地址正確了,這時候主要是獲得回複的xml了,這時提交的請求類似如下:

=ba7f5cf8aee512037e5a669596f6f64a8e763d7c=1368016183=1368211921

二、解決方案

我們回頭來看一下valid函數

      = ["echostr"        (-> 

其中有一個_GET變數,那麼什麼是_GET變數,以下內容來自 http://www.w3school.com.cn/php/php_get.asp

$_GET 變數
$_GET 變數是一個數組,內容是由 HTTP GET 方法發送的變數名稱和值。
$_GET 變數用於收集來自 method="get" 的表單中的值。從帶有 GET 方法的表單發送的資訊,對任何人都是可見的(會顯示在瀏覽器的地址欄),並且對發送的資訊量也有限制(最多 100 個字元)。

為什麼使用 $_GET?
注釋:在使用 $_GET 變數時,所有的變數名和值都會顯示在 URL 中。所以在發送密碼或其他敏感資訊時,不應該使用這個方法。不過,正因為變數顯示在 URL 中,因此可以在收藏夾中收藏該頁面。在某些情況下,這是很有用的。

我們注意到在二中描述的,兩次不同的請求,簽名驗證請求中,url中有個echostr變數,而在響應訊息中是沒有的,

=eded789463180edf6c13691398d0cb4c85fb0e23=5838479218127813673=1359100969=1359376876

那麼我們用同樣的思路,判斷_GET變數中是否有這個echostr變數,來實現區分兩種不同的請求:

最終代碼類似如下:

("TOKEN", "方倍工作室" =  ((['echostr'->->

至此,我們就不用再來注釋一個啟用另一個了,減少了一次麻煩。

http://www.bkjia.com/PHPjc/440276.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/440276.htmlTechArticle公眾平台開發 公眾平台開發人員 公眾平台開發模式 簽名校正 訊息響應 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/archi...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.