protected function _initialize()
{
$weixin = new TPWechat(C('微信配置'));
$url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
if (isset($_GET['code']) && isset($_GET['state']) && isset($_GET['state']) == 'oauth') {
$code = $weixin->getOauthAccessToken();
$openid = $code['openid'];
$acc = $code['access_token'];
$ref = $code['refresh_token'];
S($openid . '_accesstoken', $acc, 7200);
S($openid . '_refresh_token', $ref, 90 * 24 * 60 * 60);
session('openid', $openid);
} else {
$openid = session('openid');
$acc = S($openid . '_accesstoken');
$ref = S($openid . '_refresh_token');
if (!$ref) { //refresh_token
if (!(IS_POST)) {
redirect($weixin->getOauthRedirect($url, '', 'snsapi_base'), 0, '跳转中.....');
}
}
if (!$acc) { //刷新access token
$code = $weixin->getOauthRefreshToken($ref);
$acc = $code['access_token'];
S($openid . '_accesstoken', $acc, 7200);
}
}
$weixin->getOauthUserinfo($acc, $openid) ? session('userinfo', $weixin->getOauthUserinfo($acc, $openid)) : redirect($weixin->getOauthRedirect($url), 0);
/*
* 获取js_ticket失败
* */
$js_ticket = $weixin->getJsTicket();
if (!$js_ticket) {
echo "获取js_ticket失败!
";
echo '错误码:' . $weixin->errCode;
exit;
}
$js_sign = $weixin->getJsSign($url);
$this->assign('js_sign', $js_sign);
}