wechat_mp = $form->wechat_mp; } public function actionIndex() { $server = $this->wechat_mp->server; $server->push(function($message){ return $this->_message($message); }); $response = $server->serve(); // 将响应输出 $response->send(); } private function _message($message){ $MsgType = $message['MsgType']; //e.g. _message_event $action = '_message_' . $MsgType; if($this->hasMethod($action)){ try{ $actionRes = $this->$action($message); } catch (\Exception $e){ \Yii::error([__METHOD__, $message, $e->getTrace()]); return ""; } \Yii::error([__METHOD__, $message, $actionRes]); return $actionRes ? $actionRes : ""; } return ""; } private function _message_event($message){ $event = $message['Event']; $action = 'event_' . $event; if($this->hasMethod($action)){ try{ $actionRes = $this->$action($message); } catch (\Exception $e){ \Yii::error([__METHOD__, $message, $e->getTrace()]); return ""; } \Yii::error([__METHOD__, $message, $actionRes]); return $actionRes ? $actionRes : ""; } return ""; } public function actionTest() { $xml = ' 1472551036 0 0 0 0 o6_bmasdasdsad6_2sgVt7hMZOPfL '; $message = XML::parse($xml); $this->event_user_get_card($message); return ""; } public function event_user_get_card($message) { $fromUser = trim($message['FromUserName']); $CardId = trim($message['CardId']); $OuterStr = trim($message['OuterStr']); $code = trim($message['UserCardCode']); $form = new CardForm(); $res = $form->bindSaas($code, $CardId, $fromUser, $OuterStr); \Yii::error([__METHOD__, $message, $res]); return ''; } }