接口概述

聚合登录API接入说明

接口地址:
https://login.fhjhy.cn/connect.php
请求方式:GET / POST
返回格式:JSON
接入流程
  1. 注册账号并创建应用,获取 appidappkey
  2. 调用登录接口获取授权URL,跳转用户授权
  3. 用户授权后回调到您的网站,携带 code 参数
  4. 调用回调接口,使用 code 换取用户信息

快速开始

5分钟完成接入

PHP 示例代码

login.php - 发起登录
<?php
$apiurl = 'https://login.fhjhy.cn/connect.php';
$appid  = '您的APPID';
$appkey = '您的APPKEY';
$type   = 'qq';
$redirect_uri = 'https://您的网站/callback.php';

$params = ['act' => 'login', 'appid' => $appid, 'appkey' => $appkey, 'type' => $type, 'redirect_uri' => $redirect_uri];
$result = json_decode(file_get_contents($apiurl . '?' . http_build_query($params)), true);

if ($result['code'] == 0) {
    header('Location: ' . $result['url']);
    exit;
}
callback.php - 处理回调
<?php
$code = $_GET['code'] ?? '';
$params = ['act' => 'callback', 'appid' => $appid, 'appkey' => $appkey, 'code' => $code];
$result = json_decode(file_get_contents($apiurl . '?' . http_build_query($params)), true);

if ($result['code'] == 0) {
    $social_uid = $result['social_uid']; // 用户唯一标识
    $nickname   = $result['nickname'];   // 昵称
    $faceimg    = $result['faceimg'];    // 头像
    $gender     = $result['gender'];     // 性别
}

登录接口

act=login

请求参数

参数名必填类型说明
actstring接口动作,固定值 login
appidstring应用ID,在"我的应用"中获取,如:f99abb60a4f4439d
appkeystring应用密钥,在"我的应用"中获取,请妥善保管不要泄露
typestring登录平台类型,可选值:qqwx(微信开放平台-扫码登录)、alipaysinabaidugithubgiteegoogledingtalkfeishu
redirect_uristring授权成功后的回调地址,必须与应用配置的授权域名匹配,需进行URL编码。示例:https://example.com/callback.php
statestring自定义状态参数,用于防止CSRF攻击或传递业务数据,回调时会原样返回。建议传入随机字符串并在回调时验证

返回参数

参数名类型说明
codeint状态码,0=成功,其他值表示失败
msgstring返回信息,成功时为 success,失败时为错误描述
typestring登录类型,与请求参数一致
urlstring第三方授权页面地址,需要将用户重定向(302跳转)到此地址进行授权

请求示例

https://login.fhjhy.cn/connect.php?act=login&appid=您的APPID&appkey=您的APPKEY&type=qq&redirect_uri=https://您的网站/callback.php&state=随机字符串

成功返回示例

{
    "code": 0,
    "msg": "success",
    "type": "qq",
    "url": "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=xxx&redirect_uri=xxx&state=xxx"
}

失败返回示例

{
    "code": -1,
    "msg": "应用不存在或已禁用",
    "errcode": 102
}

微信服务号OAuth代理

独立接口,支持PC扫码登录

说明:微信服务号OAuth代理是独立于聚合登录的接口,允许第三方系统直接使用本系统接口替代微信官方接口,实现微信服务号网页授权登录。支持PC端自动显示扫码页面。

功能特点

接口兼容微信官方
PC端自动扫码页面
安全身份验证
回调地址验证

接口地址

https://login.fhjhy.cn/wechat/oauth2/authorize

请求参数

参数名必填类型说明
appidstring本系统的应用 app_id(18位字母数字)
secretstring本系统的应用 app_key(32位字母数字)
redirect_uristring授权后回调地址,不传则使用应用配置的 wechat_callback,传入时必须与配置一致
scopestring授权范围:snsapi_base(静默授权)或 snsapi_userinfo(需用户确认),默认 snsapi_userinfo
statestring自定义参数,授权成功后会原样返回

请求示例

https://login.fhjhy.cn/wechat/oauth2/authorize?appid=您的APPID&secret=您的APPSECRET&redirect_uri=https://您的网站/callback&scope=snsapi_userinfo&state=自定义参数

授权流程

