php如何验证微信公众号token全教程
1、申请一个公众号(这里省略)
得到一个这样的配置
2、代码编写:
// 定义token秘钥常量
define(“TOKEN”, “x1h1zgucojzhkwpfljf2cb4joxqmqw5v”); // 这里改成你自己的Token,是自定义的,不过要和微信公众号后台的对应起来
$wechatObj = new wechatCallbackapiTest();
if ($_GET[‘echostr’]) {
// 验证
$wechatObj->valid();
} else {
// 自动恢复消息
$wechatObj->responseMsg();
}
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET[“echostr”];
if ($this->checkSignature()) {
echo $echoStr;
exit;
}
}
public function responseMsg()
{
$postStr = file_get_contents(‘php://input’); // 接收XML数据
if (!empty($postStr)) {
$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement’, LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName; // 用户open_id
$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 = “你好,欢迎来到WEB学习”;
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
} else {
echo “”;
}
} else {
echo “”;
exit;
}
}
private function checkSignature()
{
$signature = $_GET[“signature”];
$timestamp = $_GET[“timestamp”];
$nonce = $_GET[“nonce”];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if ($tmpStr == $signature) {
return true;
} else {
return false;
}
}
}
3、将上面代码生成php文件上传至根目录即可(服务器地址)
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
5.如有侵权请联系客服邮件3214567959@qq.com,我们会及时删除
A7站 » php如何验证微信公众号token全教程