书签 分享 收藏 举报 版权申诉 / 19

类型Sae与微信订阅号的php开发.docx

  • 文档编号:9096392
  • 上传时间:2023-02-03
  • 格式:DOCX
  • 页数:19
  • 大小:346.96KB
";

}

echo"欢迎关注我的微信订阅号:

爱编程(abc_qiu)

";

}

Source中一些参数,如domain名称(hellolamp),文件夹路径(BackImage),匹配到的文件名(abc_qiu.jpg)需要替换成实际开发时的参数。

效果如下:

网页中的图片需事先保存到Storage中。

图片来源是从微信公众账号平台中取得的。

 

在Storage保存图片的方法:

①开启Sotrage服务

②创建domain

③domain管理中的创建文件夹

④将文件上传到文件夹

以上步骤就可以保存将文件保存在storage中了。

然后就可以在代码中使用了(使用方法如前面的代码)。

4)Mysql数据库的使用

//日志记录(到mysql数据库中的Log表)

privatefunctionlogger($log_type,$log_content){

$mysql=newSaeMysql();

//获取IP地址

$ip=$_SERVER['REMOTE_ADDR'];

$sql="insertintoLog(type,content,time,ip)values('{$log_type}','{$log_content}',now(),'{$ip}')";

$mysql->runSql($sql);

//sql执行失败

if($mysql->errno()!

=0){

//sae的日志中心进行记录

if(isset($_SERVER['HTTP_APPNAME'])){

sae_set_display_errors(false);

sae_debug("mysqllogerror".$log_content);

sae_debug("errormessage".$mysql->errmsg());

sae_set_display_errors(true);

}

}

//关闭数据库连接

$mysql->closeDb();

}

首先必须开启mysql服务,并在mysql中创建表。

①开启mysql服务

②管理mysql

③在mysql中创建Table

④我这边的Log表已经创建成功了,所以就看看创建的表结构类型吧

⑤保存的数据截图

表创建成功后,就可以在php中使用了。

使用的示例代码前面已经贴出来了。

全部代码(注释也很详细)如下所示。

将一下代码直接覆盖到你的sae代码,并配置好代码中的一些常量、变量,你就可以在微信中看到效果啦!

php

//定义TOKEN常量(常量使用时,需修改为自己的常量,不能照抄)

define("TOKEN","weixin11111");//

define("ACCESSKEY","yz2lk4m31111111wy");

define("SECRETKEY","2ix5wyw4im5h05hzm3213x111111ymzljw4w2khh3mwxwk");

$chatObj=newchatCls();

//若GET参数不存在echostr,则为用户发送消息,微信需根据实际情况返回消息给用户

if(!

isset($_GET['echostr'])){

//响应用户发送的消息

$chatObj->responseMsg();

}else{

//验证网址接入

$chatObj->valid();

}

//消息的处理

classchatCls

