基于THINKPHP的公众微信开发,自己写的代码的,写的不好,轻喷<?php <br />
<br>
/**<br>
* @author zhiwupei<br>
* <br>
*<br>
*/<br>
class WupeiAction extends Action<br>
{<br>
//微信、易信验证token<br>
public $token='wupei';<br>
//微信、易信提交过来的内容<br>
public $postObj;<br>
//用户回复的内容<br>
public $keyword;<br>
//用户关注事件<br>
public $Event;<br>
//点击菜单事件<br>
public $evenkey;<br>
//公众微信ID号<br>
public $myid;<br>
//用户ID号<br>
public $userid;<br>
//回复XML模板<br>
public $xml;<br>
//回复消息类型<br>
public $msgType;<br>
//微信提供的APPID<br>
public $APPID;<br>
//微信提供的APPSECRET<br>
public $APPSECRET;<br>
public $PicUrl;<br>
public $MsgType;<br>
public $Location_X;<br>
public $Location_Y;<br>
public $textTpl;<br>
function _initialize(){<br>
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];<br>
if (!empty($postStr)){<br>
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);<br>
$this->Event = $postObj->Event; //关注事件<br>
$this->evenkey = $postObj->EventKey;//菜单事件<br>
$this->myid = $postObj->ToUserName;<br>
$this->userid = $postObj->FromUserName;<br>
$this->PicUrl=$postObj->PicUrl;<br>
$this->MsgType=$postObj->MsgType;<br>
if($this->MsgType=="text"){<br>
$this->keyword = trim($postObj->Content);<br>
}else if($this->MsgType=="location"){<br>
$this->Location_X=$postObj->Location_X;<br>
$this->Location_Y=$postObj->Location_Y;<br>
}<br>
}<br>
}<br>
function index(){<br>
//如果 是验证的时候,请把下面一行的注释去了<br>
// $this->valid();<br>
if($this->MsgType=="text"){<br>
$this->sendMessage($this->keyword);<br>
}else if($this->MsgType=="location"){<br>
<br>
}<br>
}<br>
/**<br>
* @param 回复消息的内容 $content<br>
*<br>
*/<br>
function sendMessage($content){<br>
<br>
$this->textTpl = "<xml><br>
<tousername></tousername><br>
<fromusername></fromusername><br>
<createtime>%s</createtime><br>
<msgtype></msgtype><br>
<content></content><br>
<funcflag>0</funcflag><br>
</xml>";<br>
$this->msgType = "text";<br>
$resultStr = sprintf($this->textTpl, $this->userid, $this->myid, time(), $this->msgType, $content);<br>
echo $resultStr;<br>
exit();<br>
<br>
}<br>
/**<br>
* @param unknown $arr<br>
* $arr包括title标题,intro简介,imagepath图片路径,url访问路径,四个属性<br>
* 图片路径用绝对路径,即http://开头<br>
*/<br>
function sendNews($arr){<br>
$this->msgType = "news";<br>
$this->textTpl="<xml><br>
<tousername>userid."]]></tousername><br>
<fromusername>myid."]]></fromusername><br>
<createtime>".time()."</createtime><br>
<msgtype>msgType."]]></msgtype><br>
<articlecount>".count($arr)."</articlecount><br>
<articles>";<br>
<br>
foreach ($arr as $key =>$list){<br>
$this->textTpl.="<item><br>
<title></title>
<br>
<description></description><br>
<picurl></picurl><br>
<url></url><br>
</item><br>
";<br>
}<br>
$this->textTpl.="</articles></xml>";<br>
echo $this->textTpl;<br>
exit();<br>
}<br>
<br>
/**<br>
*验证token方法<br>
*/<br>
public function valid(){<br>
$echoStr = $_GET["echostr"];<br>
if($this->checkSignature()){<br>
echo $echoStr;<br>
exit;<br>
}<br>
}<br>
<br>
function checkSignature(){<br>
$signature = $_GET["signature"];<br>
$timestamp = $_GET["timestamp"];<br>
$nonce = $_GET["nonce"];<br>
$tmpArr = array($this->token, $timestamp, $nonce);<br>
sort($tmpArr);<br>
$tmpStr = implode( $tmpArr );<br>
$tmpStr = sha1( $tmpStr );<br>
<br>
if( $tmpStr == $signature ){<br>
return true;<br>
}else{<br>
return false;<br>
}<br>
}<br>
<br>
function startmemu(){<br>
header("Content-type: text/html; charset=utf-8");<br>
$APPID = "wx01bee286793e0383";<br>
$APPSECRET = "84e324cb2daec6a8a1aea8b19cce465d";<br>
$ACCESS_TOKEN = "kgfind";<br>
$data = ' {<br>
"button":[<br>
{<br>
"type":"click",<br>
"name":"今日歌曲",<br>
"key":"V1001_TODAY_MUSIC"<br>
},<br>
{<br>
"type":"click",<br>
"name":"歌手简介",<br>
"key":"V1001_TODAY_SINGER"<br>
},<br>
{<br>
"name":"菜单",<br>
"sub_button":[<br>
{<br>
"type":"view",<br>
"name":"搜索",<br>
"url":"http://www.soso.com/"<br>
},<br>
{<br>
"type":"view",<br>
"name":"视频",<br>
"url":"http://v.qq.com/"<br>
},<br>
{<br>
"type":"click",<br>
"name":"赞一下我们",<br>
"key":"V1001_GOOD"<br>
}]<br>
}]<br>
}';<br>
<br>
$ch = curl_init();<br>
curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->APPID."&secret=".$this->APPSECRET."");<br>
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");<br>
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);<br>
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);<br>
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');<br>
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);<br>
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);<br>
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);<br>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);<br>
$token = curl_exec($ch);<br>
if (curl_errno($ch)) {<br>
echo 'CURL error on:'.curl_error($ch);<br>
} else {<br>
$arr = json_decode($token, true);<br>
$ACCESS_TOKEN = $arr['access_token'];<br>
curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$ACCESS_TOKEN}");<br>
$rs = curl_exec($ch);<br>
if (curl_errno($ch)) {<br>
echo 'CURL error on:'.curl_error($ch);<br>
} else {<br>
$arr = json_decode($rs, true);<br>
echo "Code:" . $arr['errcode'];<br>
echo "<br>Message:" . $arr['errmsg'];<br>
}<br>
}<br>
<br>
curl_close($ch);<br>
}<br>
}<br>
?>
AD:真正免费,域名+虚机+企业邮箱=0元

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3汉化版
中文版,非常好用

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)