| // +------------------------------------------------+ namespace tools; use cjango\Wechat; use cjango\Wechat\Token; use think\Cache; use think\Config; use think\Controller; use think\Session; /** * 所有模块的公共方法 */ class Initialize extends Controller { /** * 判断是否登录,返回当前UID * @return integer */ final protected static function isLogin() { $user = Session::get('user_auth'); if (empty($user)) { return 0; } else { return Session::get('user_auth_sign') == Crypt::dataAuthSign($user) ? $user['uid'] : 0; } } /** * 初始化微信 * @return void */ protected function initWechat() { $token = Cache::get('wechat_access_token'); $config = Config::get('wechat'); if (!$token) { Wechat::instance($config); $token = Token::get(); Cache::set('wechat_access_token', $token, 7200); $config['access_token'] = $token; Wechat::instance($config, true); } else { $config['access_token'] = $token; Wechat::instance($config); } } /** * 微信分享 */ protected function jsWechat() { $ticket = Cache::get('Wechat_ticket'); $config = Config::get('wechat_config'); self::initWechat(); if (!$ticket) { $ticket = Token::ticket(); Cache::set('Wechat_ticket', $ticket, 7000); } $now_time = time(); $wx['appid'] = $config['appid']; $wx['timestamp'] = $now_time; $wx['noncestr'] = $noncestr = \tools\Str::random(32); $sign = array( 'noncestr' => $noncestr, 'jsapi_ticket' => $ticket, 'timestamp' => $now_time, 'url' => __SELF__, ); ksort($sign); $signStr = sha1(urldecode(http_build_query($sign))); $wx['signature'] = $signStr; return $wx; } /** * 模板变量赋值 * @param string $name 变量名 * @param mixed $value 变量值 */ final public function __set($name, $value) { $this->view->$name = $value; } /** * 取得模板显示变量的值 * @param string $name 模板变量 * @return mixed|null */ final public function __get($name) { return $this->view->$name ?? null; } }