POST 获取商品实时报价
智简魔方业务系统 V10 地域购物车实时报价接口,对完整商品配置进行原生购买校验和核心计价,返回价格、库存及五分钟有效的报价令牌。前台需保留完整请求配置,并保持报价与加购身份一致,涉及密码或私钥时需要登录。
接口概览
| 项目 | 内容 |
|---|---|
| 文档类型 | 前台接口 |
| 请求方式 | POST |
| 接口地址 | /console/v1/location_cart/quote |
| 所属业务 | 地域购物车 |
| 来源模块/系统 | 地域购物车插件(location_cart) |
| 接口版本 | v2 |
| 认证方式 | 支持游客 Cookie 购物车;登录用户沿用前台 JWT,子账户需具有购物车操作权限。涉及密码、私钥等配置时需要登录。 |
完整请求
请求
正在加载示例…请求体(quote-request.json)
正在加载示例…
config_options: {}仅为请求结构占位。实际请求必须替换为按商品配置项接口填写完整的配置;示例商品 ID、来源标识和令牌也必须替换为服务端返回值。
游客可去掉
Authorization请求头,但须保留 Cookie。报价与加购使用同一用户身份;游客调用还须保留同一 Cookie 及 User-Agent。
接口说明
对完整配置执行原生购买校验和 V10 核心计价,返回当前价格、库存和有效期为 5 分钟的报价令牌。
购买总价读取 data.quote.price_total;保存 data.quote_token、data.expires_at 以及本次报价的完整请求体。
响应中的 data.config_options 不回显密码和私钥。加购时使用原报价请求中的完整配置,不能以脱敏响应替代。
游客提交密码或私钥等登录配置时会要求先登录;登录后需要重新报价。
请求参数
| 名称 | 位置 | 类型 | 必选 | 默认值 | 说明 |
|---|---|---|---|---|---|
product_id | body | integer | 是 | — | V10商品ID |
source_key | body | string | 是 | — | 原生来源稳定标识 |
billing_mode | body | string | 是 | — | 计费方式 recurring_prepayment=包年包月 on_demand=按需计费 |
config_options | body | object | 是 | — | 按商品配置项接口字段协议提交的完整配置 |
qty | body | integer | 否 | 1 | 购买数量,默认1,范围1至999 |
成功响应
以下为结构示例,部分可选或动态字段省略;全部响应字段定义见“响应参数”。
正在加载示例…失败响应
业务状态 400:参数或业务校验失败。提示信息以实际响应中的 msg 为准。
正在加载示例…业务状态 404:无购物车操作权限。
正在加载示例…响应状态
| 业务状态码 | 含义 | 说明 |
|---|---|---|
200 | 请求成功 | 读取 data 继续购买流程。 |
400 | 请求参数或业务校验失败 | 配置校验失败、商品库存不足、来源失效或需要登录。 |
404 | 无购物车操作权限 | 报价或加购沿用核心购物车权限。 |
上表为 JSON 响应体中的
status,不是 HTTP 状态码。不能仅凭 HTTP 请求成功判断业务是否成功。
响应参数
成功响应与特定业务失败响应中使用的字段如下。字段是否出现取决于响应场景;原文档未声明返回字段的必选属性。
| 名称 | 类型 | 说明 |
|---|---|---|
status | integer | 状态码 200成功 400业务失败 404无购物车权限 |
msg | string | 提示信息 |
data | object | 实时报价数据 |
data.product_id | integer | V10商品ID |
data.source_key | string | 原生来源稳定标识 |
data.source | object | 服务端确认的区域、可用区和线路来源 |
data.billing_mode | string | 规范化后的计费方式 |
data.module | string | 原生模块 mf_cloud或mf_dcim |
data.config_options | object | 通过校验并转换后的原生配置,密码和私钥不会回显 |
data.stock | object | 商品库存与当前配置库存快照 |
data.stock.available | boolean | null | 综合库存状态 true可用 false不足 null原生模块无法确认配置余量 |
data.stock.requested_qty | integer | 本次购买数量 |
data.stock.product | object | V10核心商品库存 |
data.stock.product.status | string | 核心商品库存状态 tracked=已跟踪 not_tracked=未控制 |
data.stock.product.stock_control | integer | 是否启用核心商品库存控制 0否 1是 |
data.stock.product.available | boolean | 核心商品库存是否满足购买数量 |
data.stock.product.qty | integer | 核心商品库存数量 |
data.stock.product.requested_qty | integer | 本次购买数量 |
data.stock.configuration | object | 当前云配置、推荐套餐或DCIM机型库存 |
data.stock.configuration.status | string | 库存状态 tracked=已跟踪 not_tracked=未控制 unknown=无法确认 |
data.stock.configuration.stock_control | integer | null | 是否启用配置库存控制,无法确认时为null |
data.stock.configuration.available | boolean | null | 当前配置是否满足购买数量,无法确认时为null |
data.stock.configuration.qty | integer | null | 当前配置可售数量,未跟踪或无法确认时为null |
data.stock.configuration.requested_qty | integer | 本次购买数量 |
data.quote | object | V10核心计价结果 |
data.quote.price | string | 当前配置购买原价 |
data.quote.price_total | string | 应用有效优惠后的购买总价 |
data.quote.renew_price | string | 续费单价 |
data.quote.renew_price_total | string | 续费总价 |
data.quote.billing_cycle | string | 购买周期显示名称 |
data.quote.duration | integer | 周期时长,单位秒 |
data.quote.description | string | 完整配置描述 |
data.quote.preview | array | 模块返回的配置预览 |
data.quote_token | string | 五分钟有效的报价令牌,加购时必须原样提交 |
data.expires_at | integer | 报价令牌过期时间,Unix时间戳 |