// ==================== 微信内自动登录 AJAX 接口 ==================== // AJAX: 获取网页授权 URL add_action('wp_ajax_zib_wx_get_auth_url', 'zib_wx_ajax_get_auth_url'); add_action('wp_ajax_nopriv_zib_wx_get_auth_url', 'zib_wx_ajax_get_auth_url'); function zib_wx_ajax_get_auth_url() { $nonce = isset($_POST['nonce']) ? sanitize_text_field($_POST['nonce']) : ''; if (!wp_verify_nonce($nonce, 'zib_wx_auth_nonce')) { wp_send_json_error(['msg' => '安全验证失败,请刷新页面重试']); return; } if (get_current_user_id()) { wp_send_json_error(['msg' => '您已登录,无需重复操作']); return; } $config = _pz('oauth_weixingzh_option', []); if (empty($config['appid']) || empty($config['appkey'])) { wp_send_json_error(['msg' => '微信公众号配置不完整']); return; } $sdk_paths = [ __DIR__ . '/../oauth/sdk/weixingzh.php', get_template_directory() . '/oauth/sdk/weixingzh.php', '/www/sites/2-1gv/index/wp-content/themes/zibll修复版2/oauth/sdk/weixingzh.php', ]; $sdk_loaded = false; foreach ($sdk_paths as $p) { if (@file_exists($p)) { require_once $p; $sdk_loaded = true; break; } } if (!$sdk_loaded) { wp_send_json_error(['msg' => 'SDK加载失败']); return; } $WeChat = new \Weixin\GZH\OAuth2($config['appid'], $config['appkey']); $callback_url = add_query_arg(['action' => 'web_auth_callback'], home_url('/oauth/weixingzh/callback')); $rurl = isset($_POST['rurl']) ? esc_url_raw($_POST['rurl']) : home_url(); $state = wp_create_nonce('zib_wx_auth_' . time()); if (!session_id()) @session_start(); $_SESSION['zib_wx_auth_rurl'] = $rurl; $_SESSION['zib_wx_auth_state'] = $state; $auth_url = $WeChat->getWebAuthUrl($callback_url, $state, 'snsapi_userinfo', true); wp_send_json_success(['auth_url' => $auth_url, 'state' => $state]); } // AJAX: 检测关注状态 add_action('wp_ajax_zib_wx_check_subscribe', 'zib_wx_ajax_check_subscribe'); add_action('wp_ajax_nopriv_zib_wx_check_subscribe', 'zib_wx_ajax_check_subscribe'); function zib_wx_ajax_check_subscribe() { $openid = isset($_POST['openid']) ? sanitize_text_field($_POST['openid']) : ''; if (empty($openid)) { wp_send_json_error(['msg' => '缺少openid参数']); return; } $config = _pz('oauth_weixingzh_option', []); if (empty($config['appid']) || empty($config['appkey'])) { wp_send_json_error(['msg' => '微信公众号配置不完整']); return; } $sdk_paths = [ __DIR__ . '/../oauth/sdk/weixingzh.php', get_template_directory() . '/oauth/sdk/weixingzh.php', '/www/sites/2-1gv/index/wp-content/themes/zibll修复版2/oauth/sdk/weixingzh.php', ]; $sdk_loaded = false; foreach ($sdk_paths as $p) { if (@file_exists($p)) { require_once $p; $sdk_loaded = true; break; } } if (!$sdk_loaded) { wp_send_json_error(['msg' => 'SDK加载失败']); return; } try { $WeChat = new \Weixin\GZH\OAuth2($config['appid'], $config['appkey']); $result = $WeChat->checkUserSubscribe($openid); wp_send_json_success([ 'subscribed' => !empty($result['subscribed']), 'subscribe_scene' => !empty($result['subscribe_scene']) ? $result['subscribe_scene'] : '', 'subscribe_time' => !empty($result['subscribe_time']) ? $result['subscribe_time'] : 0, ]); } catch (Exception $e) { wp_send_json_error(['msg' => $e->getMessage()]); } } // AJAX: 检测登录状态 add_action('wp_ajax_zib_wx_check_login_status', 'zib_wx_ajax_check_login_status'); add_action('wp_ajax_nopriv_zib_wx_check_login_status', 'zib_wx_ajax_check_login_status'); function zib_wx_ajax_check_login_status() { $openid = isset($_POST['openid']) ? sanitize_text_field($_POST['openid']) : ''; if (empty($openid)) { wp_send_json_error(['msg' => '缺少openid参数']); return; } $users = get_users([ 'meta_key' => 'oauth_weixingzh_openid', 'meta_value' => $openid, 'number' => 1, ]); if (!empty($users)) { $user = $users[0]; wp_send_json_success(['logged_in' => true, 'user_id' => $user->ID, 'user_login' => $user->user_login]); } else { wp_send_json_success(['logged_in' => false, 'need_register' => true]); } } https://1gv.cn/wp-sitemap-posts-post-1.xmlhttps://1gv.cn/wp-sitemap-posts-page-1.xmlhttps://1gv.cn/wp-sitemap-taxonomies-category-1.xmlhttps://1gv.cn/wp-sitemap-users-1.xml