微信公眾平台開發環境配置


1.引言:最近兩天玩了一把微信公眾平台開發,在此把環境配置過程記錄一下,期間遇到一些曲折,主要是BAE和SAE主機的問題,折騰了一天最后實在不行用自己實驗室的主機作為服務器,唉,免費的東西就是不穩定,如果想要長期玩微信的話,最好買些好的空間。

2.參考資料:

A.微信消息接口指南:http://mp.weixin.qq.com/wiki/index.php?title=%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E6%8C%87%E5%8D%97

B.方倍工作室的一些教程:http://www.cnblogs.com/txw1958/

3.環境配置:

3.1 如果想配置BAE和SAE作為主機,

  BAE配置可以參考:http://www.cnblogs.com/txw1958/p/wechat-tutorial.html

  SAE配置可以參考:http://coolwb.com/2460.html

3.2 自己主機的話,簡單些:直接把文件放到主機服務器的網站根目錄進行訪問即可: http://www.example.com/weixin/

4. 微信公眾賬號申請:

    公眾賬號有兩個模式:編輯模式和開發模式。編輯模式下可以設置簡單的消息自動回復和關鍵字自動回復,但功能太局限;由於我是想嘗試開發模式的,所以開啟開發者模式,在此之前,先把編輯模式關閉,再開啟。

    開發者模式開啟之后,即可配置接口參數。如下圖所示:URL處填寫你主機的地址,TOKEN填寫要驗證的Token值,可以自己設定,但必須同所需驗證的index.php中的token一致。 token驗證成功后會提示"提交成功", 並且顯示您已成為開發者;如果驗證不成功,則要檢查是否是你程序寫的有問題,還是你所填主機的地址無法成功訪問問題,網上有一篇相關說明是關於Token驗證不成功的情形下去跟蹤微信IP地址的方法(鏈接地址:方倍工作室),以檢查是哪類問題.

(備注:我在配置過程中,雖然能驗證成功,但用微信給公眾賬號發消息,就是無法按照設定返回給我的普通微信消息(不是公眾賬號),最后沒辦法換成自己實驗室現有的一台主機作為服務器,域名用一個買過的域名作為URL

 

5. 功能測試

    驗證成功后,上述Index.php中的相關驗證口令即沒用了,可以將其內容替換成自己想要處理的內容。微信目前開通給開發者的接口有限,只能處理文本、聲音和圖文三類消息。根據官網消息接口說明制定相應的功能。

6. 附錄代碼

6.1 接口驗證代碼

 1 <?php
 2 define("TOKEN", "weixin"); //TOKEN值,此處填寫你所設定的Token
 3 $wechatObj = new wechat();
 4 $wechatObj->valid();
 5 class wechat {
 6     public function valid() {
 7         $echoStr = $_GET["echostr"];
 8         if($this->checkSignature()){
 9             echo $echoStr;
10             exit;
11         }
12     }
13 
14     private function checkSignature() {
15         $signature = $_GET["signature"];
16         $timestamp = $_GET["timestamp"];
17         $nonce = $_GET["nonce"];
18         $token = TOKEN;
19         $tmpArr = array($token, $timestamp, $nonce);
20         sort($tmpArr);
21         $tmpStr = implode( $tmpArr );
22         $tmpStr = sha1( $tmpStr );
23         if( $tmpStr == $signature ) {
24             return true;
25         } else {
26             return false;
27         }
28     }
29 }
30 ?>

6.2 功能測試代碼

 1 <?php
 2 $wechatObj = new wechat();
 3 $wechatObj->responseMsg();
 4 class wechat {
 5     public function responseMsg() {
 6 
 7         //---------- 接 收 數 據 ---------- //
 8 
 9         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //獲取POST數據
10 
11         //用SimpleXML解析POST過來的XML數據
12         $postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);
13 
14         $fromUsername = $postObj->FromUserName; //獲取發送方帳號(OpenID)
15         $toUsername = $postObj->ToUserName; //獲取接收方賬號
16         $keyword = trim($postObj->Content); //獲取消息內容
17         $time = time(); //獲取當前時間戳
18 
19 
20         //---------- 返 回 數 據 ---------- //
21 
22         //返回消息模板
23         $textTpl = "<xml>
24         <ToUserName><![CDATA[%s]]></ToUserName>
25         <FromUserName><![CDATA[%s]]></FromUserName>
26         <CreateTime>%s</CreateTime>
27         <MsgType><![CDATA[%s]]></MsgType>
28         <Content><![CDATA[%s]]></Content>
29         <FuncFlag>0</FuncFlag>
30         </xml>";
31 
32         $msgType = "text"; //消息類型
33         $contentStr = 'welcome my account'; //返回消息內容
34 
35         //格式化消息模板
36         $resultStr = sprintf($textTpl,$fromUsername,$toUsername,
37         $time,$msgType,$contentStr);
38         echo $resultStr; //輸出結果
39     }
40 }
41 ?>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM