付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、云计算大作业一、实验目的:此次大作业实现了Web网页云平台的部署,数据库的写操作,以及微信公众号的建立以及关联;2 .通过实际的部署对云平台有实际深入的了解,体会云平台相对于传统平台的优势;3 .培养建立相对复杂系统的能力;二、实验平台:云平台使用的是新浪云,因为使用初期是免费的便于开发。Web工程用MyEclipse14建立,数据库采用云平台上的公共Mysql数据库,虽然安全性和稳定性*,但是免费。微信申请的公众号为订阅号。本实验网页采用jspWeb工程,微信接口采用php。三、实验过程:实验参考了大量的网上教程,期中一些为直接引用。申请云平台:二辘码追承I注邮使用你在就有怅罟由目到潟口打碎
2、,斗同01直录宜悻帐号3|满卬儆博帕密到:若才L一力登录捏E.第卷帐号安军,造1Z'宦木兰iUTLHJzIlF族以留EXWdbocomfl大创建新应用:“控制台"一>“SAE->“创建新应用”;I平台应用汇总昨天前天E-J总访问量3339云豆总消耗(颗)4515I应用管理+创建新应用回导人的用依照提示创建新应用。由于本实验网页采用jspWeb工程,微信接口采用php。所以分别建立java1.7jvm的云平台和php应用,由于是轻应用,所以设置应如下图所示,否则免费额度一天就用光。如此配置一天要100左右。二级域名自定义,当然土豪可申请一级域名。网坛亚环或PHP5.
3、S-PHP5«Pylhcii.7Java1.7匕留。道应用峥上闱.*磔碑512MLC翌跟企业用户,什配可日1024MZ*量17图3:Java1.7JVM的建立运行环境PUP5.3-PHP5.6Python2.7Java17容器图4:PHP空应用的建立溶白驰本蛉齿用向鼠认念zhaogao胸口灿国昶眸>dinzi,gm4sB开发区hEp-i'<112477EJ49applmucom图5:控制台建立好的平台(域名显示)编辑和添加代码:点击“管理应用”(就是网站的名字),进入管理界面,11247768433*Q3Q总之F用8E叵用Bos曲ir费融京e39笠#里口晡畀0叵睚
4、镭二驷京§殖雌t松1回官*H£036翩加点弱三方存黄i占用点击左栏“应用”->“代码管理”进入如下页面:己月I伯咏肝脂I臣触斯开舞企土而日湿亘土岸寰雁k度相播向渊耶如厕照就.201M6-10httvi/n.UHTTGMai.界后WftMiiB帚后任。113121耽(之前可能要点击“创建版本”,记不清了)总之,只要看到这样的界面,就点击“编辑代码“,上传你已经编辑好的php的zip包(jvm是war包,具体导出步骤见下文)。Eclipse导出war包:"file""export"”选择一war形式导出“。点击上传代码包,选择pHp
5、代码上传。(java代码因为用带数据,所以开数据库之后才能知道接口修改代码,再上传。)开启公共数据库:点击左栏“数据库与缓存服务”,选择共享性数据库,创建版本免责配额圜氨据库室存服务独享型MySQL信共享型MySQLDeferredJot>KVDBReais连接信息干隹地力上v1/rdcsacsinacomcn址:端口;3307¥J(据库名:app_l32477GS493用户名:显示密码:显示相关链接代码:/使用主库写数据使用SaeUserInfo提供的静态方法获取应用的AccessKey和SecretKeyStringURL="jdbc:mysql:/"S
6、tringusername=SaeUserInfo.getAccessKey();Stringpassword=SaeUserInfo.getSecretKey();Stringdriver="com.mysql.jdbc.Driver"Class.forName(driver).newInstance();Connectioncon=DriverManager.getConnection(url,username,password);/使用从库读数据StringURL="jdbc:mysql:/"/通过SaeUserInfo提供的静态方法获取应用的ac
7、cess_key和secret_keyStringUsername=SaeUserInfo.getAccessKey();StringPassword=SaeUserInfo.getSecretKey();StringDriver="com.mysql.jdbc.Driver"Class.forName(Driver).newInstance();Connectioncon=DriverManager.getConnection(URL,Username,Password);之后上传Java代码。四、实验部分代码:<?php/*罗网计划*/header('Co
8、ntent-type:text');define("TOKEN","weixin");$wechatObj=newwechatCallbackapiTest();if(!isset($_GET'echost门)$wechatObj->responseMsg();else$wechatObj->valid();classwechatCallbackapiTest/验证签名publicfunctionvalid()$echoStr=$_GET"echostr"$signature=$_GET"sign
9、ature"$timestamp=$_GET"timestamp"$nonce=$_GET"nonce"$token=TOKEN;$tmpArr=array($token,$timestamp,$nonce);sort($tmpArr,SORT_STRING);$tmpStr=implode($tmpArr);$tmpStr=sha1($tmpStr);if($tmpStr=$signature)echo$echoStr;exit;/响应消息publicfunctionresponseMsg()$postStr=$GLOBALS"HT
10、TP_RAW_POST_DATA"if(!empty($postStr)$this->logger("Rrn".$postStr);$postObj=simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);$RX_TYPE=trim($postObj->MsgType);/消息类型分离switch($RX_TYPE)case"event":$result=$this->receiveEvent($postObj);break;case&
11、quot;text":$result=$this->receiveText($postObj);break;case"image":$result=$this->receiveImage($postObj);break;case"location":$result=$this->receiveLocation($postObj);break;case"voice":$result=$this->receiveVoice($postObj);break;case"video":cas
12、e"shortvideo":$result=$this->receiveVideo($postObj);break;case"link":$result=$this->receiveLink($postObj);break;default:$result="unknownmsgtype:".$RX_TYPE;break;$this->logger("Trn".$result);echo$result;elseecho""exit;/接收事件消息privatefunctionre
13、ceiveEvent($object)$content=""switch($object->Event)case"subscribe":$content="欢迎使用罗网微信号n请回复以下关键字:文本表情单图文多图文音乐n请按住说话或点击+再分别发送以下内容:语音图片小视频我的收藏位置"$content.=(!empty($object->EventKey)?("n来自二维码场景".str_replace("qrscene_","",$object->Even
14、tKey):""$content.="nn".'<ahref="">罗网计划</a>'break;case"unsubscribe":$content="取消关注"break;case"CLICK":switch($object->EventKey)case"COMPANY":$content=array();$content=array("Title"=>"罗网计划&quo
15、t;,"Description"=>"","PicUrl"=>"http:$content=break;=>"");break;default:点击菜单:".$object->EventKey;)break;case"VIEW":$content="跳转链接".$object->EventKey;break;case"SCAN":$content="扫描场景".$object->E
16、ventKey;break;case"LOCATION":$content="上传位置:纬度".$object->Latitude."经度".$object->Longitude;break;case"scancode_waitmsg":if($object->ScanCodeInfo->ScanType="qrcode")$content="扫码带提示:类型二维码结果:".$object->ScanCodeInfo->ScanResult
17、;elseif($object->ScanCodeInfo->ScanType="barcode")$codeinfo=explode(",",strval($object->ScanCodeInfo->ScanResult);$codeValue=$codeinfo1;$content="扫码带提示:类型条形码结果:".$codeValue;else$content="扫码带提示:类型".$object->ScanCodeInfo->ScanType."结果:&quo
18、t;.$object->ScanCodeInfo->ScanResult;break;case"scancode_push":$content="扫码推事件"break;case"pic_sysphoto":$content="系统拍照"break;case"pic_weixin":$content="相册发图:数量".$object->SendPicsInfo->Count;break;case"pic_photo_or_album&quo
19、t;:$content="拍照或者相册:数量".$object->SendPicsInfo->Count;break;case"location_select":$content="发送位置:标签".$object->SendLocationInfo->Label;break;default:$content="receiveanewevent:".$object->Event;break;if(is_array($content)$result=$this->transmitN
20、ews($object,$content);else$result=$this->transmitText($object,$content);return$result;/接收文本消息privatefunctionreceiveText($object)$keyword=trim($object->Content);在线客服")/多客服人工回复模式if(strstr($keyword,"请问在吗")|strstr($keyword,$result=$this->transmitService($object);return$result;/自动
21、回复模式if(strstr($keyword,"文本")$content="这是个文本消息"elseif(strstr($keyword,"表情")$content="微笑:/:)n乒乓:/:oon中国:".$this->bytes_to_emoji(0x1F1E8).$this->bytes_to_emoji(0x1F1F3)."n仙人掌:".$this->bytes_to_emoji(0x1F335);elseif(strstr($keyword,"单图文&quo
22、t;)$content=array();$content=array("Title"=>"单图文标题","Description"=>"单图文内容","PicUrl"=>"http:elseif(strstr($keyword,图文")|strstr($keyword,"多图文")$content=array();$content=array("Title"=>"多图文1标题","D
23、escription"=>"","PicUrl"=>"http:=>""PicUrl"=>"http:$content=array("Title"=>"多图文3标题","Description"=>"","PicUrl"=>"http:elseif(strstr($keyword,"音乐")$content=array();$
24、content=array("Title"=>"最炫民族风","Description"=>"歌手:凤凰传奇","MusicUrl"=>"http:/mascot-"HQMusicUrl"=>"http:/mascot-else$content=date("Y-m-dH:i:s",time()."nn".'<ahref="”>罗网计戈U</a>'
25、;if(is_array($content)if(isset($content0)$result=$this->transmitNews($object,$content);elseif(isset($content'MusicUrl')$result=$this->transmitMusic($object,$content);else$result=$this->transmitText($object,$content);return$result;/接收图片消息privatefunctionreceiveImage($object)$content=a
26、rray("MediaId"=>$object->MediaId);$result=$this->transmitImage($object,$content);return$result;/接收位置消息privatefunctionreceiveLocation($object)$content="你发送的是位置,经度为:".$object->Location_Y.";纬度为:".$object->Location_X.";缩放级别为:".$object->Scale.&quo
27、t;位置为:".$object->Label;$result=$this->transmitText($object,$content);return$result;/接收语音消息privatefunctionreceiveVoice($object)if(isset($object->Recognition)&&!empty($object->Recognition)$content="你刚才说的是:".$object->Recognition;$result=$this->transmitText($obje
28、ct,$content);else$content=array("MediaId"=>$object->MediaId);$result=$this->transmitVoice($object,$content);return$result;/接收视频消息privatefunctionreceiveVideo($object)$content="上传视频类型:".$object->MsgType;$result=$this->transmitText($object,$content);return$result;/接收链
29、接消息privatefunctionreceiveLink($object)$content="你发送的是链接,标题为:".$object->Title."内容为:".$object->Description."链接地址为:”.$object->Url;$result=$this->transmitText($object,$content);return$result;/回复文本消息privatefunctiontransmitText($object,$content)if(!isset($content)|empt
30、y($content)return""$xmlTpl="<xml><ToUserName><!CDATA%s></ToUserName><FromUserName><!CDATA%s></FromUserName><CreateTime>%s</CreateTime><MsgType><!CDATAtext></MsgType><Content><!CDATA%s></Content>&
31、lt;/xml>"$result=sprintf($xmlTpl,$object->FromUserName,$object->ToUserName,time(),$content);return$result;/回复图文消息privatefunctiontransmitNews($object,$newsArray)(if(!is_array($newsArray)return""$itemTpl="<item><Title><!CDATA%s></Title><Descripti
32、on><!CDATA%s></Description><PicUrl><!CDATA%s></PicUrl><Url><!CDATA%s></Url></item>$item_str=""foreach($newsArrayas$item)$item_str.=sprintf($itemTpl,$item'Title',$item'Description',$item'PicUrl',$item'Url
33、39;);$xmlTpl="<xml><ToUserName><!CDATA%s></ToUserName><FromUserName><!CDATA%s></FromUserName><CreateTime>%s</CreateTime><MsgType><!CDATAnews></MsgType><ArticleCount>%s</ArticleCount><Articles>$item_str<
34、/Articles></xml>"$result=sprintf($xmlTpl,$object->FromUserName,$object->ToUserName,time(),count($newsArray);return$result;/回复音乐消息privatefunctiontransmitMusic($object,$musicArray)if(!is_array($musicArray)return""$itemTpl="<Music><Title><!CDATA%s>&l
35、t;/Title><Description><!CDATA%s></Description><MusicUrl><!CDATA%s></MusicUrl><HQMusicUrl><!CDATA%s></HQMusicUrl>$item_str=sprintf($itemTpl,$musicArray'Title',$musicArray'Description',$musicArray'MusicUrl',$musicArray
36、9;HQMusicUrl');$xmlTpl="<xml><ToUserName><!CDATA%s></ToUserName><FromUserName><!CDATA%s></FromUserName><CreateTime>%s</CreateTime><MsgType><!CDATAmusic></MsgType>$item_str</xml>"$result=sprintf($xmlTpl,$objec
37、t->FromUserName,$object->ToUserName,time();return$result;/回复图片消息privatefunctiontransmitImage($object,$imageArray)$itemTpl="<Image><MediaId><!CDATA%s></MediaId></Image>"$item_str=sprintf($itemTpl,$imageArray'MediaId');$xmlTpl="<xml><
38、ToUserName><!CDATA%s></ToUserName><FromUserName><!CDATA%s></FromUserName><CreateTime>%s</CreateTime><MsgType><!CDATAimage></MsgType>$item_str</xml>"$result=sprintf($xmlTpl,$object->FromUserName,$object->ToUserName,time()
39、;return$result;/回复语音消息privatefunctiontransmitVoice($object,$voiceArray)$itemTpl="<Voice><MediaId><!CDATA%s></MediaId></Voice>"$item_str=sprintf($itemTpl,$voiceArray'MediaId');$xmlTpl="<xml><ToUserName><!CDATA%s></ToUserName>
40、;<FromUserName><!CDATA%s></FromUserName><CreateTime>%s</CreateTime><MsgType><!CDATAvoice></MsgType>$item_str</xml>"$result=sprintf($xmlTpl,$object->FromUserName,$object->ToUserName,time();return$result;/回复视频消息privatefunctiontransmitVid
41、eo($object,$videoArray)$itemTpl="<Video><MediaId><!CDATA%s></MediaId><ThumbMediaId><!CDATA%s></ThumbMediaId><Title><!CDATA%s></Title><Description><!CDATA%s></Description></Video>"$item_str=sprintf($itemTpl,
42、$videoArray'MediaId',$videoArray'ThumbMediaId',$videoArray'Title',$videoArray'Description');$xmlTpl="<xml><ToUserName><!CDATA%s></ToUserName><FromUserName><!CDATA%s></FromUserName><CreateTime>%s</CreateTime>&l
43、t;MsgType><!CDATAvideo></MsgType>$item_str</xml>"$result=sprintf($xmlTpl,$object->FromUserName,$object->ToUserName,time();return$result;/回复多客服消息privatefunctiontransmitService($object)($xmlTpl="<xml><ToUserName><!CDATA%s></ToUserName><Fr
44、omUserName><!CDATA%s></FromUserName><CreateTime>%s</CreateTime><MsgType><!CDATAtransfer_customer_service></MsgType></xml>"$result=sprintf($xmlTpl,$object->FromUserName,$object->ToUserName,time();return$result;/回复第三方接口消息privatefunctionrelayPart3($url,$rawData)($headers=array("Content-Type:text/xml;charset=utf-8");$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 典型目的房地产估价
- 公路工程基本建设投资
- 会计基础财务报表
- 足球协会述职报告范文(3篇)
- 2026年11月地推人员年终技能强化集训计划
- 医务人员范文工作述职报告范文(范文7篇)
- 信用评级模型开发合作协议2026
- 行政主管个人年终述职报告(3篇)
- 2026商务用车融资租赁ABS产品结构化设计与风险定价深度研究报告
- 2026靶材溅射技术发展趋势与显示面板行业配套能力评估报告
- 视觉营销(第2版) 课件 3-4-2经典构图法
- 高中数学教材习题高考化改编案例集原卷
- 规培医生心理健康维护体系
- 严重心律失常急救护理
- 码头项目事故案例
- 机械制造业的生产调度措施
- 小学生消毒劳动实践课件
- 单位驾驶员劳务派遣投标方案投标文件(技术方案)
- DL∕T 459-2017 电力用直流电源设备
- 飞机结构强度规范课件
- 民航安检理论与实务PPT完整全套教学课件
评论
0/150
提交评论