![微信公众平台开发:从零基础到ThinkPHP5高性能框架实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/102/860102/b_860102.jpg)
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所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0049_0001.jpg?sign=1739497291-4sAXZeZ9zufBauPW4ID9CMUrf7C8rpea-0-3220d2b5ed1174f79b9769cd2f04d363)
图3-1 SAE登录界面
如果你还没有新浪微博账号,需要注册一个。注册新浪微博账号的过程,这里就不介绍了。在图3-1中填写新浪微博账号及密码之后,单击“登录”按钮,将跳转到授权确认页面,如图3-2所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0050_0001.jpg?sign=1739497291-wYO4MlUaLNIIH2KttAxg6upWRUjHRaPV-0-837b877bfc1266b1fb603aa47d28e7a6)
图3-2 SAE新浪云计算平台授权确认页面
单击“授权”按钮,将跳转到SAE用户注册页面,如图3-3所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0050_0002.jpg?sign=1739497291-srJ6nQeI2kFarhbgdHUhYKNBuVaJI2iZ-0-64647991540faf16578a263ab1275869)
图3-3 SAE用户注册页面
填写“真实姓名”“安全邮箱”“安全密码”“确认密码”“绑定手机”及“验证码”之后,单击“下一步”按钮,将跳转到手机号验证页面,如图3-4所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0050_0003.jpg?sign=1739497291-dIVSN6ZDIwtgluEoY9MTkXbCEvmjSeiW-0-e376ba9f843185796ea2fde68c04033e)
图3-4 SAE手机认证页面
填写手机收到的短信验证码后,单击“验证手机”按钮,将提示注册成功。
这样就成功注册了SAE账号。使用注册成功的微博账号登录SAE,登录后的页面如图3-5所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0050_0004.jpg?sign=1739497291-AZxxgdxO32wZOe3ykfL1RjL9J3ex97qL-0-9f4b43f49036b70f0d704d6898ec391f)
图3-5 SAE首页
在最上方右侧的导航列表中,单击“我的应用”链接,再从下拉列表中选择“应用列表”链接,将跳转到“应用列表”页面,如图3-6所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0051_0001.jpg?sign=1739497291-p9ywOlspZe2pRhmSCuuXP7PZF5oUtSDx-0-07df52c3800a7d8ced6442cf2e48f628)
图3-6 应用列表
单击页面中的“创建新应用”按钮,这时会弹出提示框,提示禁止放置违法违规内容。单击“继续创建”按钮,弹出创建应用页面,如图3-7所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0051_0002.jpg?sign=1739497291-PBkHmITj6huAUHQshbB2nhTEpSTtXPS6-0-f9decbd8e3d089c840d2942864560cd9)
图3-7 创建应用
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0051_0003.jpg?sign=1739497291-uiHU9deXYwdGpJ9VRPNRcGSxSYtbGQMS-0-92cb264cabbcb525cde2dc59ea4fe9e0)
图3-8 应用创建成功
在创建应用页面中,依次填写二级域名AppID、“应用名称”、“验证码”,“开发语言”选择PHP,“运行环境”选择“标准环境”,“语言版本”选择5.3。如果AppID已经被其他人注册过,会提示已经被占用,需要重新填入。填写完毕后,单击“创建应用”按钮,将提示应用创建成功,如图3-8所示。
应用创建成功之后,将自动跳转到“代码管理”页面,SAE提供了3种代码管理方式,分别是云空间、Git和SVN,如图3-9所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0051_0004.jpg?sign=1739497291-DJpVH96P8V2hhjDK97YT05AH07SRRz4J-0-be251e1ffb48e55c816f59ba3feb4f11)
图3-9 代码管理
代码管理方式一旦选定就不能更改了。这里选择SVN,即单击图3-9中的SVN按钮。系统将弹出消息框,询问是否确定选定,再单击“确定”按钮即可。这时系统将要求创建版本,如图3-10所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0052_0001.jpg?sign=1739497291-OtUakMqXaNksVA3aHEuMACtidMwlzdII-0-7c576634eeb2f23676136ddf5d98d2ba)
图3-10 创建版本
单击“创建版本”按钮,将弹出创建版本页面,如图3-11所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0052_0002.jpg?sign=1739497291-za6rOCdATOP8MYDj2QjXGoeZvii91VYb-0-c3ad3b39a1accede8135118e3fcbab75)
图3-11 开始创建版本
版本号默认为1,可以不用更改,直接单击“创建”按钮,这时会弹出安全密码输入框。正确输入安全密码之后,应用版本就设置好了,如图3-12所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0052_0003.jpg?sign=1739497291-fQSHH4KSqoTXcBEQ5PB90a1ccmxuhMIh-0-078c6b9b22c13a9acbfd6a9cb8c170cb)
图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++的设置处。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0054_0001.jpg?sign=1739497291-cg6HB44cR50p744YLlwtAu6bYm1zTXTa-0-cc0b08a2de7f58312e5138adcb405f78)
图3-13 UTF-8无BOM格式编码
保存后使用压缩软件WinRAR将其压缩成ZIP格式,如图3-14所示。注意不能用RAR格式,因为SAE不支持RAR格式的文件上传。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0054_0002.jpg?sign=1739497291-ZPMUt0erJzI01cm98ESFoMdxQhrGeXho-0-cb183929274d188ff98acc451c1b951b)
图3-14 压缩成ZIP文件
这样就会生成一个index.zip的压缩文件。
返回之前创建的SAE应用的“代码管理”页面,单击“上传代码包”链接,如图3-15所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0054_0003.jpg?sign=1739497291-ISf4D5ssyQgGoYJyZS8ofHTf4qhrlBwy-0-a096fb62c62a549a74c102fafde3f8e1)
图3-15 上传代码包
单击“上传代码包”后,将弹出“代码上传”页面,单击“上传文件”按钮,选择刚压缩好的index.zip文件,上传文件。上传成功后,进度条的背景色为绿色,如图3-16所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0055_0001.jpg?sign=1739497291-Uku8PJ9BazqcxQwXThdZouSkK7uYZ5xb-0-6939306a1d9404295500d2d26be0ce09)
图3-16 上传代码
上传成功后将回到“代码管理”页面,单击“编辑代码”链接,将弹出编辑页面。可以看到index.php已经上传成功,双击该文件可以查看其源代码,如图3-17所示。
![](https://epubservercos.yuewen.com/1A0FDB/7729791404963501/epubprivate/OEBPS/Images/figure_0055_0002.jpg?sign=1739497291-Fdg8UjDXza8Fm1Tv25QzR4CnuOL9XVIr-0-6234bccb76d2661d332f8c01e2b15270)
图3-17 查看源代码
另外,新浪云会自动创建一个index.html文件,需要右击该文件将其删除,否则将会干扰后续的接口启用。
至此,新浪云应用的创建就完成了,并且成功上传了微信公众平台的接口文件。