Step1:获取跳转登录地址
请求URL:
https://vmq.scydao.com/connect.php?act=login&appid={你的appid}&appkey={你的appkey}&type={登录方式}&redirect_uri={返回地址}&qrcode_image=1
参数说明(
qrcode_image为可选参数):
| 参数名 |
是否必填 |
参数说明 |
参数示例 |
| appid |
是 |
应用ID |
1001 |
| appkey |
是 |
应用密钥 |
3f17e9c0******** |
| type |
否 |
登录方式,不传默认qq |
wx |
| redirect_uri |
是 |
登录完成后的回调地址 |
https://www.example.com/callback.php |
| state |
否 |
业务透传参数,回调时原样返回 |
order_123456 |
| qrcode_image |
否 |
传1时额外返回二维码图片地址(仅微信/支付宝有效) |
1 |
其中登录方式对应值:
返回格式:
{
"code": 0,
"msg": "succ",
"type": "qq",
"url": "https://graph.qq.com/oauth2.0/XXXXXXXXXX"
}
扫码登录返回示例(微信/支付宝):
{
"code": 0,
"msg": "succ",
"type": "wx",
"url": "https://open.weixin.qq.com/connect/qrconnect?appid=XXXXXX",
"qrcode": "https://open.weixin.qq.com/connect/qrconnect?appid=XXXXXX&client=1",
"qrcode_img": "https://api.qrserver.com/v1/create-qr-code/?size=300x300&margin=0&data=..."
}
返回参数说明:
| 参数名 |
参数类型 |
参数说明 |
参数示例 |
| code |
int |
返回状态码 |
0为成功,其它值为失败 |
| msg |
string |
返回信息 |
返回错误时的说明 |
| type |
string |
登录方式 |
qq |
| url |
string |
登录跳转地址 |
https://graph.qq.com/oauth2.0/XXXXXXXXXX |
| qrcode |
string |
登录扫码地址 |
此地址仅微信和支付宝返回 |
| qrcode_img |
string |
二维码图片地址 |
当请求带qrcode_image=1时返回,仅微信和支付宝返回 |
Step2:跳转到登录地址
登录地址为上一步返回的url的值。
Step3(可选):二维码扫描状态检测
请求URL:
https://vmq.scydao.com/connect.php?act=check&appid={你的appid}&appkey={你的appkey}&state={state}
请求参数说明:
| 参数名 |
是否必填 |
参数说明 |
参数示例 |
| appid |
是 |
应用ID |
1001 |
| appkey |
是 |
应用密钥 |
3f17e9c0******** |
| state |
是 |
Step1 返回的 qrcode 或 url 中的 state 参数值 |
8f0c7f0e******** |
建议每2秒轮询一次。
返回格式示例(等待扫码):
{
"code": 1
}
返回格式示例(扫码完成):
{
"code": 0,
"msg": "登录成功",
"type": "wx",
"auth_code": "520DD95263C1CFEA0870FBB66E******",
"state": "order_123456",
"redirect_uri": "https://www.example.com/callback.php"
}
拿到参数后,可由业务端自行拼接跳转地址:
{redirect_uri}?type={type}&code={auth_code}&state={state}(若已有query参数请使用
&拼接)。
返回参数说明:
| 参数名 |
参数类型 |
参数说明 |
参数示例 |
| code |
int |
返回状态码 |
0=扫码完成,1=等待扫码,-1=失败 |
| errcode |
int |
错误码 |
101=参数校验失败,102=记录不存在或登录超时 |
| msg |
string |
返回信息 |
登录成功 |
| type |
string |
登录方式 |
wx |
| auth_code |
string |
授权码(用于后续回调换取用户信息) |
520DD95263C1CFEA0870FBB66E****** |
| state |
string |
Step1 传入的透传参数 |
order_123456 |
| redirect_uri |
string |
应用回调地址 |
https://www.example.com/callback.php |
Step4:登录成功后跳转到指定的redirect_uri,并带上Authorization Code
说明:使用内置网页扫码页时会自动跳转;使用 Step3 接口时请按上一步返回参数自行拼接并跳转。
例如回调地址是:www.qq.com/my.php,则会跳转到:
http://www.qq.com/my.php?type=qq&code=520DD95263C1CFEA0870FBB66E******
Step5:通过Authorization Code获取用户信息
请求URL:
https://vmq.scydao.com/connect.php?act=callback&appid={appid}&appkey={appkey}&type={登录方式}&code={code}
返回格式:
{
"code": 0,
"msg": "succ",
"type": "qq",
"access_token": "89DC9691E274D6B596FFCB8D43368234",
"social_uid": "AD3F5033279C8187CBCBB29235D5F827",
"faceimg": "https://thirdqq.qlogo.cn/g?b=oidb&k=3WrWp3peBxlW4MFxDgDJEQ&s=100&t=1596856919",
"nickname": "大白",
"location": "XXXXX市",
"gender": "男",
"ip": "1.12.3.40"
}
返回参数说明:
| 参数名 |
参数类型 |
参数说明 |
参数示例 |
| code |
int |
返回状态码 |
0为成功,2为未完成登录,其它值为失败 |
| msg |
string |
返回信息 |
返回错误时的说明 |
| type |
string |
登录方式 |
qq |
| social_uid |
string |
第三方登录UID |
AD3F5033279C8187CBCBB29235D5F827 |
| access_token |
string |
第三方登录token |
89DC9691E274D6B596FFCB8D43368234 |
| faceimg |
string |
用户头像 |
https://thirdqq.qlogo.cn/g?...... |
| nickname |
string |
用户昵称 |
消失的彩虹海 |
| gender |
string |
用户性别 |
男 |
| location |
string |
用户所在地 |
XXXXX市(仅限支付宝/微信返回) |
| ip |
string |
用户登录IP |
1.12.3.40 |