Beispiel #1
0
 public function run()
 {
     $resource = $this->getResource();
     $fileApi = 'http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=%s&media_id=%s';
     $mediaId = $resource['MediaId'];
     // header('http://hackathon.lishengcn.cn/wap/api/image?media_id=' . $resource['MediaId'] . '&openid=' . $resource['FromUserName']);
     $wechatConf = Vera_Conf::getConf('global')['testWechat'];
     $accessToken = Data_Base::getAccessToken($wechatConf['AppID'], $wechatConf['AppSecret']);
     $picUrl = urlencode(sprintf($fileApi, $accessToken, $mediaId));
     $avatar = Data_Wechat_User::getAvatar($resource['FromUserName']);
     //此处添加发弹幕逻辑
     $data = 'p=' . $picUrl . '&a=' . $avatar;
     $url = 'http://127.0.0.1:3000/image';
     $handle = curl_init();
     $options = array(CURLOPT_URL => $url, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $data, CURLOPT_TIMEOUT => 1);
     curl_setopt_array($handle, $options);
     $content = curl_exec($handle);
     $text = '快抬头看大屏幕~!';
     if (curl_errno($handle)) {
         //检查是否有误
         $text = '啊哦..图片服务器好像生病了...';
     }
     curl_close($handle);
     $ret['type'] = 'text';
     $ret['data']['Content'] = '图片已发送';
     //寻找模板
     $view = new View_Wechat($resource);
     $view->assign($ret);
     $view->display();
 }
Beispiel #2
0
 function __construct()
 {
     parent::__construct();
     $_conf = Vera_Conf::getConf('memcached');
     $this->_connect($_conf['host'], $_conf['port']);
     self::$conf = $_conf;
 }
Beispiel #3
0
 private function __construct()
 {
     $this->mysql = mysqli_init();
     $conf = Vera_Conf::getConf('database');
     $this->_connect($conf);
     $this->mysql->set_charset('utf8');
 }
Beispiel #4
0
 public function run()
 {
     $resource = $this->getResource();
     $openId = $resource['FromUserName'];
     Vera_Log::addNotice('content', $resource['Content']);
     $avatar = Data_Wechat_User::getAvatar($openId);
     if ($resource['Content'] != '') {
         //此处添加发弹幕逻辑
         $data = 'w=' . $resource['Content'] . '&a=' . $avatar;
         $url = 'http://127.0.0.1:3000/message';
         $handle = curl_init();
         $options = array(CURLOPT_URL => $url, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $data, CURLOPT_TIMEOUT => 1);
         curl_setopt_array($handle, $options);
         $content = curl_exec($handle);
         $text = '快抬头看大屏幕~!';
         if (curl_errno($handle)) {
             //检查是否有误
             $text = '啊哦..服务器好像生病了...';
         }
         curl_close($handle);
     } else {
         $text = '呃..你是不是发了表情?暂时不支持哟~';
     }
     $ret['type'] = 'text';
     $ret['data']['Content'] = $text;
     //寻找模板
     $view = new View_Wechat($resource);
     $view->assign($ret);
     $view->display();
     return true;
     // --------------end--------------
     $conf = Vera_Conf::getAppConf('common');
     $reply = Data_Wechat_Db::keywordReply($resource['Content']);
     if (!$reply) {
         //默认回复
         $ret = $conf['defaultReply'];
     } elseif (in_array($reply['replyType'], $conf['replyType'])) {
         //固定回复
         $ret['type'] = $reply['replyType'];
         $ret['data'] = json_decode($reply['reply'], true);
     } else {
         //功能性回复
         $class = 'Service_' . $reply['replyType'];
         $instance = new $class($resource);
         $ret = $instance->{$reply['reply']}();
     }
     if (empty($ret)) {
         throw new Exception("很抱歉公众号出现异常", 1);
     }
     //寻找模板
     $view = new View_Wechat($resource);
     $view->assign($ret);
     $view->display();
     return true;
 }
