php版微信自定義回復功能示例
本文實例講述了php版微信自定義回復功能。分享給大家供大家參考,具體如下:

配置好服務器之后,就可以用php實現(xiàn)自動回復了。
index.php中的代碼
<?php
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {
$wechatObj->valid();
}else{
$wechatObj->responseMsg();
}
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
if($this->checkSignature()){
header('content-type:text');
echo $echoStr;
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
public function responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($postStr)){
$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($keyword == "?" || $keyword == "?") //獲取用戶信息
{
$msgType = "text";
$contentStr = date("Y-m-d H:i:s",time()); // 回復的內容
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}
}else{
echo "";
exit;
}
}
}
?>
效果:
當用戶輸入?或者?就會獲取當前時間

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP微信開發(fā)技巧匯總》、《PHP編碼與轉碼操作技巧匯總》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
PHP 開發(fā)者該知道的 5 個 Composer 小技巧
這篇文章主要介紹了PHP 開發(fā)者該知道的 5 個 Composer 小技巧,需要的朋友可以參考下2016-02-02
linux環(huán)境apache多端口配置虛擬主機的方法深入介紹
本篇文章是對linux環(huán)境apache多端口配置虛擬主機的方法進行了詳細的分析介紹,需要的朋友參考下2013-06-06
PHP實現(xiàn)MVC開發(fā)得最簡單的方法——模型
PHP實現(xiàn)MVC開發(fā)得最簡單的方法——模型...2007-04-04

