跳到主要内容

交易

用户名密码登录

  • URL/app-api/member/auth/login
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型是否必传约束
mobileString15601691301
passwordStringadmin123

请求示例

{ "mobile": "15601691301", "password": "admin123" }

响应示例

{
"code": 0,
"data": {
"userId": 1024,
"accessToken": "happy",
"refreshToken": "nice",
"expiresTime": "",
"openid": "qq768"
},
"msg": ""
}

响应说明

参数类型说明
codeNumber200成功 其他失败
userIdNumber用户编号
accessTokenString访问令牌
refreshTokenString刷新令牌
expiresTimeString过期时间
openidString社交用户 openid

创建订单前-订单结算信息

  • URL/app-api/trade/order/settlement
  • MethodPOST
  • 需要鉴权:是
说明
  1. 从购物车下单时,购物车中可以多选并进行下单,在进行下单前,需要调用本接口获取当前选中的商品的结算信息,包括价格、优惠券(可用及不可用的均返回);
  2. 用户选中可以使用的优惠券后,需要调用本接口重新获取结算价格;
  3. 使用积分支付时:积分商城的调用方式:pointStatus = true 和 pointActivityId 必传;

请求参数

参数类型约束
items购物项数组
skuIdLongsku编号
countLong数量
cartIdLong购物车编号
couponIdLong优惠券编号
deliveryTypeLong配送方式1 快递发货2自提(默认传1)实物传1 虚拟传2
addressIdLong收件地址编号
receiverNameString收件人名称
receiverMobileString收件人手机
pointStatus是否使用积分true:是false:否
pointActivityIdLong积分商城活动字段

请求示例

{
"items": [
{
"skuId": 33,
"count": 2,
"cartId": 100
},
{
"skuId": 32,
"count": 1,
"cartId": 99
}
],
"couponId": 47,
"pointStatus": false,
"deliveryType": 1,
"addressId": 47,
"receiverName": "芋艿",
"receiverMobile": "15601691300"
}

响应示例

{
"code": 0,
"data": {
"type": 0,
"items": [
{
"categoryId": 28,
"spuId": 640,
"spuName": "商城测试商品",
"skuId": 33,
"price": 1000,
"picUrl": "http://test.yudao.iocoder.cn/9c6f8897bf5b3baa457b056cdfd3edebb4c5def6b2f241267b5d6903606358af.png",
"properties": [
{
"propertyId": 1,
"propertyName": "颜色",
"valueId": 6,
"valueName": "蓝色"
},
{
"propertyId": 16,
"propertyName": "重量",
"valueId": 30,
"valueName": "大"
}
],
"cartId": null,
"count": 2
}
],
"coupons": [
{
"id": 47,
"name": "满10元减5元券",
"usePrice": 1000,
"validStartTime": 1732896000000,
"validEndTime": 1735660799000,
"discountType": 1,
"discountPercent": 90,
"discountPrice": 500,
"discountLimitPrice": 9999900,
"match": true,
"mismatchReason": null
}
],
"price": {
"totalPrice": 3000,
"discountPrice": 0,
"deliveryPrice": 0,
"couponPrice": 500,
"pointPrice": 0,
"vipPrice": 0,
"payPrice": 2500
},
"address": {
"id": 47,
"name": "吕",
"mobile": "18612982936",
"areaId": 110101,
"areaName": "北京市 北京市 东城区",
"detailAddress": "兴创国际中心",
"defaultStatus": true
},
"usePoint": 0,
"totalPoint": 0,
"promotions": [
{
"id": 47,
"name": "满10元减5元券",
"type": 7,
"totalPrice": 3000,
"discountPrice": 500,
"items": [
{ "skuId": 33, "totalPrice": 2000, "discountPrice": 333 },
{ "skuId": 32, "totalPrice": 1000, "discountPrice": 167 }
],
"match": true,
"description": "优惠劵:省 5.00 元"
}
]
},
"msg": "成功"
}

响应说明

参数类型说明
typeLong订单类型0:商城订单
usePointLong已使用的积分
totalPointLong总积分
items订单商品购物项数组
categoryIdLong品类编号
spuIdLongSPU 编号
spuNameStringSPU 名字
skuIdLongSKU 编号
priceLongSKU 价格,单位:分
picUrlStringSKU 图片地址
properties属性数组
cartIdLong购物车编号
countLong下单数量
coupons优惠券信息数组
address地址对象
price费用对象
totalPriceLong商品原价(总),单位:分
discountPriceLong订单优惠(总),单位:分
deliveryPriceLong运费金额,单位:分
couponPriceLong优惠劵减免金额,单位:分
pointPriceLong积分抵扣的金额,单位:分
vipPriceLongVIP 减免金额,单位:分
payPriceLong实际支付金额(总),单位:分
promotions营销活动数组
matchBoolean是否满足优惠条件
descriptionString满足条件的提示

下单前校验-是否可以下单

  • URL/app-api/trade/order/validateIsToBuy
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型约束
spuIdLong商品spuId
buyCountLong下单购买数量

请求示例

[
{ "spuId": 1008, "buyCount": 6 },
{ "spuId": 1009, "buyCount": 1 }
]

响应示例

{
"code": 0,
"data": true,
"msg": "成功"
}

响应说明

参数类型约束
dataBooleantrue 可以继续下单,其他均不可下单

创建订单

  • URL/app-api/trade/order/create
  • MethodPOST
  • 需要鉴权:是
说明

从购物车下单时,购物车中可以多选并进行下单,即可以下单多个商品。

请求参数

参数类型是否必传约束
items数组选中商品数组
skuIdNumber商品 SKU 编号
countNumber购买数量
cartIdNumber购物车项的编号
hospitalPrescriptionIdNumber如果有,说明是处方单药品,则传
typeNumber订单类型:0-普通订单(默认)1-秒杀订单2-砍价订单3-拼团订单4-积分商城
couponIdNumber优惠劵编号,如果有可用的,则传一个
pointStatusboolean是否使用积分true:是false:否
deliveryTypeNumber配送方式1 快递发货2自提(默认传1)实物传1 虚拟传2
addressIdNumber收件地址编号
pickUpStoreIdNumber自提门店编号
receiverNameString收件人名称
receiverMobileString收件人手机
seckillActivityIdNumber秒杀活动编号
combinationActivityIdNumber拼团活动编号
combinationHeadIdNumber拼团团长编号
bargainRecordIdNumber砍价记录编号
pointActivityIdNumber积分活动的编号
remarkString备注

请求示例

{
"items": [
{ "skuId": 33, "count": 2, "cartId": 100 },
{ "skuId": 32, "count": 1, "cartId": 99 }
],
"pointStatus": false,
"deliveryType": 1,
"addressId": 47,
"receiverName": "芋艿",
"receiverMobile": "15601691300",
"remark": "这个是我的订单哟"
}

响应示例

{
"code": 0,
"data": {
"id": 1024,
"payOrderId": 1024
},
"msg": ""
}

响应说明

参数类型说明
idNumber订单数据编号
payOrderIdNumber支付单数据编号

获取订单分页

  • URL/app-api/trade/order/page
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型是否必传约束
userIdNumber用户id
pageNoNumber页码
pageSizeNumber每页条数
statusNumber实物订单0 待支付10 待发货20 已发货30 已完成40 已取消全部 不传
commentStatusBoolean订单类型true:已评价false:未评价

请求示例

{
"pageNo": 1,
"pageSize": 10,
"status": 0,
"commentStatus": true
}

响应示例

{
"code": 0,
"data": {
"list": [
{
"id": 1024,
"no": "1146347329394184195",
"type": 0,
"status": 1,
"productCount": 10,
"commentStatus": true,
"createTime": "",
"payOrderId": 1024,
"payPrice": 1000,
"deliveryType": 1,
"items": [
{
"id": 1,
"orderId": 1024,
"spuId": 1,
"spuName": "芋道源码",
"skuId": 1,
"properties": [
{ "propertyId": 1, "propertyName": "颜色", "valueId": 1024, "valueName": "红色" }
],
"picUrl": "https://www.iocoder.cn/1.png",
"count": 1,
"commentStatus": true,
"price": 100,
"payPrice": 50,
"afterSaleId": 1024,
"afterSaleStatus": 1
}
],
"combinationRecordId": 100
}
],
"total": 0
},
"msg": "成功"
}

