分享一个房贷计算器小程序接口设计方案(含PHP开源代码库)

房贷计算器小程序 API 接口设计方案

码云开源链接

统一响应格式

所有API接口均返回以下统一格式的JSON数据:

{  "code": 0,        // 状态码,0表示成功,其他值表示失败  "msg": "操作成功",  // 响应消息  "data": {}        // 响应数据,具体格式根据接口不同而不同}

错误码定义

错误码描述

0成功

-1通用错误

400请求参数错误

401未授权或token无效

403权限不足

404资源不存在

500服务器内部错误

1001用户不存在

1002登录失败

2001贷款计算参数错误

2002贷款计算失败

3001历史记录不存在

3002历史记录保存失败

4001对比记录创建失败

4002对比记录不存在

1. 用户相关接口

1.1 用户登录/注册 API

URL: /v1/user/login

方法: POST

请求参数:

{  "code": "微信登录code",  "userInfo": {    "nickName": "用户昵称",    "avatarUrl": "头像URL"  }}

响应数据:

{  "code": 0,  "msg": "登录成功",  "data": {    "userId": 1,    "openId": "微信openId",    "nickName": "用户昵称",    "avatarUrl": "头像URL",    "token": "身份认证令牌"  }}

1.2 获取用户信息 API

URL: /v1/user/info

方法: GET

请求头: Authorization: Bearer {token}

响应数据:

{  "code": 0,  "msg": "获取成功",  "data": {    "userId": 1,    "nickName": "用户昵称",    "avatarUrl": "头像URL"  }}

1.3 更新用户信息 API

URL: /v1/user/update

方法: PUT

请求头: Authorization: Bearer {token}

请求参数:

{  "nickName": "新昵称",  "avatarUrl": "新头像URL"}

响应数据:

{  "code": 0,  "msg": "更新成功",  "data": {    "userId": 1,    "nickName": "新昵称",    "avatarUrl": "新头像URL"  }}

2. 贷款计算相关接口

2.1 贷款计算 API

URL: /v1/loan/calculate

方法: POST

请求头: Authorization: Bearer {token}

请求参数:

{  "type": "commercial", // 贷款类型:commercial-商业贷款,fund-公积金贷款,combined-组合贷款  "repaymentType": "equal", // 还款方式:equal-等额本息,principal-等额本金,compare-对比两种方式  "years": 20, // 贷款年限  // 商业贷款或公积金贷款参数  "amount": 100, // 贷款金额(万元),type为commercial或fund时必填  "rate": 3.8, // 贷款利率(%),type为commercial或fund时必填  "basisPoints": 0, // 基点调整,type为commercial时可选  // 组合贷款参数  "commercialAmount": 70, // 商业贷款金额(万元),type为combined时必填  "commercialRate": 3.8, // 商业贷款利率(%),type为combined时必填  "commercialBasisPoints": 0, // 商业贷款基点调整,type为combined时可选  "fundAmount": 30, // 公积金贷款金额(万元),type为combined时必填  "fundRate": 3.1 // 公积金贷款利率(%),type为combined时必填}

响应数据:

{  "code": 0,  "msg": "计算成功",  "data": {    "loanType": "commercial", // 贷款类型    "repaymentType": "equal", // 还款方式    "years": 20, // 贷款年限    "totalAmount": 100, // 总贷款金额(万元)    // 商业贷款或公积金贷款信息    "amount": 100, // 贷款金额(万元)    "rate": 3.8, // 贷款利率(%)    "adjustedRate": 3.8, // 调整后的利率(%)    // 组合贷款信息(type为combined时返回)    "commercialAmount": 0, // 商业贷款金额(万元)    "commercialRate": 0, // 商业贷款利率(%)    "adjustedCommercialRate": 0, // 调整后的商业贷款利率(%)    "fundAmount": 0, // 公积金贷款金额(万元)    "fundRate": 0, // 公积金贷款利率(%)    // 等额本息结果(repaymentType为equal或compare时返回)    "equalResult": {      "totalLoan": 1000000, // 贷款总额(元)      "totalRepayment": 1456783.25, // 还款总额(元)      "totalInterest": 456783.25, // 总利息(元)      "monthlyPayment": 6069.93 // 月供(元)    },    // 等额本金结果(repaymentType为principal或compare时返回)    "principalResult": {      "totalLoan": 1000000, // 贷款总额(元)      "totalRepayment": 1395833.33, // 还款总额(元)      "totalInterest": 395833.33, // 总利息(元)      "firstMonthPayment": 8166.67, // 首月还款(元)      "decreasePerMonth": 31.67, // 每月递减(元)      "lastMonthPayment": 4198.33 // 末月还款(元)    },    // 对比结果(repaymentType为compare时返回)    "interestDiff": 60949.92, // 利息差额(元)    // 历史记录ID(系统自动保存)    "recordId": 123 // 自动保存的历史记录ID  }}

注意: 该接口会自动将计算结果保存到用户的历史记录中,无需再调用单独的保存接口。

2.2 获取默认利率和利率选项 API

URL: /v1/loan/rate-options

方法: GET

响应数据:

{  "code": 0,  "msg": "获取成功",  "data": {    "commercialLprShort": [      {"label": "2025最新LPR 1-5年", "value": 3.95},      {"label": "LPR 1-5年 2024", "value": 3.95},      {"label": "LPR 1-5年 2023", "value": 4.20}    ],    "commercialLprLong": [      {"label": "2025最新LPR 5年以上", "value": 4.20},      {"label": "LPR 5年以上 2024", "value": 4.20},      {"label": "LPR 5年以上 2023", "value": 4.45}    ],    "fundRateShort": [      {"label": "公积金利率 1-5年 2025", "value": 2.60},      {"label": "公积金利率 1-5年 2024", "value": 2.60},      {"label": "公积金利率 1-5年 2023", "value": 2.75}    ],    "fundRateLong": [      {"label": "公积金利率 5年以上 2025", "value": 3.10},      {"label": "公积金利率 5年以上 2024", "value": 3.10},      {"label": "公积金利率 5年以上 2023", "value": 3.25}    ],    "defaultCommercialRateShort": 3.95,    "defaultCommercialRateLong": 4.20,    "defaultFundRateShort": 2.60,    "defaultFundRateLong": 3.10  }}

3. 历史记录相关接口

3.1 保存计算记录 API

URL: /v1/history/save

方法: POST

请求头: Authorization: Bearer {token}

请求参数: 与贷款计算API的请求参数相同,但增加计算结果

{  "params": {    // 与贷款计算API的请求参数相同  },  "results": {    // 与贷款计算API的响应数据相同  }}

响应数据:

{  "code": 0,  "msg": "保存成功",  "data": {    "recordId": 1 // 记录ID  }}

3.2 获取历史记录列表 API

URL: /v1/history/list

方法: GET

请求头: Authorization: Bearer {token}

请求参数:

page: 1 // 页码,默认1

pageSize: 10 // 每页条数,默认10

响应数据:

{  "code": 0,  "msg": "获取成功",  "data": {    "total": 25, // 总记录数    "pages": 3, // 总页数    "currentPage": 1, // 当前页码    "pageSize": 10, // 每页条数    "list": [      {        "id": 1, // 记录ID        "date": "2023-05-20 14:30:25", // 创建日期        "loanTypeText": "商业贷款", // 贷款类型文本        "totalAmount": 100, // 贷款总额(万元)        "years": 20, // 贷款年限        "repaymentTypeText": "等额本息" // 还款方式文本      }      // 更多记录...    ]  }}

3.3 获取历史记录详情 API

URL: /v1/history/detail/{recordId}

方法: GET

请求头: Authorization: Bearer {token}

响应数据: 与贷款计算API的响应数据相同

3.4 删除历史记录 API

URL: /v1/history/delete/{recordId}

方法: DELETE

请求头: Authorization: Bearer {token}

响应数据:

{  "code": 0,  "msg": "删除成功",  "data": null}

3.5 清空历史记录 API

URL: /v1/history/clear

方法: DELETE

请求头: Authorization: Bearer {token}

响应数据:

{  "code": 0,  "msg": "清空成功",  "data": null}

4. 对比相关接口

4.1 创建贷款对比 API

URL: /v1/comparison/create

方法: POST

请求头: Authorization: Bearer {token}

请求参数:

{  "record1Id": 1, // 第一条记录ID  "record2Id": 2 // 第二条记录ID}

响应数据:

{  "code": 0,  "msg": "创建成功",  "data": {    "comparisonId": 1 // 对比记录ID  }}

4.2 获取对比结果 API

URL: /v1/comparison/detail/{comparisonId}

方法: GET

请求头: Authorization: Bearer {token}

响应数据:

{  "code": 0,  "msg": "获取成功",  "data": {    "record1": {      // 第一条记录的详细信息,与历史记录详情相同    },    "record2": {      // 第二条记录的详细信息,与历史记录详情相同    },    "equalCompare": {      // 等额本息对比结果      "monthlyPaymentDiff": 1000, // 月供差额(元)      "totalRepaymentDiff": 240000, // 还款总额差额(元)      "totalInterestDiff": 240000 // 总利息差额(元)    },    "principalCompare": {      // 等额本金对比结果      "firstMonthPaymentDiff": 1500, // 首月还款差额(元)      "decreasePerMonthDiff": 5, // 每月递减差额(元)      "totalRepaymentDiff": 200000, // 还款总额差额(元)      "totalInterestDiff": 200000 // 总利息差额(元)    },    "conclusion": "在等额本息还款方式下,方案一比方案二少付利息240000元,月供也低1000元。在等额本金还款方式下,方案一比方案二少付利息200000元,首月还款也低1500元。" // 对比结论  }}

API 使用说明

身份认证

除了登录接口和获取默认利率选项接口外,其他所有接口都需要在请求头中携带身份认证token:

Authorization: Bearer {token}

其中,{token} 是用户登录成功后返回的身份认证令牌。

请求方式

GET 请求:参数通过 URL 查询字符串传递

POST/PUT/DELETE 请求:参数通过 JSON 格式的请求体传递

数据格式约定

贷款金额单位为万元,前端显示和后端存储均保持一致

利率以百分比形式存储,如4.5表示4.5%

计算结果金额单位为元,保留2位小数

历史记录按创建时间倒序排列

用户只能查看和操作自己的历史记录

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容