Example #1
0
 public function actionIndex($id)
 {
     $response = '';
     $originalId = $id;
     $wechatInfo = WechatModel::model()->find('originalId=:originalId', array(':originalId' => $originalId));
     if ($wechatInfo) {
         $wechatApi = new WechatApi($wechatInfo->token);
         switch (Yii::app()->request->requestType) {
             case 'GET':
                 if (Yii::app()->request->getParam('echostr')) {
                     $response = $wechatApi->valid();
                 }
                 break;
             case 'POST':
                 $post_string = $GLOBALS["HTTP_RAW_POST_DATA"];
                 $builder = new WeChatRequestBuilder();
                 $request = $builder->builder($post_string);
                 Yii::log(json_encode($request), 'warning', "api_request");
                 switch ($request) {
                     case $request instanceof WeChatTextRequest:
                         $response = $this->textResponse($wechatInfo->id, $request);
                         if (!$response && $wechatInfo->originalId == 'gh_354e9ce866ed') {
                             $content = "亲,感谢您关注我们的微信,微信福利不要忘记领取哟!亲,请根据您的手机型号,领取对应的礼包哦!安卓越狱玩家请按1,正版IOS玩家请按2!PPS安卓玩家请按3,即可获得激活码哟!【激活码兑换】登入游戏,点击公告,选择激活码,输入后即可兑换!礼包内容会在背包内哟!";
                             $xml = new WeChatTextResponse($content);
                             $response = $xml->_to_xml($request);
                         }
                         break;
                     case $request instanceof WeChatEventRequest:
                         switch ($request->event_type) {
                             case WeChatEventRequest::$type_subscribe:
                                 $response = $this->subscribeResponse($wechatInfo, $request);
                                 break;
                             case WeChatEventRequest::$type_menu:
                                 //menu response
                                 $key = $request->event_key;
                                 $response = $this->menuResponse($key, $request);
                                 break;
                             case WeChatEventRequest::$type_location:
                                 //TODO 上报地址位置
                                 break;
                             case WeChatEventRequest::$type_scan:
                                 //TODO 扫描二维码
                                 break;
                         }
                         break;
                     case $request instanceof WeChatLocationRequest:
                         //TODO 地理位置消息
                         break;
                 }
                 break;
         }
         echo $response;
     }
 }