响应说明

参数类型说明
idNumber订单编号
noNumber订单流水号
typeNumber订单类型0-普通订单(默认)
statusNumber订单状态0-待支付 10-待发货 20-已发货 30-已完成 40-已取消
productCountNumber购买的商品数量
commentStatusboolean是否评价true-已评价 false-未评价
createTimeString创建时间
payOrderIdNumber支付订单编号
payPriceNumber应付金额,单位:分
deliveryTypeNumber配送方式1-快递
combinationRecordIdNumber拼团记录编号
items数组订单商品项

获取订单详情

  • URL/app-api/trade/order/getOrderDetail
  • MethodGET
  • 需要鉴权:是

请求参数

参数类型是否必传约束
idNumber交易订单编号即订单数据编号

请求示例

GET /app-api/trade/order/getOrderDetail?id=225

响应示例

{
"code": 0,
"data": {
"id": 225,
"no": "o202411180027541",
"type": 0,
"createTime": 1731860879000,
"userRemark": "这个是我的订单哟",
"status": 0,
"productCount": 3,
"finishTime": null,
"cancelTime": null,
"commentStatus": false,
"payStatus": false,
"payOrderId": 469,
"payTime": null,
"payExpireTime": 1731947279000,
"payChannelCode": null,
"payChannelName": null,
"totalPrice": 500,
"discountPrice": 0,
"deliveryPrice": 0,
"adjustPrice": 0,
"payPrice": 500,
"deliveryType": 1,
"logisticsId": null,
"logisticsName": null,
"logisticsNo": null,
"deliveryTime": null,
"receiveTime": null,
"receiverName": "吕",
"receiverMobile": "18612982936",
"receiverAreaId": 110101,
"receiverAreaName": "北京市 北京市 东城区",
"receiverDetailAddress": "兴创国际中心",
"pickUpStoreId": null,
"pickUpVerifyCode": null,
"refundStatus": 0,
"refundPrice": 0,
"couponId": null,
"couponPrice": 0,
"pointPrice": 0,
"vipPrice": 0,
"combinationRecordId": null,
"items": [
{
"id": 220,
"orderId": 225,
"spuId": 640,
"spuName": "商城测试商品",
"skuId": 33,
"properties": [
{ "propertyId": 1, "propertyName": "颜色", "valueId": 6, "valueName": "蓝色" },
{ "propertyId": 16, "propertyName": "重量", "valueId": 30, "valueName": "大" }
],
"picUrl": "http://test.yudao.iocoder.cn/9c6f8897bf5b3baa457b056cdfd3edebb4c5def6b2f241267b5d6903606358af.png",
"count": 2,
"commentStatus": false,
"price": 200,
"payPrice": 400,
"afterSaleId": null,
"afterSaleStatus": 0
}
]
},
"msg": "成功"
}

响应说明

参数类型说明
idNumber订单编号
noNumber订单流水号
typeNumber订单类型0-普通订单 1-秒杀订单 2-砍价订单 3-拼团订单 4-积分商城
statusNumber订单状态0-待支付 10-待发货 20-已发货 30-已完成 40-已取消
productCountNumber购买的商品数量
commentStatusboolean是否评价
createTimeString订单创建时间
userRemarkString用户备注
payStatusboolean是否已支付
payOrderIdNumber支付订单编号
payTimeString付款时间
payExpireTimeString付款超时时间
payChannelCodeString支付渠道编码
totalPriceNumber商品原价(总)
discountPriceNumber订单优惠(总)
deliveryPriceNumber运费金额,单位:分
adjustPriceNumber订单调价(总)
payPriceNumber应付金额,单位:分
deliveryTypeNumber配送方式1-快递
logisticsIdNumber发货物流公司编号
logisticsNameString发货物流名称
logisticsNoString发货物流单号
deliveryTimeString发货时间
receiveTimeString收货时间
receiverNameString收件人名称
receiverMobileString收件人手机
receiverAreaIdNumber收件人地区编号
receiverAreaNameString收件人地区名字
receiverDetailAddressString收件人详细地址
refundStatusNumber售后状态 0-未退款 10-部分退款 20-全部退款
refundPriceNumber退款金额,单位:分
couponPriceNumber优惠劵减免金额
pointPriceNumber积分抵扣的金额
vipPriceNumberVIP 减免金额
combinationRecordIdNumber拼团记录编号
items数组订单商品项

