讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 3.1 服務器資源 >

3.1 服務器資源

3.1.1 新浪雲SAE

SAE(Sina App Engine)是新浪研發中心於2009年8月開始內部開發,並於2009年11月3日正式推出的第一個Alpha版本的國內首個公有雲計算平台(http://sae.sina.com.cn)。SAE是新浪雲計算戰略的核心組成部分。

SAE的註冊地址為http://sae.sina.com.cn/?m=user&a=reg,在瀏覽器中輸入該網址,將自動跳轉到「SAE新浪雲計算平台」在新浪微博的應用授權頁面,如圖3-1所示。

圖3-1 SAE登錄界面

如果你還沒有新浪微博賬號,需要註冊一個。註冊新浪微博賬號的過程,這裡就不介紹了。在圖3-1中填寫新浪微博賬號及密碼之後,單擊「登錄」按鈕,將跳轉到授權確認頁面,如圖3-2所示。

單擊「授權」按鈕,將跳轉到SAE用戶註冊頁面,如圖3-3所示。

填寫「真實姓名」「安全郵箱」「安全密碼」「確認密碼」「綁定手機」及「驗證碼」之後,單擊「下一步」按鈕,將跳轉到手機號驗證頁面,如圖3-4所示。

圖3-2 SAE新浪雲計算平台授權確認頁面

圖3-3 SAE用戶註冊頁面

圖3-4 SAE手機認證頁面

填寫手機收到的短信驗證碼後,單擊「驗證手機」按鈕,將提示註冊成功。

這樣就成功註冊了SAE賬號。使用註冊成功的微博賬號登錄SAE,登錄後的頁面如圖3-5所示。

圖3-5 SAE首頁

在最上方右側的導航列表中,單擊「我的應用」鏈接,再從下拉列表中選擇「應用列表」鏈接,將跳轉到「應用列表」頁面,如圖3-6所示。

圖3-6 應用列表

單擊頁面中的「創建新應用」按鈕,這時會彈出提示框,提示禁止放置違法違規內容。單擊「繼續創建」按鈕,彈出創建應用頁面,如圖3-7所示。

圖3-7 創建應用

在創建應用頁面中,依次填寫二級域名AppID、「應用名稱」、「驗證碼」,「開發語言」選擇PHP,「運行環境」選擇「標準環境」,「語言版本」選擇5.3。如果AppID已經被其他人註冊過,會提示已經被佔用,需要重新填入。填寫完畢後,單擊「創建應用」按鈕,將提示應用創建成功,如圖3-8所示。

圖3-8 應用創建成功

應用創建成功之後,將自動跳轉到「代碼管理」頁面,SAE提供了3種代碼管理方式,分別是雲空間、Git和SVN,如圖3-9所示。

圖3-9 代碼管理

代碼管理方式一旦選定就不能更改了。這裡選擇SVN,即單擊圖3-9中的SVN按鈕。系統將彈出消息框,詢問是否確定選定,再單擊「確定」按鈕即可。這時系統將要求創建版本,如圖3-10所示。

單擊「創建版本」按鈕,將彈出創建版本頁面,如圖3-11所示。

圖3-10 創建版本

圖3-11 開始創建版本

版本號默認為1,可以不用更改,直接單擊「創建」按鈕,這時會彈出安全密碼輸入框。正確輸入安全密碼之後,應用版本就設置好了,如圖3-12所示。

圖3-12 創建版本成功

至此,就成功創建了一個域名URL為http://fbstudio.sinaapp.com/的SAE應用了。這個URL將會在後面用到。

另外,系統還有一個帶數字版本的域名http://1.fbstudio.sinaapp.com/。在使用過程中,統一使用http://fbstudio.sinaapp.com/,而不要使用帶數字版本的域名。

下述代碼可以啟用微信接口。你也可以從本書的配套代碼中找到這個文件。


<?php
/*
    方倍工作室 http:// www.fangbei.org/
    CopyRight 2013 www.doucube.com  All Rights Reserved
*/
header('Content-type:text');
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest;
if (isset($_GET['echostr'])) {
    $wechatObj->valid;
}else{
    $wechatObj->responseMsg;
}

class wechatCallbackapiTest
{
    public function valid
    {
        $echoStr = $_GET["echostr"];
        if($this->checkSignature){
            echo $echoStr;
            exit;
        }
    }

    private function checkSignature
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];

        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );

        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }

    public function responseMsg
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_
            NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $keyword = trim($postObj->Content);
            $time = time;
            $textTpl = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        <FuncFlag>0</FuncFlag>
                        </xml>";
            if($keyword == "?" || $keyword == "?")
            {
                $msgType = "text";
                $content = date("Y-m-d H:i:s",time);
                $result = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, 
                $content);
                echo $result;
            }
        }else{
            echo "";
            exit;
        }
    }
}
?>
 

將代碼保存為index.php。請注意,必須使用專業的開發軟件來執行保存操作,如Notepad++,不要使用Windows自帶的記事本等。保存時需設置格式為「UTF-8無BOM格式」,圖3-13所示是Notepad++的設置處。

保存後使用壓縮軟件WinRAR將其壓縮成ZIP格式,如圖3-14所示。注意不能用RAR格式,因為SAE不支持RAR格式的文件上傳。

圖3-13 UTF-8無BOM格式編碼

圖3-14 壓縮成ZIP文件

這樣就會生成一個index.zip的壓縮文件。

返回之前創建的SAE應用的「代碼管理」頁面,單擊「上傳代碼包」鏈接,如圖3-15所示。

圖3-15 上傳代碼包

單擊「上傳代碼包」後,將彈出「代碼上傳」頁面,單擊「上傳文件」按鈕,選擇剛壓縮好的index.zip文件,上傳文件。上傳成功後,進度條的背景色為綠色,如圖3-16所示。

上傳成功後將回到「代碼管理」頁面,單擊「編輯代碼」鏈接,將彈出編輯頁面。可以看到index.php已經上傳成功,雙擊該文件可以查看其源代碼,如圖3-17所示。

圖3-16 上傳代碼

圖3-17 查看源代碼

另外,新浪雲會自動創建一個index.html文件,需要右擊該文件將其刪除,否則將會干擾後續的接口啟用。

至此,新浪雲應用的創建就完成了,並且成功上傳了微信公眾平台的接口文件。