驗(yàn)證成功,但關(guān)注后無(wú)法收到回復(fù)消息!
要崩潰了,折騰了一天,還是不能關(guān)注回復(fù)成功,但是驗(yàn)證是成功的。xml 模板中也將所有的空格刪除了!以下是完整代碼,哪位大神看一下哪里出問(wèn)題了,謝謝!
????public?function?api() ????{ ????????//?獲得驗(yàn)證參數(shù) ????????$nonce??????=?$_GET[?'nonce'?]; ????????$timestamp??=?$_GET[?'timestamp'?]; ????????$token??????=?'wechat'; ????????$echostr????=?$_GET[?'echostr'?]; ????????$signature??=?$_GET[?'signature'?]; ???????? ????????//?形成數(shù)組并按字典排序 ????????$array??????=?array(); ????????$array??????=?array(?$nonce,?$timestamp,?$token?); ????????sort(?$array?); ????????//?拼接字符串并?sha1?加密,然后校驗(yàn) ????????$str?=?sha1(?implode(?$array?)?); ????????if?(?$str?==?$signature??&&?$echostr?)?{ ????????????echo?$echostr; ????????????exit; ????????}?else?{ ????????????$this->responseMsg(); ????????} ????} ????//?接受事件推送并回復(fù) ????public?function?responseMsg() ????{ ????????//?獲取微信推送?post?數(shù)據(jù)(xml?格式) ????????$postArr?=?$GLOBALS["HTTP_RAW_POST_DATA"]; ????????libxml_disable_entity_loader(true); ????????//?處理消息,并設(shè)置回復(fù)類型及內(nèi)容 ????????$postObj?=?simplexml_load_string($postArr,?'SimpleXMLElement',?LIBXML_NOCDATA); ????????//?$postObj->ToUserName?=?''; ????????//?$postObj->FromUserName?=?''; ????????//?$postObj->CreateTime?=?''; ????????//?$postObj->MsgType?=?''; ????????//?$postObj->Event?=?''; ????????//?判斷事件推送:訂閱 ????????if?(?strtolower(?$postObj->MsgType??==?'event'?)?)?{ ????????????if?(?strtolower?(?$postObj->Event?==?'subscribe'?)?)?{ ????????????????//?設(shè)置回復(fù)消息 ????????????????$toUser?????=?$postObj->FromUserName; ????????????????$fromUser???=?$postObj->ToUserName; ????????????????$sendTime?????=?time(); ????????????????$msgType????????=?'text'; ????????????????$content????????=?'hahahahahahah'; ????????????????$template???????=?'<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content></xml>'; ????????????????$msg?=?sprintf(?$template,?$toUser,?$fromUser,?$sendTime,?$msgType,?$content?); ????????????????echo?$msg; ????????????} ????????} ????}
2018-06-15
另外,我用的 Laravel 框架!
2018-06-15
解決了,找到原因了,只做一次驗(yàn)證就行,沒必要做兩次驗(yàn)證!
2018-06-14
改為:
也沒回復(fù)!