Appearance
获取H5跳转链接
接口说明
该接口返回带有 PortalToken (pt) 的完整登录 URL,用户访问该 URL 后可自动完成登录并跳转到指定业务页面。
接口地址
POST /api/member/login
请求参数 (data 解密后)
json
{
"memberId": 1000001,
"destCode": "CREDIT",
"redirectUrl": "http://localhost:8080/credit/apply/callback"
}请求字段说明
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| memberId | Long | 是 | 成员 ID |
| destCode | String | 是 | 目标页面编码(见下方枚举说明) |
| redirectUrl | String | 是 | 业务回调地址(登录成功后最终跳转的 URL) |
页面编码 (destCode) 枚举
| 代码 | 说明 | 页面路径 |
|---|---|---|
| CREDIT | 授信页面 | /credit |
| LOAN | 用信页面(暂无) | /loan |
| REPAY | 还款页面(暂无) | /repay |
响应参数 (data 解密后)
json
{
"pt": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"url": "https://pre.lilitop.com/h5/login/portal?pt=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6&redirect=%2Fcredit&callback=https%3A%2F%2Fwww.example.com"
}响应字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| pt | String | Portal Token(临时 Token,60 秒有效,一次性使用) |
| url | String | 完整的 H5 登录 URL(包含 pt、redirect、callback 参数) |
使用方式
javascript
// 示例:获取授信页面的登录链接
const response = await fetch('/api/member/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
// 根据加密规范添加必要的请求头
},
body: JSON.stringify({
memberId: 1000001,
destCode: 'CREDIT',
redirectUrl: 'http://example.com/credit/callback',
}),
});
const resp = await response.json();
if (resp.code === 0) window.location.href = resp.data.url;登录流程说明
1. 用户访问登录URL
↓
2. 系统验证 pt 是否有效(60秒内 + 未使用过)
↓
3. 验证通过,自动完成登录(生成用户会话)
↓
4. 跳转到 redirect 指定的业务页面(如 /credit)
↓
5. 业务页面完成操作后,跳转到 callback 指定的回调地址URL 参数说明
| 参数名 | 说明 | 示例 |
|---|---|---|
| pt | Portal Token,临时登录凭证 | a1b2c3d4e5f6... |
| redirect | 登录后跳转的目标页面(URL 编码) | %2Fcredit(即 /credit) |
| callback | 业务完成后的回调地址(URL 编码) | http%3A%2F%2Fexample.com%2Fcallback |
业务规则
Portal Token (pt) 有效期为 60 秒
- 超过 60 秒后 pt 自动失效
- 需要重新调用接口获取新的 pt
Portal Token 为一次性使用
- 使用一次后立即失效
- 重复使用会提示 "Token 已使用"
建议直接使用返回的 url 字段
- 接口已自动处理 URL 编码
- 减少手动拼接出错的风险
destCode 必须是有效的页面编码
- 传入无效代码会返回 "无效的页面代码" 错误
- 当前支持:CREDIT、LOAN、REPAY
redirectUrl 用于业务回调
- 登录成功后,业务操作完成时跳转到该地址
- 必须是完整的 URL(包含协议和域名)
错误处理
常见错误
| 错误码 | 错误信息 | 原因 | 解决方案 |
|---|---|---|---|
| PARAM_ERROR | 无效的页面代码 | destCode 不在允许的枚举值内 | 检查 destCode 是否为 CREDIT/LOAN/REPAY |
| TOKEN_EXPIRED | Token 已过期 | pt 超过 60 秒有效期 | 重新调用接口获取新的 pt |
| TOKEN_USED | Token 已使用 | pt 已经被使用过 | 重新调用接口获取新的 pt |
| MEMBER_NOT_FOUND | 成员不存在 | memberId 不存在 | 检查 memberId 是否正确 |
错误示例
json
{
"code": "PARAM_ERROR",
"message": "无效的页面代码",
"data": null
}注意事项
- 时效性要求:获取 pt 后应立即使用,避免超时
- 安全性:pt 仅包含登录凭证,不包含敏感信息
- 幂等性:同一 memberId 可多次调用,每次返回新的 pt