關(guān)注后沒有回復(fù)呢?
照老師講的寫的,
代碼在這里全部能看到。https://github.com/phpervip/tp5_demo/blob/master/application/index/controller/Wechat.php
// http://tp5.yyii.info/index/wechat/index
class Wechat extends Controller
{
? ?public function index(){
? ? ? ?//獲得參數(shù) signature nonce token timestamp echostr
? ? ? ?$nonce ? ? = $_GET['nonce'];
? ? ? ?$token ? ? = 'weixin';
? ? ? ?$timestamp = $_GET['timestamp'];
? ? ? ?$echostr ? = $_GET['echostr'];
? ? ? ?$signature = $_GET['signature'];
? ? ? ?//形成數(shù)組,然后按字典序排序
? ? ? ?$array = array();
? ? ? ?$array = array($nonce, $timestamp, $token);
? ? ? ?sort($array);
? ? ? ?//拼接成字符串,sha1加密 ,然后與signature進(jìn)行校驗
? ? ? ?$str = sha1( implode( $array ) );
? ? ? ?if( $str ?== $signature && $echostr ){
? ? ? ? ? ?//第一次接入weixin api接口的時候
? ? ? ? ? ?echo ?$echostr;
? ? ? ? ? ?exit;
? ? ? ?}else{
? ? ? ? ? ?$this->reponseMsg();
? ? ? ?}
? ?}
// http://tp5.yyii.info/index/wechat/show
? ?public function show(){
? ? ? ?echo 'this is show';
? ?}
? ?// 接收事件推送并回復(fù)
? ?public function reponseMsg(){
? ? ? ?//1.獲取到微信推送過來post數(shù)據(jù)(xml格式)
? ? ? ?$postArr = $GLOBALS['HTTP_RAW_POST_DATA'];
? ? ? ?//2.處理消息類型,并設(shè)置回復(fù)類型和內(nèi)容
? ? ? ?$postObj = simplexml_load_string( $postArr );
? ? ? ?//判斷該數(shù)據(jù)包是否是訂閱的事件推送
? ? ? ?if( strtolower( $postObj->MsgType) == 'event'){
? ? ? ? ? ?//如果是關(guān)注 subscribe 事件
? ? ? ? ? ?if( strtolower($postObj->Event == 'subscribe') ){
? ? ? ? ? ? ? ?//回復(fù)用戶消息(純文本格式)
? ? ? ? ? ? ? ?$toUser ? = $postObj->FromUserName;
? ? ? ? ? ? ? ?$fromUser = $postObj->ToUserName;
? ? ? ? ? ? ? ?$time ? ? = time();
? ? ? ? ? ? ? ?$msgType ?= ?'text';
? ? ? ? ? ? ? ?$content ?= '歡迎關(guān)注我們的微信公眾賬號'.$postObj->FromUserName.'-'.$postObj->ToUserName;
? ? ? ? ? ? ? ?$template = "<xml>
? ? ? ? ? ? ? ? ? ? <ToUserName><![CDATA[%s]]></ToUserName>
? ? ? ? ? ? ? ? ? ? <FromUserName><![CDATA[%s]]></FromUserName>
? ? ? ? ? ? ? ? ? ? <CreateTime>%s</CreateTime>
? ? ? ? ? ? ? ? ? ? <MsgType><![CDATA[%s]]></MsgType>
? ? ? ? ? ? ? ? ? ? <Content><![CDATA[%s]]></Content>
? ? ? ? ? ? ? ? ? ? </xml>";
? ? ? ? ? ? ? ?$info ? ? = sprintf($template, $toUser, $fromUser, $time, $msgType, $content);
? ? ? ? ? ? ? ?echo $info;
? ? ? ? ? ?}
? ? ? ?}
}
2017-04-22
我也是這個問題