亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

照搬下來的 也沒有回復消息 TOKEN驗證已經成功

<?php

namespace Home\Controller;

use Think\Controller;

class IndexController extends Controller{

public function __construct(){


}

? ? public function index(){

? ? ? ? //1.將timestamp,nonce,token 按字典序排序

$timestamp = $_GET['timestamp'];

$nonce ? ? = $_GET['nonce'];

$token ? ? = 'weixin';

$signature ?= $_GET['signature'];

$echostr = $_GET['echostr'];

$array ? ? ?= array( $timestamp,$nonce,$token );

sort( $array );

//2.將排序后的三個參數拼接之后sha1加密

$tmpstr ?= sha1( implode($array) );

//1.將加密后的字符串與signature對比,判斷該請求是否來自微信

if( $tmpstr == $signature && $echostr){

//第一次接入微信API的時候進行驗證

echo $echostr;

exit;

}else{

$this->responseMsg();

}

? ? }

//接受事件推送并回復

public function responseMsg(){

//1.獲取到微信推送過來的poat數據(xml格式)

$postArr ?= $GLOBALS['HTTP_RAW_POST_DATA'];

//2.處理消息類型,并設置回復類型和內容

$postObj ?= simplexml_load_string($postArr);

//判斷推動的數據包是不是訂閱事件

if(strtolower($postObj->MsgType) == 'event'){

//如果是關注事件 subscribe 事件

if(strtolower($postObj->Event) == 'subscribe'){

//回復用戶消息

$toUser = $postObj->FromUserName;

$fromUser = $postObj->ToUserName;

$time = time();

$msgType ? ?= 'text';

$content ? ?= '歡迎關注我們';

$tamplate = "<xml>

<ToUserName><![CDATA[%s]]></ToUserName>

<FromUserName><![CDATA[%s]]></FromUserName>

<CreateTime>%s</CreateTime>

<MsgType><![CDATA[%s]]></MsgType>

<Content><![CDATA[%s]]></Content>

</xml>";

$info = sprintf($tamplate,$fromUser,$toUser,$time,$msgType,$content);

echo $info;

}

}

if(strtolower($postObj->MsgType) == 'text'){

if($postObj->Content == 'you'){

$tamplate = "<xml>

<ToUserName><![CDATA[%s]]></ToUserName>

<FromUserName><![CDATA[%s]]></FromUserName>

<CreateTime>%s</CreateTime>

<MsgType><![CDATA[%s]]></MsgType>

<Content><![CDATA[%s]]></Content>

</xml>";

$fromUser = $postObj->ToUserName;

$toUser = $postObj->FromUserName;

$time = time();

$content ? ?= '這個網站很不錯';

$msgType ? ?= 'text';

echo ?sprintf($tamplate,$toUser,$fromUser,$time,$msgType,$content);

}

}

}

}


正在回答

6 回答

一樣的,代碼百分之百沒錯,但就是不回復

0 回復 有任何疑惑可以回復我~

求解,token已經驗證成功,關注后還是沒有回復成功,代碼都確保一致了

0 回復 有任何疑惑可以回復我~

//$postArr = $GLOBALS['HTTP_RAW_POST_DATA']; ?這個有點問題,獲取不到數據 用下面這個吧?

$postArr?= file_get_contents('php://input');


0 回復 有任何疑惑可以回復我~

我用TP5按代碼寫還是獲取不到回復消息


0 回復 有任何疑惑可以回復我~

關注之后不回復,可能是你代碼中的$info=sprintf()中的參數跟$tamplate中的<xml>中的代碼沒有對應上,要先寫$toUser,再寫$fromUser

0 回復 有任何疑惑可以回復我~

http://img1.sycdn.imooc.com//5902a492000168f211070492.jpg
服務器地址這塊要加上,,才能提交成功

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

照搬下來的 也沒有回復消息 TOKEN驗證已經成功

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號