微信公眾號之自動回覆文字 -- PHP
首先得設定一個 可以接受 微信伺服器 發過來 的東西的 無許可權 的接收資訊的網址
怎麼設定自己去官方文件上看看
然後微信 會 發個東西來 驗證一下你 的這個網址是否正確
具體驗證操作程式碼如下
/**
* 微信接入
*/
function sss() {
//$this->responseMsg();
//如果相等,驗證成功就返回echostr 只需 一次呼叫
if ($this->checkSignature()) {
//返回echostr
$echostr = $_GET['echostr'];
if ($echostr) {
echo $echostr;
} else {
echo "Access error.";
}
}
exit;
}
//檢查標籤
function checkSignature() {
//先獲取到這三個引數
$signature = $_GET['signature'];
$nonce = $_GET['nonce'];
$timestamp = $_GET['timestamp'];
//把這三個引數存到一個陣列裡面
$tmpArr = array($timestamp, $nonce, $this->token);//微信公眾號自己設定的值
//進行字典排序
sort($tmpArr);
//把陣列中的元素合併成字串,impode()函式是用來將一個陣列合併成字串的
$tmpStr = implode($tmpArr);
//sha1加密,呼叫sha1函式
$tmpStr = sha1($tmpStr);
//判斷加密後的字串是否和signature相等
if ($tmpStr == $signature) {
return true;
}
return false;
}
那麼驗證成功後需要注意的一點是
從現在開始,這個傳送的網址就已經生效了,需要做的是
把這個驗證程式碼給去掉,去寫你的業務邏輯程式碼
接下來就好處理了,微信公眾號上 使用者 發的訊息,都會經過 微信伺服器 轉發到你寫的這個 方法來
public function responseMsg() {
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //接收微信發來的XML資料
//extract post data
if (!empty($postStr)) {
//解析post來的XML為一個物件$postObj
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName; //請求訊息的使用者
$toUsername = $postObj->ToUserName; //"我"的公眾號id
$keyword = trim($postObj->Content); //接受到使用者的訊息內容
$Latitude = $postObj->Latitude; //緯度
$Longitude = $postObj->Longitude; //經度
$Precision = $postObj->Precision; //地理位置精度
$Event = $postObj->Event; //事件型別
$time = time(); //時間戳
$msgtype = 'text'; //訊息型別:文字
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
/**
* 地理位置確認
*/
if ($Event == 'LOCATION') {
$useraddress = $this->upuser($fromUsername, $Longitude, $Latitude, $Precision);
// $this->sendmsg($textTpl, $fromUsername, $toUsername, $time, $msgtype, "您當前位置是:{$useraddress}");
die;
}
//簽到設定
if (strpos($keyword, "簽到") !== false ) {
$contentStr = "簽到成功。";
}
}
if (empty($ary[$keyword]) && empty($contentStr)) {
$contentStr = M("setting")->where("id = 6 and state = 1")->getField("setval");
$contentStr = $contentStr ? $contentStr : '歡迎關注乖寶寶兒童攝影。';
} else {
$contentStr = $contentStr ? $contentStr : $ary[$keyword];
}
$this->sendmsg($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
} else {
echo "";
}
}
/**
*返回訊息給 微信伺服器,注意格式。。。
*/
function sendmsg($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr) {
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
echo $resultStr;
}
相關文章
- 微信公眾號自動回覆_JavaJava
- 微信公眾號自動回覆新增檔案
- Python + Tornado 搭建自動回覆微信公眾號Python
- 微信公眾號回覆小程式卡片如何實現?
- 海外微信公眾號不能設定被關注自動回覆訊息解決方案
- PHP微信開發——自動回覆PHP
- 微信公眾號快速開發(二)專案搭建與被動回覆
- 微信公眾號下發紅包 -- PHPPHP
- 微信開發之公眾號
- 微信開發實戰(5)—粉絲關注開發者公眾號時,自動回覆訊息
- PHP微信公眾號開發——公共方法PHP
- JAVA微信公眾號輸入選擇回覆文字或者圖文,列輸入1回覆一圖文或者文字Java
- 微信公眾號-點選選單回覆圖片二維碼
- 圖靈教育微信公眾號關鍵詞回覆一覽表圖靈
- php 獲取微信公眾號access_tokenPHP
- 微信公眾號開發之坑(一)
- thinkphp整合系列之微信公眾號支付PHP
- 微信訂閱號實現AI自動回覆AI
- 微信支付V3微信公眾號支付PHP教程(thinkPHP5公眾號支付)/JSSDK的使用PHPJS
- 微信公眾號智慧回答
- 微信公眾號開發
- 微信公眾號系統
- 微信公眾號--入門
- 微信公眾號開發之客服訊息
- 微信公眾號接入月之暗面Kimi
- 微信公眾號投票活動製作教程 微信公眾號投票怎麼弄?
- 4.PHP微信公眾平臺開發 - 簡單回覆功能開發PHP
- 利用 EasyWeChat 和 ChatterBot 簡單搭建一個公眾號「自動回覆機器人」機器人
- 如何排版 微信公眾號「程式碼塊」之 MarkEditor
- 微信公眾號開發-分享
- 微信公眾號 檢視地址
- 微信公眾號介面導讀
- .net開發微信公眾號
- 微信公眾號支付全解析
- 【前端】微信公眾號推薦前端
- 微信公眾號自動批量打標籤的 2 個實現方法
- 微信小程式及公眾號H5自動化測試攻略微信小程式H5
- 微信公眾號開發5-自定義選單-微信開發phpPHP