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(); }
function __construct() { parent::__construct(); $_conf = Vera_Conf::getConf('memcached'); $this->_connect($_conf['host'], $_conf['port']); self::$conf = $_conf; }
private function __construct() { $this->mysql = mysqli_init(); $conf = Vera_Conf::getConf('database'); $this->_connect($conf); $this->mysql->set_charset('utf8'); }
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; }
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; }
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; }
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); }
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; }
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; }
/** * 重置配置缓存 * @return bool 重置是否成功 */ public static function resetBuffer() { self::$buffer = array('path' => NULL, 'content' => NULL); return true; }
function __construct($resource) { self::$resource = $resource; self::$commonConf = Vera_Conf::getAppConf('common'); }
function __construct() { $conf = Vera_Conf::getConf('global'); $conf = $conf['wechat']; $this->accessToken = $this->getAccessToken($conf['AppID'], $conf['AppSecret']); }
private function _subscribe() { $resource = $this->getResource(); Vera_Log::addNotice('event', $resource['Event']); $conf = Vera_Conf::getAppConf('common'); return $conf['subscribe']; //回复欢迎信息 }
function __construct() { $conf = Vera_Conf::getConf('router'); self::$routerMap = $conf['map']; self::$appMap = $conf['app']; }