private function _handleEventMessage()
 {
     $message = ImWx::getRequest();
     switch (strtoupper($message['Event'])) {
         case 'CLICK':
             //菜单消息的EventKey当做TextDispatcherConfig中的文字内容,通过TextDispatcher转发
             ImWx::setRequest('MsgType', 'text');
             ImWx::setRequest('Content', $message['EventKey']);
             ImWxTextDispatcher::dispatch($message['EventKey']);
             ImWx::fetchTextResult($this->_getTestText());
             break;
         case 'SUBSCRIBE':
             if ($message['EventKey']) {
                 //处理未关注时扫描的带参数二维码
             }
             //处理订阅事件
             ImWx::fetchTextResult('欢迎关注,请输入您的邀请码');
             break;
         case 'UNSUBSCRIBE':
             //处理取消订阅事件
             break;
         case 'SCAN':
             //处理已关注时扫描的带参数二维码
             break;
         case 'LOCATION':
             //处理上报的地理位置信息
             break;
     }
     //全部不匹配的时候返回的内容
     ImWx::fetchTextResult('……');
 }
Exemplo n.º 2
0
 public static function handleCode($code)
 {
     $openid = ImWx::getRequestUserId();
     $userInfo = D('User')->getUserFromOpenId($openid);
     if ($userInfo['verified'] == 1) {
         ImWx::fetchTextResult('您已经完成验证,无需再次输入邀请码。请进入' . self::generateEntryUrl() . '。');
     }
     $exist = D('InviteCode')->where(array('code' => $code))->find();
     if (!$exist) {
         ImWx::fetchTextResult('您输入的邀请码有误,请核实后再试。');
     }
     if ($exist['to_uid'] || $exist['use_time']) {
         ImWx::fetchTextResult('您输入的邀请码已被使用过,您可以请求推荐人为您申请新的邀请码。');
     }
     D('InviteCode')->where(array('code' => $code))->save(array('to_uid' => $userInfo['uid'], 'use_time' => time()));
     $degree = Degree::getDegreeByUid($userInfo['uid']);
     D('User')->where(array('uid' => $userInfo['uid']))->save(array('verified' => 1, 'allow_invite_count' => $degree == 1 ? 12 : 0));
     ImWx::fetchTextResult('验证成功。首次进入填写的资料包括您的【微信号】,请先记好哦~进入' . self::generateEntryUrl() . '。');
 }