首頁 微信小程式 微信開發 PHP微信開發之文本自動回覆介紹

PHP微信開發之文本自動回覆介紹

Mar 13, 2017 pm 02:04 PM

這篇文章PHP微信開發之文本自動回覆介紹的相關資料,有興趣的小伙伴們可以參考一下

#首先,先去微信公眾平台註冊一個帳號(註冊要填的東西挺多的),註冊好之後,登入進去。可以看到左邊的“開發者中心”,開啟開發者中心前好像還要你完善一些資料,按照步驟完善即可。進入開發者中心之後,先去編輯

PHP微信開發之文本自動回覆介紹

修改配置,修改配置的時候,注意:

PHP微信開發之文本自動回覆介紹

URL是你自己的網域下的PHP腳本(往下讀有該腳本的demo),該腳本用於和微信介面對接。例如http://www.example.com/weixin.php 

Token是上述腳本裡的定義的一個常數,例如你的PHP腳本裡定義了: 

define("TOKEN", "my_weixin"); 

 那麼,在填寫Token時,你就填abcdefgh

EncodingAESKey是訊息加密用。你可以自己寫一個43為的數字和字母的組合,也可以選擇“隨機生成”,一般選擇隨機生成即可。

填好之後,儲存(如果儲存時,提示Token驗證失敗,那麼請確認token一致並多點幾次儲存試試)。 

儲存好之後,點選修改設定旁的:「開啟」。

然後,就可以編輯你的PHP腳本了。 (如果你沒有自己的域名,可以使用新浪雲的免費的SAE,並且最好完成實名認證)
 demo的腳本如下:關注該公眾平台(比如訂閱號之後),功能是:輸入hehe則返回hello world!!!如果輸入其他字符,則回傳輸入heeh試試。 


header('content-type:text/html;charset=utf-8');

define("TOKEN", "my_weixin"); //define your token
$wx = new wechatCallbackapiTest();

if($_GET['echostr']){
 $wx->valid(); //如果发来了echostr则进行验证
}else{
 $wx->responseMsg(); //如果没有echostr,则返回消息
}


class wechatCallbackapiTest{

 public function valid(){ //valid signature , option

  $echoStr = $_GET["echostr"];
  if($this->checkSignature()){ //调用验证字段
   echo $echoStr;
   exit;
  }
 }

 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); //消息内容
   $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($keyword == &#39;hehe&#39;){
    $contentStr = &#39;hello world!!!&#39;;
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
    echo $resultStr;
    exit();            
   }else{
    $contentStr = &#39;输入hehe试试&#39;;
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
    echo $resultStr;
    exit();
   }

  }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;
 }
 }
}
登入後複製

如果發送訊息,系統提示:該公眾平台暫時無法提共服務,請稍後再試。那麼多半是程式碼語法有問題,檢查好語法錯誤再試試。

附:

當新用戶追蹤你的公眾號時,自動回傳訊息:(把這段程式碼加在判斷$keyword之前)。

   if($postObj->MsgType == &#39;event&#39;){ //如果XML信息里消息类型为event
    if($postObj->Event == &#39;subscribe&#39;){ //如果是订阅事件
     $contentStr = "欢迎订阅misaka去年夏天!\n更多精彩内容:http://www.php.cn/";
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
     echo $resultStr;
     exit();
    }
   }
登入後複製

以上是PHP微信開發之文本自動回覆介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)