{

//验证签名

publicfunctionvalid(){

//验证通过时原样返回的string:

echostr

$echoStr=$_GET["echostr"];

//待验证比较的字符串

$signature=$_GET["signature"];

//timestamp、nonce、TOKEN待组合、处理的三个字符串

$timestamp=$_GET["timestamp"];

$nonce=$_GET["nonce"];

$token=TOKEN;

//①现将三个字符串排序

$tmpArr=array($token,$timestamp,$nonce);

sort($tmpArr);

//②再将其连接成一个字符串

$tmpStr=implode($tmpArr);

//③进行sha1加密

$tmpStr=sha1($tmpStr);

//④与signature进行比较验证,若相同,则原样返回echostr

if($tmpStr==$signature){

echo$echoStr;

exit;

}

}

//响应消息

publicfunctionresponseMsg(){

$postStr=$GLOBALS["HTTP_RAW_POST_DATA"];

if(!

empty($postStr)){

//记录接收到的消息内容

$this->logger("接收消息",$postStr);

//接收到的消息内容进行xml转化

$postObj=simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);

//取得消息类型

$RX_TYPE=trim($postObj->MsgType);

//消息类型分离

switch($RX_TYPE)

{

//事件消息

case"event":

$result=$this->receiveEvent($postObj);

break;

//①文本消息

case"text":

$result=$this->receiveText($postObj);

break;

//②图片消息

case"image":

$result=$this->receiveImage($postObj);

break;

//③语音消息

case"voice":

$result=$this->receiveVoice($postObj);

break;

//④视频消息

case"video":

$result=$this->receiveVideo($postObj);

break;

//⑤小视频消息

case"shortvideo":

$result=$this->receiveShortVideo($postObj);

break;

//⑥地理位置消息

case"location":

$result=$this->receiveLocation($postObj);

break;

//⑦链接消息

case"link":

$result=$this->receiveLink($postObj);

break;

//其他未知消息

default:

$this->logger("其他","未知消息类型:

".$RX_TYPE);

break;

}

//记录发送的Log内容

$this->logger("回复消息",$result);

echo$result;

}else{

//不含有微信发送来的消息,说明是从别的方式直接访问了网址,所以显示“广告”

$this->showSubscribeImage();

//记录Log

$this->logger("其他","用户直接访问app地址");

exit;

}

}

//接收事件消息

privatefunctionreceiveEvent($object){

$content=date("Y-m-dH:

i:

s",time())."\n事件消息";

$result=$this->transmitText($object,$content);

return$result;

}

//①接收文本消息

privatefunctionreceiveText($object){

$content=date("Y-m-dH:

i:

s",time())."\n文本消息tpj";

$result=$this->transmitText($object,$content);

return$result;

}

//②接收图片消息

privatefunctionreceiveImage($object){

$content=date("Y-m-dH:

i:

s",time())."\n图片消息";

$result=$this->transmitText($object,$content);

return$result;

}

//③接收语音消息

privatefunctionreceiveVoice($object){

$content=date("Y-m-dH:

i:

s",time())."\n语音消息";

$result=$this->transmitText($object,$content);

return$result;

}

//④接收视频消息

privatefunctionreceiveVideo($object){

$content=date("Y-m-dH:

i:

s",time())."\n视频消息";

$result=$this->transmitText($object,$content);

return$result;

}

//⑤接收小视频消息

privatefunctionreceiveShowVideo($object){

$content=date("Y-m-dH:

i:

s",time())."\n小视频消息";

$result=$this->transmitText($object,$content);

return$result;

}

//⑥接收位置消息

privatefunctionreceiveLocation($object){

$content=date("Y-m-dH:

i:

s",time())."\n位置消息";

$result=$this->transmitText($object,$content);

return$result;

}

//⑦接收链接消息

privatefunctionreceiveLink($object){

$content=date("Y-m-dH:

i:

s",time())."\n链接消息";

$result=$this->transmitText($object,$content);

return$result;

}

//回复文本消息

privatefunctiontransmitText($object,$content){

$xmlTpl="

[CDATA[%s]]>

[CDATA[%s]]>

%s

[CDATA[text]]>

[CDATA[%s]]>

";

$result=sprintf($xmlTpl,$object->FromUserName,$object->ToUserName,time(),$content);

return$result;

}

//显示添加关注的图片

privatefunctionshowSubscribeImage(){

$accessKey=ACCESSKEY;

$secretKey=SECRETKEY;

$sae_storage=newSaeStorage($accessKey,$secretKey);

//domain名称

$domainName="hellolamp";

//domain下文件夹路径

$directoryName="BackImage";

//取得该文件夹下的所有文件信息

$lstFiles=$sae_storage->getListByPath($domainName,$directoryName);

//取得所有文件

$files=$lstFiles['files'];

foreach($filesas$imageFile){

//匹配到文件

if($imageFile['Name']=='abc_qiu.jpg'){

$tempName=$directoryName."/".$imageFile['Name'];

//图片链接地址

$imageUrl=$sae_storage->getUrl($domainName,$tempName);

}

}

if(isset($imageUrl)){

echo"

'>

";

}

echo"欢迎关注我的微信订阅号:

爱编程(abc_qiu)

";

}

//日志记录(到mysql数据库中的Log表)

privatefunctionlogger($log_type,$log_content){

$mysql=newSaeMysql();

//获取IP地址

$ip=$_SERVER['REMOTE_ADDR'];

$sql="insertintoLog(type,content,time,ip)values('{$log_type}','{$log_content}',now(),'{$ip}')";

$mysql->runSql($sql);

//sql执行失败

if($mysql->errno()!

=0){

//sae的日志中心进行记录

if(isset($_SERVER['HTTP_APPNAME'])){

sae_set_display_errors(false);

sae_debug("mysqllogerror".$log_content);

sae_debug("errormessage".$mysql->errmsg());

sae_set_display_errors(true);

}

}

//关闭数据库连接

$mysql-

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
Sae 订阅 php 开发
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:Sae与微信订阅号的php开发.docx
链接地址:https://www.bdocx.com/doc/9096392.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开