Beispiel #5
0
 public static function reverseApp()
 {
     if (!self::$oldApp) {
         Vera_Log::addWarning('reverse app failed, no oldApp found');
         return false;
     }
     $GLOBALS['APP_NAME'] = self::$oldApp;
     Vera_Log::addNotice('reverse app to ' . self::$oldApp);
     self::$oldApp = NULL;
     Vera_Conf::resetBuffer();
     return true;
 }
Beispiel #6
0
 public function run()
 {
     $wechatConf = Vera_Conf::getConf('global')['testWechat'];
     $appId = $wechatConf['AppID'];
     $appSecret = $wechatConf['AppSecret'];
     Vera_Autoload::changeApp('wechat');
     $accessToken = Data_Base::getAccessToken($appId, $appSecret);
     Vera_Autoload::reverseApp();
     $ret = array('access_token' => $accessToken);
     echo json_encode($ret);
     return false;
 }
Beispiel #7
0
 public static function run()
 {
     return true;
     //暂时无法解决signature校验不一致的问题
     $conf = Vera_Conf::getConf('global');
     $conf = $conf['wechat'];
     if (!isset($conf['token']) || empty($conf['token'])) {
         Vera_Log::addErr('cannot find token');
         exit;
     }
     $token = $conf['token'];
     return self::_checkSignature($token);
 }
Beispiel #8
0
 public function run()
 {
     if (empty($_SERVER['HTTP_REFERER'])) {
         echo json_encode(array('errmsg' => 'referer is empty'));
         return false;
     }
     $wechatConf = Vera_Conf::getConf('global')['testWechat'];
     $url = $_SERVER['HTTP_REFERER'];
     $appId = $wechatConf['AppID'];
     $appSecret = $wechatConf['AppSecret'];
     Vera_Autoload::changeApp('wechat');
     $ticket = Data_Base::getJsTicket($appId, $appSecret);
     $signArr = Data_Base::getJsSign($url, $ticket);
     Vera_Autoload::reverseApp();
     $signArr['appId'] = $appId;
     echo json_encode($signArr);
     return false;
 }
Beispiel #9
0
 public static function info($openId)
 {
     if (!empty(self::$info[$openId])) {
         return self::$info[$openId];
     }
     $wechatConf = Vera_Conf::getConf('global')['testWechat'];
     $accessToken = parent::getAccessToken($wechatConf['AppID'], $wechatConf['AppSecret']);
     $url = sprintf(self::API, $accessToken, $openId);
     $handle = curl_init();
     $options = array(CURLOPT_URL => $url, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1);
     curl_setopt_array($handle, $options);
     $content = curl_exec($handle);
     if (curl_errno($handle)) {
         //检查是否有误
         return array();
     }
     curl_close($handle);
     $content = json_decode($content, true);
     if ($content['subscribe'] != 1) {
         return array();
     }
     self::$info[$openId] = $content;
     return $content;
 }
Beispiel #10
0
 /**
  * 重置配置缓存
  * @return bool 重置是否成功
  */
 public static function resetBuffer()
 {
     self::$buffer = array('path' => NULL, 'content' => NULL);
     return true;
 }
Beispiel #11
0
 function __construct($resource)
 {
     self::$resource = $resource;
     self::$commonConf = Vera_Conf::getAppConf('common');
 }
Beispiel #12
0
 function __construct()
 {
     $conf = Vera_Conf::getConf('global');
     $conf = $conf['wechat'];
     $this->accessToken = $this->getAccessToken($conf['AppID'], $conf['AppSecret']);
 }
Beispiel #13
0
 private function _subscribe()
 {
     $resource = $this->getResource();
     Vera_Log::addNotice('event', $resource['Event']);
     $conf = Vera_Conf::getAppConf('common');
     return $conf['subscribe'];
     //回复欢迎信息
 }
Beispiel #14
0
 function __construct()
 {
     $conf = Vera_Conf::getConf('router');
     self::$routerMap = $conf['map'];
     self::$appMap = $conf['app'];
 }