取消订单

  • URL/app-api/trade/order/cancel
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型是否必传约束
idNumber交易订单编号

请求示例

{ "id": 1 }

响应示例

{ "code": 0, "data": true, "msg": "" }

响应说明

参数类型约束
databooleantrue 成功
msgString非200提示错误信息

删除订单

  • URL/app-api/trade/order/delete
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型是否必传约束
idNumber交易订单编号

请求示例

{ "id": 225 }

响应示例

{ "code": 0, "data": true, "msg": "" }

响应说明

参数类型约束
databooleantrue 成功
msgString非200提示错误信息

获取交易订单的物流轨迹

  • URL/app-api/trade/order/getOrderExpressTrackList
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型是否必传约束
idNumber交易订单编号

请求示例

{ "id": 226 }

响应示例

{
"code": 0,
"data": {
"name": "物流公司名称",
"code": "物流公司code",
"logisticsNo": "快递编号",
"logo": "logo地址",
"expressTrackRespDTOList": [
{ "time": 1677777, "content": "发生内容" }
]
},
"msg": ""
}

响应说明

参数类型说明
nameString物流公司名称
codeString物流公司编号
logisticsNoString物流单号
logoStringlogo
expressTrackRespDTOList物流轨迹
contentString快递状态
timeLong发生事件,按时间排序,近的在前

获取交易订单的订单项

  • URL/app-api/trade/order/item/get
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型是否必传约束
idNumber订单项数据编号对应订单详情中返回的items.id字段

请求示例

{ "id": 226 }

响应示例

{
"code": 0,
"data": {
"id": 222,
"orderId": 226,
"spuId": 640,
"spuName": "商城测试商品",
"skuId": 33,
"properties": [
{ "propertyId": 1, "propertyName": "颜色", "valueId": 6, "valueName": "蓝色" },
{ "propertyId": 16, "propertyName": "重量", "valueId": 30, "valueName": "大" }
],
"picUrl": "http://test.yudao.iocoder.cn/9c6f8897bf5b3baa457b056cdfd3edebb4c5def6b2f241267b5d6903606358af.png",
"count": 2,
"commentStatus": false,
"price": 200,
"payPrice": 400,
"afterSaleId": null,
"afterSaleStatus": 0
},
"msg": "成功"
}

响应说明

参数类型说明
idNumber编号
orderIdNumber订单编号
spuIdNumber商品 SPU 编号
spuNameString商品 SPU 名称
skuIdNumber商品 SKU 编号
picUrlString商品图片
countNumber购买数量
commentStatusboolean是否评价
priceNumber商品原价(单)
payPriceNumber应付金额(总),单位:分
afterSaleIdNumber售后编号
afterSaleStatusNumber售后状态
properties数组商品属性值的明细

创建订单项的评价

说明

订单必须是已完成(待评价)状态。

  • URL/app-api/trade/order/item/createOrderItemComment
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型是否必传约束
anonymousboolean是否匿名true-匿名 false-不匿名
orderItemIdNumber订单项(商品项sku)数据编号
descriptionScoresNumber描述星级 1-5 分只能整数
benefitScoresNumber服务星级 1-5 分只能整数
contentString评价内容
picUrls数组图片,最多9张

请求示例

{
"anonymous": true,
"orderItemId": 230,
"descriptionScores": 5,
"benefitScores": 5,
"content": "评论内容",
"picUrls": ["url", "url2"]
}

响应示例

{ "code": 0, "data": 15, "msg": "成功" }

响应说明

参数类型说明
msgString返回提示
dataNumber评论数据编号

获取商品的评价列表+我的评价

  • URL/app-api/product/comment/getCommentPage
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型约束
spuIdLong商品spuId非必传
userIdLong用户数据编号,获取我的评价时,必传
typeLong类型,默认传0(0全部、1好评、2中评、3差评)必传
pageNoLong页码
pageSizeLong页大小,默认10,传-1不分页

