售后
申请售后
只有已完成的订单才能申请售后。
- URL:
/app-api/trade/after-sale/create - Method:
POST - 需要鉴权:是
请求参数
| 参数 | 类型 | 约束 | 说明 |
|---|---|---|---|
| orderItemId | Long | 必传 | 订单项编号 |
| way | Long | 必传 | 售后方式,10-仅退款,20-退货退款 |
| refundPrice | String | 必传 | 退款金额,必须大于 0,单位:分 |
| applyReason | String | 必传 | 申请原因 |
| applyDescription | String | - | 补充描述 |
| applyPicUrls | Array | - | 补充图片凭证,图片数组,最多 9 张 |
请求示例
{
"orderItemId": 222,
"way": 10,
"refundPrice": 400,
"applyReason": "申请退货退款",
"applyDescription": "退款描述",
"applyPicUrls": [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg"
]
}
响应示例
成功:
{
"code": 0,
"data": 25,
"msg": "成功"
}
失败示例:
{
"code": 1011000103,
"data": null,
"msg": "订单未支付,无法申请售后"
}
响应说明
| 参数 | 类型 | 说明 |
|---|---|---|
| data | Long | 成功时返回售后数据编号 |
获取售后列表分页
获取用户的售后列表。
- URL:
/app-api/trade/after-sale/page - Method:
POST - 需要鉴权:是
请求参数
| 参数 | 类型 | 约束 | 说明 |
|---|---|---|---|
| pageNo | Long | 必传 | 页码 |
| pageSize | Long | 必传 | 页大小 |
请求示例
{
"pageNo": 1,
"pageSize": 10
}
响应示例
{
"code": 0,
"data": {
"list": [
{
"id": 25,
"no": "r202411192210521",
"status": 40,
"way": 20,
"type": 10,
"applyReason": "申请退货退款",
"applyDescription": "退款描述",
"applyPicUrls": ["https://example.com/image.jpg"],
"createTime": 1732025452000,
"updateTime": 1732028588000,
"orderId": 142,
"orderNo": "o202312241132071",
"orderItemId": 135,
"spuId": 633,
"spuName": "索尼无线立体声耳机",
"skuId": 1,
"properties": [
{
"propertyId": 1,
"propertyName": "颜色",
"valueId": 5,
"valueName": "黑色"
}
],
"picUrl": "https://example.com/product.jpg",
"count": 1,
"auditReason": null,
"refundPrice": 100,
"refundTime": 1732025443000,
"logisticsId": 1,
"logisticsNo": "SF0262064666066",
"deliveryTime": 1732028575000,
"receiveTime": 1732028588000,
"receiveReason": null,
"afterSaleLogRespVO": {
"id": 44,
"content": "商家收货",
"createTime": 1732028588000
}
}
],
"total": 1
},
"msg": "成功"
}
响应说明
基本信息:
| 参数 | 类型 | 说明 |
|---|---|---|
| id | Long | 售后编号 |
| no | String | 售后流水号 |
| status | Long | 售后状态,见下方枚举 |
| way | Long | 售后方式,10-仅退款,20-退货退款 |
| type | Long | 售后类型,10-售中退款,20-售后退款 |
| applyReason | String | 申请原因 |
| applyDescription | String | 补充描述 |
| applyPicUrls | Array | 补充凭证图片 |
| createTime | Long | 创建时间 |
| updateTime | Long | 更新时间 |
交易订单相关:
| 参数 | 类型 | 说明 |
|---|---|---|
| orderId | Long | 交易订单编号 |
| orderNo | String | 交易订单流水号 |
| orderItemId | Long | 交易订单项编号 |
| spuId | Long | 商品 SPU 编号 |
| spuName | String | 商品 SPU 名称 |
| skuId | Long | 商品 SKU 编号 |
| properties | Array | 属性数组(propertyId/propertyName/valueId/valueName) |
| picUrl | String | 商品图片 |
| count | Long | 退货商品数量 |
| auditReason | String | 审批备注,仅审批不通过时填写 |
退款相关:
| 参数 | 类型 | 说明 |
|---|---|---|
| refundPrice | Long | 退款金额,单位:分 |
| refundTime | Long | 退款时间 |
退货相关:
| 参数 | 类型 | 说明 |
|---|---|---|
| logisticsId | Long | 退货物流公司编号 |
| logisticsNo | String | 退货物流单号 |
| deliveryTime | Long | 退货时间 |
| receiveTime | Long | 收货时间 |
| receiveReason | String | 收货备注 |
售后日志(最新一条):
| 参数 | 类型 | 说明 |
|---|---|---|
| afterSaleLogRespVO.id | Long | 数据编号 |
| afterSaleLogRespVO.content | String | 日志内容 |
| afterSaleLogRespVO.createTime | Long | 创建时间 |
售后状态枚举
| 状态值 | 说明 |
|---|---|
| 10 | 申请中 |
| 20 | 卖家通过(商家同意退款) |
| 30 | 待卖家收货(会员填写退货物流信息) |
| 40 | 等待平台退款(商家收货) |
| 50 | 完成(商家确认退款) |
| 61 | 买家取消售后 |
| 62 | 卖家拒绝(商家拒绝退款) |
| 63 | 卖家拒绝收货(商家拒绝收货) |
获取售后详情
获取售后单的详细信息。
- URL:
/app-api/trade/after-sale/get - Method:
POST - 需要鉴权:是
请求参数
| 参 数 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | Long | 必传 | 售后数据编号 |
请求示例
{
"id": 25
}
响应示例
{
"code": 0,
"data": {
"id": 25,
"no": "r202411192210521",
"status": 40,
"way": 20,
"type": 10,
"applyReason": "申请退货退款",
"applyDescription": "退款描述",
"applyPicUrls": ["https://example.com/image.jpg"],
"createTime": 1732025452000,
"updateTime": 1732028588000,
"orderId": 142,
"orderNo": "o202312241132071",
"orderItemId": 135,
"spuId": 633,
"spuName": "索尼无线立体声耳机",
"skuId": 1,
"properties": [
{
"propertyId": 1,
"propertyName": "颜色",
"valueId": 5,
"valueName": "黑色"
}
],
"picUrl": "https://example.com/product.jpg",
"count": 1,
"auditReason": null,
"refundPrice": 100,
"refundTime": 1732025443000,
"payTime": 1703388738000,
"payChannelCode": "wx_pub",
"payPrice": 100,
"logisticsId": 1,
"logisticsNo": "SF0262064666066",
"deliveryTime": 1732028575000,
"receiveTime": 1732028588000,
"receiveReason": null
},
"msg": "成功"
}
响应说明
响应字段同「获取售后列表分页」,额外包含以下字段:
| 参数 | 类型 | 说明 |
|---|---|---|
| orderCreateTime | Long | 订单下单时间 |
| payTime | Long | 支付时间 |
| payChannelCode | String | 支付渠道,wx_pub-微信 APP,wx_lite-微信小程序,alipay_app-支付宝 |
| payPrice | Long | 支付价格 |
退回货物
商家同意退货退款后,买家需要将货物退回。
- URL:
/app-api/trade/after-sale/delivery - Method:
POST - 需要鉴权:是
请求参数
| 参数 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | Long | 必传 | 售后数据编号 |
| logisticsId | Long | 必传 | 物流公司编号 |
| logisticsNo | String | 必传 | 物流单号 |
请求示例
{
"id": 25,
"logisticsId": 1,
"logisticsNo": "SF0262064666066"
}
响应示例
{
"code": 0,
"data": true,
"msg": "成功"
}
响应说明
| 参数 | 类型 | 说明 |
|---|---|---|
| data | Boolean | true 成功,false 失败 |
取消售后
仅在售后状态为申请中、卖家通过、待卖家收货时才能取消。
- URL:
/app-api/trade/after-sale/cancel - Method:
POST - 需要鉴权:是
请求参数
| 参数 | 类型 | 约束 | 说明 |
|---|---|---|---|
| id | Long | 必传 | 售后数据编号 |
请求示例
{
"id": 25
}
响应示例
成功:
{
"code": 0,
"data": true,
"msg": "成功"
}
失败:
{
"code": 1011000111,
"data": null,
"msg": "取消售后单失败,售后单状态不是【待审核】或【卖家同意】或【商家待收货】"
}
响应说明
| 参数 | 类型 | 说明 |
|---|---|---|
| data | Boolean | true 成功,false 失败 |
获取售后记录日志
获取售后单的操作日志列表。
- URL:
/app-api/trade/after-sale-log/list - Method:
POST - 需要鉴权:是
请求参数
| 参数 | 类型 | 约束 | 说明 |
|---|---|---|---|
| afterSaleId | Long | 必传 | 售后记录编号 |
请求示例
{
"afterSaleId": 23
}
响应示例
{
"code": 0,
"data": [
{
"id": 37,
"content": "商家收货",
"createTime": 1705408388000
},
{
"id": 36,
"content": "商家退款",
"createTime": 1705408043000
},
{
"id": 35,
"content": "会员填写退货物流信息,快递公司:申通快递,快递单号:888",
"createTime": 1705407886000
},
{
"id": 33,
"content": "商家同意退款",
"createTime": 1705407692000
},
{
"id": 32,
"content": "会员申请退款",
"createTime": 1705405978000
}
],
"msg": "成功"
}
响应说明
| 参数 | 类型 | 说明 |
|---|---|---|
| id | Long | 数据编号 |
| content | String | 日志内容 |
| createTime | Long | 创建时间 |