微信号:该公众号暂时无法提供服务,请稍后再试 [ 2.0 版本 ]
不知道说什么好。直接噻代码。
<?php
/**
* <p>File:WechatController.php</p>
* <p>Description:接入微信公众平台开发、Token验证、消息回复</p>
* <p>Copyright: Copyright (c) 2016年1月7日 下午15:31:18</p>
* <p>Company: umeke.com.cn</p>
* @author 肖建利
* @version 1.0
*/
namespace app\controllers;
use yii\web\Controller;
class WechatController extends Controller{
//服务器配置调用
public function actionIndex(){
//设置Token为常量
define("TOKEN", "umeke");
//判断微信验证传递过来数据
if(isset($_GET["echostr"])){//如果有数据将验证(第一次接口配置信息时使用)
$this->actionValid();
}else{//如果没有传递过来数据将相应用户发送过来的数据
$this->actionResponsemsg();
}
}
//接受到的数据(也可以称相应数据)
public function actionResponsemsg(){
//获取后数据,可能是由于不同的环境,用户在发送数据的时候数据格式是用XML来接收就要用这个函数了,不能用POST
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//提取后数据
if (!empty($postStr)){
//该函数检查自己的有效性来防止XML外部实体注入
libxml_disable_entity_loader(true);
//simplexml_load_string()函数是将数XML字符串转成对象
$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(!empty( $keyword ))
{
$msgType = "text";
$contentStr = "Welcome to wechat world!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo "Input something...";
}
}else {
echo "";
exit;
}
}
}
共 0 个回答
没有找到数据。
心灵艺术 广东陆丰
注册时间:2016-01-06
最后登录:2024-11-01
在线时长:34小时59分
最后登录:2024-11-01
在线时长:34小时59分
- 粉丝3
- 金钱1945
- 威望20
- 积分2485