请求示例

{ "spuId": 691, "type": 0, "pageNo": 1, "pageSize": 10 }

响应示例

{
"code": 0,
"data": {
"list": [
{
"userId": 305,
"userNickname": "匿名用户",
"userAvatar": "https://oss.kudi.wiki/onps-test/logo.png",
"id": 15,
"anonymous": true,
"orderId": 230,
"orderItemId": 230,
"replyStatus": true,
"replyUserId": 1,
"replyContent": "谢谢好评,商品就是不错!",
"replyTime": 1733139122000,
"additionalContent": null,
"additionalPicUrls": null,
"additionalTime": null,
"createTime": 1733138177000,
"spuId": 640,
"spuName": "商城测试商品",
"skuId": 33,
"skuPicUrl": "https://jingqihui.oss-cn-beijing.aliyuncs.com/logo.jpg",
"skuProperties": [
{ "propertyId": 1, "propertyName": "颜色", "valueId": 6, "valueName": "蓝色" },
{ "propertyId": 16, "propertyName": "重量", "valueId": 30, "valueName": "大" }
],
"scores": 5,
"descriptionScores": 5,
"benefitScores": 5,
"content": "评论内容",
"picUrls": ["url", "url2"]
}
],
"total": 1
},
"msg": "成功"
}

响应说明

参数类型说明
idLong评论数据编号
userIdLong用户编号
userNicknameString昵称
userAvatarString头像
anonymousBoolean是否匿名
orderIdLong交易订单编号
orderItemIdLong交易订单项编号
replyStatusBoolean商家是否回复
replyUserIdLong回复的用户编号
replyContentString回复内容
replyTimeLong回复时间
additionalContentString追加评论内容
additionalPicUrls数组追加评论图片
additionalTimeLong追加评论时间
spuIdLong商品spuId
spuNameString商品名称
skuIdLong商品skuId
skuPicUrlString商品sku图片
skuProperties对象sku属性
scoresLong评分
descriptionScoresLong商品描述评分
benefitScoresLong服务评分
contentString评论内容
picUrlsArray评论图片
createTimeLong评论时间

评价不可见

  • URL/app-api/product/comment/update-visible
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型约束
idLong评论数据编号
visibleLong评论是否可见true:可见 false:不可见

请求示例

{ "id": 15, "visible": true }

响应示例

{ "code": 0, "data": true, "msg": "成功" }

响应说明

参数类型说明
dataBooleantrue 成功,false 失败

获取物流公司列表

  • URL/app-api/trade/delivery/express/getDeliveryExpressList
  • MethodGET
  • 需要鉴权:是

请求参数

无参数。

请求示例

GET /app-api/trade/delivery/express/getDeliveryExpressList

响应示例

{
"code": 0,
"data": [
{ "id": 1, "code": "STO", "name": "申通快递", "logo": "http://...", "sort": 1, "status": 0 },
{ "id": 2, "code": "SF", "name": "顺丰速运", "logo": "http://...", "sort": 2, "status": 0 },
{ "id": 3, "code": "ZTO", "name": "中通快递", "logo": "http://...", "sort": 3, "status": 0 },
{ "id": 4, "code": "YD", "name": "韵达快递", "logo": "http://...", "sort": 4, "status": 0 }
],
"msg": "成功"
}

响应说明

参数类型说明
idLong数据编号
codeString快递公司编号
nameString快递公司名称
logoStringlogo图片地址
sortLong排序
statusLong状态0-正常 1-禁用

获取交易配置

  • URL/app-api/trade/config/get
  • MethodGET
  • 需要鉴权:否

请求参数

无请求参数。

请求示例

GET /app-api/trade/config/get

响应示例

{
"code": 0,
"data": {
"afterSaleRefundReasons": ["不喜欢/不想要", "拍错/多拍", "商品与描述不符"],
"afterSaleReturnReasons": ["质量问题", "发错货", "物流损坏"]
},
"msg": "成功"
}

响应说明

参数类型说明
afterSaleRefundReasonsString[]售后退款原因列表
afterSaleReturnReasonsString[]售后退货原因列表