接口概述
聚合登录API接入说明
接口地址:
http://u.xuwbk.com/connect.php
请求方式:GET / POST
返回格式:JSON
接入流程
- 注册账号并创建应用,获取
appid和appkey - 调用登录接口获取授权URL,跳转用户授权
- 用户授权后回调到您的网站,携带
code参数 - 调用回调接口,使用
code换取用户信息
快速开始
5分钟完成接入
PHP 示例代码
登录接口
act=login
请求参数
| 参数名 | 必填 | 类型 | 说明 |
|---|---|---|---|
act | 是 | string | 接口动作,固定值 login |
appid | 是 | string | 应用ID,在"我的应用"中获取,如:f99abb60a4f4439d |
appkey | 是 | string | 应用密钥,在"我的应用"中获取,请妥善保管不要泄露 |
type | 是 | string | 登录平台类型,可选值:qq、wx(微信开放平台-扫码登录)、wechat(微信服务号-网页授权)、alipay、sina、baidu、github、gitee、google、dingtalk、feishu 等 |
redirect_uri | 是 | string | 授权成功后的回调地址,必须与应用配置的授权域名匹配,需进行URL编码。示例:https://example.com/callback.php |
state | 否 | string | 自定义状态参数,用于防止CSRF攻击或传递业务数据,回调时会原样返回。建议传入随机字符串并在回调时验证 |
微信登录类型说明
wx- 微信开放平台(扫码登录),适用于PC端网站,用户通过微信扫码授权wechat- 微信服务号(网页授权),仅在微信内置浏览器中有效,适用于公众号菜单、微信内分享链接等场景
返回参数
| 参数名 | 类型 | 说明 |
|---|---|---|
code | int | 状态码,0=成功,其他值表示失败 |
msg | string | 返回信息,成功时为 success,失败时为错误描述 |
type | string | 登录类型,与请求参数一致 |
url | string | 第三方授权页面地址,需要将用户重定向(302跳转)到此地址进行授权 |
请求示例
http://u.xuwbk.com/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
}
回调接口
act=callback
说明:用户在第三方平台授权成功后,会携带
code 参数跳转到您设置的回调地址。您需要在回调页面调用此接口,用 code 换取用户信息。
请求参数
| 参数名 | 必填 | 类型 | 说明 |
|---|---|---|---|
act | 是 | string | 接口动作,固定值 callback |
appid | 是 | string | 应用ID,与登录接口使用的一致 |
appkey | 是 | string | 应用密钥,与登录接口使用的一致 |
code | 是 | string | 授权码,从回调URL的 code 参数获取。注意:每个code只能使用一次,有效期约5分钟 |
返回参数
| 参数名 | 类型 | 说明 |
|---|---|---|
code | int | 状态码:0=成功,2=等待用户授权中(轮询场景),其他=失败 |
msg | string | 返回信息 |
type | string | 登录平台类型,如 qq、wx 等 |
social_uid | string | 用户在该平台的唯一标识,可用于关联本地用户账号。同一用户在同一平台的 social_uid 始终相同 |
access_token | string | 访问令牌,部分平台可用于调用其他API |
nickname | string | 用户昵称/用户名 |
faceimg | string | 用户头像URL地址 |
gender | int | 用户性别:0=未知,1=男,2=女 |
location | string | 用户所在地区,如"广东 深圳"(部分平台可能为空) |
ip | string | 用户授权时的IP地址 |
请求示例
http://u.xuwbk.com/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 查询已授权用户的缓存信息。适用于需要再次获取用户信息但不想让用户重新授权的场景。
请求参数
| 参数名 | 必填 | 类型 | 说明 |
|---|---|---|---|
act | 是 | string | 接口动作,固定值 query |
appid | 是 | string | 应用ID |
appkey | 是 | string | 应用密钥 |
type | 是 | string | 登录平台类型,如 qq、wx 等 |
social_uid | 是 | string | 用户唯一标识,从回调接口获取 |
返回参数
| 参数名 | 类型 | 说明 |
|---|---|---|
code | int | 状态码,0=成功 |
msg | string | 返回信息 |
type | string | 登录平台类型 |
social_uid | string | 用户唯一标识 |
access_token | string | 访问令牌(可能已过期) |
nickname | string | 用户昵称 |
faceimg | string | 用户头像URL |
gender | int | 用户性别:0=未知,1=男,2=女 |
location | string | 用户所在地区 |
ip | string | 用户最后授权时的IP地址 |
请求示例
http://u.xuwbk.com/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登录
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=feishuGitee
type=giteeGitHub
type=github小米登录
type=xiaomi哔哩哔哩
type=bilibili错误码说明
接口返回的错误码含义
| code | errcode | 说明 | 解决方案 |
|---|---|---|---|
0 | - | 请求成功 | - |
2 | - | 等待用户授权中 | 继续轮询等待,或提示用户完成授权 |
-1 | 101 | 参数缺失或无效 | 检查必填参数是否完整,参数值是否正确 |
-1 | 102 | 应用不存在或已禁用 | 检查 appid 是否正确,应用是否已被禁用 |
-1 | 103 | appkey错误或回调域名未授权 | 检查 appkey 是否正确,回调地址域名是否与应用配置的授权域名匹配 |
-1 | 104 | 登录方式未开启或未配置 | 检查该登录平台是否已在应用中启用,平台是否已配置 |
-1 | 105 | 授权码无效或已过期 | code 只能使用一次且有效期约5分钟,请重新发起授权 |
-1 | 106 | 用户不存在 | 查询接口使用的 social_uid 不存在 |
-1 | 201 | 调用次数已达上限 | 当日调用次数已用完,请升级套餐或等待次日重置 |
-1 | 301 | 第三方平台接口错误 | 第三方平台返回错误,请稍后重试或联系客服 |
微信服务号接口
适用于微信内置浏览器的网页授权
什么是微信服务号接口?
本接口可直接替代微信官方的授权接口,让您无需申请微信服务号即可实现微信网页授权登录。您只需将微信官方授权地址替换为本系统提供的代理地址即可。
使用前提
- 在应用设置中启用"微信-服务号"登录方式
- 填写"微信服务号回调地址"(您的网站接收授权结果的地址)
- 获取应用详情页面显示的"微信服务号接口网址"
接口地址
http://u.xuwbk.com/wechat/oauth2/authorize
请求参数
| 参数 | 必填 | 说明 |
|---|---|---|
appid |
是 | 您的应用 APPID(非微信 AppID) |
secret |
是 | 您的应用 APPKEY(用于验证身份,防止接口被盗用) |
redirect_uri |
否 | 授权后回调地址。不传则使用应用配置的"微信服务号回调地址";如果传入,必须与应用配置的回调地址完全一致,否则将拒绝授权 |
scope |
否 | 授权范围:snsapi_base(静默授权)或 snsapi_userinfo(弹窗授权,默认) |
state |
否 | 自定义参数,授权后原样返回 |
回调参数
授权成功后,系统会跳转到您配置的回调地址,并携带以下参数:
| 参数 | 说明 |
|---|---|
code |
授权码,用于调用回调接口获取用户信息 |
state |
您传入的自定义参数(原样返回) |
完整流程
- 用户访问您的网站,点击微信登录
- 跳转到本系统的微信服务号接口地址
- 本系统自动跳转到微信授权页面
- 用户在微信中确认授权
- 微信回调到本系统
- 本系统将
code转发到您配置的回调地址 - 您的网站使用
code调用回调接口获取用户信息
示例代码
wechat_login.php - 发起微信授权
<?php
// 微信服务号接口地址
$wechat_api = 'http://u.xuwbk.com/wechat/oauth2/authorize';
$appid = '您的APPID';
$secret = '您的APPKEY';
$state = md5(uniqid());
// 构建授权URL
$url = $wechat_api . '?' . http_build_query([
'appid' => $appid,
'secret' => $secret,
'scope' => 'snsapi_userinfo',
'state' => $state
]);
// 跳转到授权页面
header('Location: ' . $url);
exit;
callback.php - 处理授权回调
<?php
// 接收授权回调
$code = $_GET['code'] ?? '';
$state = $_GET['state'] ?? '';
if (empty($code)) {
die('授权失败');
}
// 使用 code 调用回调接口获取用户信息
$apiurl = 'http://u.xuwbk.com/connect.php';
$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) {
// 授权成功,获取用户信息
$openid = $result['social_uid'];
$nickname = $result['nickname'];
$avatar = $result['faceimg'];
// ... 处理登录逻辑
}