1
微信浏览器内访问:直接跳转到微信官方授权页面,用户确认后回调到 redirect_uri
2
非微信浏览器访问:自动显示二维码页面,用户使用微信扫码完成授权,PC端自动跳转到 redirect_uri
3
授权成功回调:跳转到 redirect_uri,携带 codestate 参数

回调参数

参数名类型说明
codestring授权码,用于换取用户信息(有效期10分钟,只能使用一次)
statestring原样返回的自定义参数

获取用户信息

接口:POST https://login.fhjhy.cn/api/v1/oauth/userinfo
参数名必填说明
app_id应用ID
app_secret应用密钥
code授权码(从回调中获取)

用户信息返回示例

{
    "success": true,
    "code": 0,
    "data": {
        "open_id": "oXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "union_id": "oYYYYYYYYYYYYYYYYYYYYYYYYYYY",
        "nickname": "用户昵称",
        "avatar": "https://thirdwx.qlogo.cn/mmopen/xxx/132",
        "gender": "male",
        "location": "广东 深圳"
    }
}

PHP 接入示例

wechat_login.php - 发起微信服务号授权
<?php
$appId = '您的APPID';
$appSecret = '您的APPSECRET';
$redirectUri = 'https://您的网站/wechat/callback.php';

// 构建授权URL
$params = [
    'appid' => $appId,
    'secret' => $appSecret,
    'redirect_uri' => $redirectUri,
    'scope' => 'snsapi_userinfo',
    'state' => uniqid(),
];
$authUrl = 'https://login.fhjhy.cn/wechat/oauth2/authorize?' . http_build_query($params);

// 跳转到授权页面
header('Location: ' . $authUrl);
exit;
wechat/callback.php - 处理回调获取用户信息
<?php
$code = $_GET['code'] ?? '';

// 使用授权码获取用户信息
$response = file_get_contents('https://login.fhjhy.cn/api/v1/oauth/userinfo', false, stream_context_create([
    'http' => [
        'method' => 'POST',
        'header' => 'Content-Type: application/json',
        'content' => json_encode([
            'app_id' => $appId,
            'app_secret' => $appSecret,
            'code' => $code,
        ])
    ]
]));

$result = json_decode($response, true);
if ($result['success']) {
    $userInfo = $result['data'];
    echo "欢迎 " . $userInfo['nickname'];
    echo "OpenID: " . $userInfo['open_id'];
    // 处理用户登录逻辑...
}

前置配置要求

  1. 在开发者后台创建应用,启用"微信服务号"登录平台
  2. 配置应用的 wechat_callback 回调地址
  3. 确保回调地址使用 HTTPS 协议

常见错误

错误信息解决方案
appid 参数不能为空检查请求参数是否正确传入 appid
secret 参数不能为空检查请求参数是否正确传入 secret
应用不存在确认 appid 是否正确
secret 验证失败确认 secret 是否正确
该应用未启用微信服务号登录在应用设置中启用微信服务号平台
未配置微信服务号回调地址在应用设置中配置 wechat_callback
redirect_uri 与应用配置的回调地址不一致确保传入的 redirect_uri 与配置完全一致
授权已过期授权超时(10分钟),请重新发起授权
注意事项:
  • secret 是敏感信息,请勿在前端代码中暴露
  • 授权码(code)有效期为10分钟,只能使用一次
  • PC端扫码二维码有效期为5分钟
  • snsapi_base 静默授权只能获取 open_id,snsapi_userinfo 可获取完整用户信息

回调接口

act=callback

说明:用户在第三方平台授权成功后,会携带 code 参数跳转到您设置的回调地址。您需要在回调页面调用此接口,用 code 换取用户信息。

请求参数

参数名必填类型说明
actstring接口动作,固定值 callback
appidstring应用ID,与登录接口使用的一致
appkeystring应用密钥,与登录接口使用的一致
codestring授权码,从回调URL的 code 参数获取。注意:每个code只能使用一次,有效期约5分钟

返回参数

参数名类型说明
codeint状态码:0=成功,2=等待用户授权中(轮询场景),其他=失败
msgstring返回信息
typestring登录平台类型,如 qqwx
social_uidstring用户在该平台的唯一标识,可用于关联本地用户账号。同一用户在同一平台的 social_uid 始终相同
access_tokenstring访问令牌,部分平台可用于调用其他API
nicknamestring用户昵称/用户名
faceimgstring用户头像URL地址
genderint用户性别:0=未知,1=男,2=女
locationstring用户所在地区,如"广东 深圳"(部分平台可能为空)
ipstring用户授权时的IP地址

