打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
微信公众平台开发(四) 简单回复功能开发

 [导读] 一、简介微信公众平台可以根据用户发送的信息进行判断,然后给出对应的回复,具有良好的交互性。下文将模拟简单的回复功能,根据这个案例,开发者也可以基本理解微信交互的原理,进行更深层次的开发。二、思路分

一、简介

微信公众平台可以根据用户发送的信息进行判断,然后给出对应的回复,具有良好的交互性。下文将模拟简单的回复功能,根据这个案例,开发者也可以基本理解微信交互的原理,进行更深层次的开发。

二、思路分析

用户发送过来的文本信息,我们可以提取关键字,通过简单的 if...elseif...else... 实现。

关键代码如下:

 

view sourceprint?

1.

if($keyword=="你好"){

2.

  $contentStr= "hello";

3.

}elseif($keyword=="苏州"){

4.

  $contentStr= "上有天堂,下有苏杭";

5.

}else{

6.

  $contentStr= "感谢您关注【卓锦苏州】 微信号:zhuojinsz";

7.

}

 

如果用户发送"你好",则回复"hello",如果用户发送"苏州",则回复"上有天堂,下有苏杭",其他信息,则回复你的欢迎词。

三、完整代码

view sourceprint?

001.

一、简介

002.

 

003.

微信公众平台可以根据用户发送的信息进行判断,然后给出对应的回复,具有良好的交互性。下文将模拟简单的回复功能,根据这个案例,开发者也可以基本理解微信交互的原理,进行更深层次的开发。

004.

 

005.

二、思路分析

006.

 

007.

用户发送过来的文本信息,我们可以提取关键字,通过简单的 if...elseif...else... 实现。

008.

 

009.

关键代码如下:

010.

 

011.

 

012.

if($keyword=="你好"){

013.

  $contentStr= "hello";

014.

}elseif($keyword=="苏州"){

015.

  $contentStr= "上有天堂,下有苏杭";

016.

}else{

017.

  $contentStr= "感谢您关注【卓锦苏州】 微信号:zhuojinsz";

018.

}

019.

 

020.

如果用户发送"你好",则回复"hello",如果用户发送"苏州",则回复"上有天堂,下有苏杭",其他信息,则回复你的欢迎词。

021.

 

022.

三、完整代码

023.

 

024.

 

025.

<!--?php

026.

/**

027.

* wechat php test

028.

*/

029.

 

030.

//define your token

031.

define("TOKEN","zhuojin");

032.

$wechatObj = new wechatCallbackapiTest();

033.

$wechatObj--->responseMsg();

034.

//$wechatObj->valid();

035.

 

036.

class wechatCallbackapiTest

037.

{

038.

/*public function valid()

039.

{

040.

$echoStr = $_GET["echostr"];

041.

 

042.

//valid signature , option

043.

if($this->checkSignature()){

044.

echo $echoStr;

045.

exit;

046.

}

047.

}*/

048.

 

049.

public function responseMsg()

050.

{

051.

//get post data, May be due to thedifferent environments

052.

$postStr =$GLOBALS["HTTP_RAW_POST_DATA"];

053.

 

054.

//extract post data

055.

if (!emptyempty($postStr)){

056.

 

057.

$postObj = simplexml_load_string($postStr,'www.sm136.com', LIBXML_NOCDATA);

058.

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

059.

 

060.

switch($RX_TYPE)

061.

{

062.

case "text":

063.

$resultStr =$this->handleText($postObj);

064.

break;

065.

case "event":

066.

$resultStr =$this->handleEvent($postObj);

067.

break;

068.

default:

069.

$resultStr = "Unknow msg type:".$RX_TYPE;

070.

break;

071.

}

072.

echo $resultStr;

073.

}else {

074.

echo "";

075.

exit;

076.

}

077.

}

078.

 

079.

public function handleText($postObj)

080.

{

081.

$fromUsername = $postObj->FromUserName;

082.

$toUsername = $postObj->ToUserName;

083.

$keyword = trim($postObj->Content);

084.

$time = time();

085.

$textTpl = "<xml>

086.

<tousername><!--[CDATA[%s]]--></tousername>

087.

<fromusername><!--[CDATA[%s]]--></fromusername>

088.

<createtime>%s</createtime>

089.

<msgtype><!--[CDATA[%s]]--></msgtype>

090.

<content><!--[CDATA[%s]]--></content>

091.

<funcflag>0</funcflag>

092.

</xml>";           

093.

if(!emptyempty( $keyword ))

094.

{

095.

$msgType = "text";

096.

 

097.

if($keyword=="你好"){

098.

$contentStr = "hello";

099.

}elseif($keyword=="苏州"){

100.

$contentStr = "上有天堂,下有苏杭";

101.

}else{

102.

$contentStr = "感谢您关注【卓锦苏州】 微信号:zhuojinsz";

103.

}

104.

$resultStr = sprintf($textTpl,$fromUsername, $toUsername, $time, $msgType, $contentStr);

105.

echo $resultStr;

106.

}else{

107.

echo "Input something...";

108.

}

109.

}

110.

 

111.

public function handleEvent($object)

112.

{

113.

$contentStr = "";

114.

switch ($object->Event)

115.

{

116.

case "subscribe":

117.

$contentStr = "感谢您关注【卓锦苏州】"."\n"."微信号:zhuojinsz"."\n"."卓越锦绣,名城苏州,我们为您提供苏州本地生活指南,苏州相关信息查询,做最好的苏州微信平台。"."\n"."目前平台功能如下:"."\n"."1 查天气,如输入:苏州天气"."\n"."2 查公交,如输入:苏州公交178"."\n"."3 翻译,如输入:翻译I love you"."\n"."4 苏州信息查询,如输入:苏州观前街"."\n"."更多内容,敬请期待...";

118.

break;

119.

default :

120.

$contentStr = "Unknow Event:".$object->Event;

121.

break;

122.

}

123.

$resultStr =$this->responseText($object, $contentStr);

124.

return $resultStr;

125.

}

126.

 

127.

public function responseText($object,$content, $flag=0)

128.

{

129.

$textTpl = "<xml>

130.

<tousername><!--[CDATA[%s]]--></tousername>

131.

<fromusername><!--[CDATA[%s]]--></fromusername>

132.

<createtime>%s</createtime>

133.

<msgtype><!--[CDATA[text]]--></msgtype>

134.

<content><!--[CDATA[%s]]--></content>

135.

<funcflag>%d</funcflag>

136.

</xml>";

137.

$resultStr = sprintf($textTpl,$object->FromUserName, $object->ToUserName, time(), $content, $flag);

138.

return $resultStr;

139.

}

140.

 

141.

 

142.

private function checkSignature()

143.

{

144.

$signature = $_GET["signature"];

145.

$timestamp = $_GET["timestamp"];

146.

$nonce = $_GET["nonce"];  

147.

 

148.

$token = TOKEN;

149.

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

150.

sort($tmpArr);

151.

$tmpStr = implode( $tmpArr );

152.

$tmpStr = sha1( $tmpStr );

153.

 

154.

if( $tmpStr == $signature ){

155.

return true;

156.

}else{

157.

return false;

158.

}

159.

}

160.

}

161.

 

162.

?>

163.

 

164.

四、测试

165.

 

166.

 

167.

 

168.

五、关注

四、测试

\


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
微信公众平台开发(三) 订阅事件(subscribe)处理
微信扫描带参数 被动推送事件
微信公众平台开发(二) 微信公众平台示例代码分析
php微信推送消息接口的实现方式
微信公众平台开发入门教程
三、微信开发:自定义菜单
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服