请求示例

https://login.fhjhy.cn/connect.php?act=callback&appid=您的APPID&appkey=您的APPKEY&code=从回调获取的code

成功返回示例

{
    "code": 0,
    "msg": "success",
    "type": "qq",
    "social_uid": "ABCD1234567890",
    "access_token": "E8F7D6C5B4A3...",
    "nickname": "用户昵称",
    "faceimg": "https://thirdqq.qlogo.cn/g?b=oidb&k=xxx",
    "gender": 1,
    "location": "广东 深圳",
    "ip": "113.89.xxx.xxx"
}
重要提示:
  • social_uid 是用户的唯一标识,建议存储到数据库用于用户关联
  • 每个 code 只能使用一次,重复使用会返回错误
  • 用户头像URL可能会过期,建议下载保存到自己的服务器

查询接口

act=query

说明:根据 social_uid 查询已授权用户的缓存信息。适用于需要再次获取用户信息但不想让用户重新授权的场景。

请求参数

参数名必填类型说明
actstring接口动作,固定值 query
appidstring应用ID
appkeystring应用密钥
typestring登录平台类型,如 qqwx
social_uidstring用户唯一标识,从回调接口获取

返回参数

参数名类型说明
codeint状态码,0=成功
msgstring返回信息
typestring登录平台类型
social_uidstring用户唯一标识
access_tokenstring访问令牌(可能已过期)
nicknamestring用户昵称
faceimgstring用户头像URL
genderint用户性别:0=未知,1=男,2=女
locationstring用户所在地区
ipstring用户最后授权时的IP地址

请求示例

https://login.fhjhy.cn/connect.php?act=query&appid=您的APPID&appkey=您的APPKEY&type=qq&social_uid=用户的social_uid

成功返回示例

{
    "code": 0,
    "msg": "success",
    "type": "qq",
    "social_uid": "ABCD1234567890",
    "access_token": "E8F7D6C5B4A3...",
    "nickname": "用户昵称",
    "faceimg": "https://thirdqq.qlogo.cn/g?b=oidb&k=xxx",
    "gender": 1,
    "location": "广东 深圳",
    "ip": "113.89.xxx.xxx"
}

支持平台

type 参数可选值

QQ
QQ登录
type=qq
微信-开放平台
微信-开放平台
type=wx
微信-服务号
微信-服务号
type=wechat
支付宝
支付宝
type=alipay
微博
微博登录
type=sina
百度
百度登录
type=baidu
抖音
抖音登录
type=douyin
华为
华为登录
type=huawei
谷歌
谷歌登录
type=google
微软
微软登录
type=microsoft
企业微信
企业微信
type=wework
钉钉
钉钉登录
type=dingtalk
飞书
飞书登录
type=feishu
Gitee
Gitee
type=gitee
GitHub
GitHub
type=github
小米
小米登录
type=xiaomi
哔哩哔哩
哔哩哔哩
type=bilibili

错误码说明

接口返回的错误码含义

codeerrcode说明解决方案
0-请求成功-
2-等待用户授权中继续轮询等待,或提示用户完成授权
-1101参数缺失或无效检查必填参数是否完整,参数值是否正确
-1102应用不存在或已禁用检查 appid 是否正确,应用是否已被禁用
-1103appkey错误或回调域名未授权检查 appkey 是否正确,回调地址域名是否与应用配置的授权域名匹配
-1104登录方式未开启或未配置检查该登录平台是否已在应用中启用,平台是否已配置
-1105授权码无效或已过期code 只能使用一次且有效期约5分钟,请重新发起授权
-1106用户不存在查询接口使用的 social_uid 不存在
-1201调用次数已达上限当日调用次数已用完,请升级套餐或等待次日重置
-1301第三方平台接口错误第三方平台返回错误,请稍后重试或联系客服

SDK下载

快速集成SDK

PHP SDK
支持 PHP 7.0+
下载 SDK
JavaScript SDK
支持 Node.js / 浏览器
下载 SDK
Python SDK
支持 Python 3.6+
下载 SDK

准备好开始接入了吗?

免费注册,立即获取 APPID 和 APPKEY

免费注册