跳到主要内容

支付

获取支付单详情

进入收银台时调用,获取支付单详情信息。

  • URL/app-api/pay/order/get
  • MethodGET
  • 需要鉴权:是

请求参数

参数类型约束说明
idLong必传支付单编号
syncBoolean-是否同步订单状态,默认 true

请求示例

GET /app-api/pay/order/get?id=472&sync=true

响应示例

{
"code": 0,
"data": {
"appId": 1,
"channelId": null,
"channelCode": null,
"merchantOrderId": "383",
"subject": "商品标题",
"body": "商品描述",
"notifyUrl": "http://127.0.0.1:48081/app-api/trade/order/update-paid",
"price": 1801,
"channelFeeRate": 0,
"channelFeePrice": 0,
"status": 0,
"userIp": "0:0:0:0:0:0:0:1",
"expireTime": 1743673502000,
"successTime": 1743587090000,
"extensionId": null,
"no": null,
"refundPrice": 0,
"channelUserId": null,
"channelOrderNo": null,
"walletCombinationPaymentPrice": 0,
"walletCombinationRefundPrice": 0,
"id": 383,
"createTime": 1743587102000,
"isVirtualSpuBoolean": true
},
"msg": "成功"
}

响应说明

参数类型说明
idLong支付订单编号
appIdLongAPPID,对应 APP 应用
channelIdLong渠道编号
channelCodeString渠道编码
merchantOrderIdString商户侧订单编号
subjectString商品标题
bodyString商品描述
notifyUrlString异步通知地址
priceLong支付金额,单位:分
channelFeeRateDouble渠道手续费,单位:百分比
channelFeePriceLong渠道手续金额,单位:分
statusLong支付状态
userIpString用户 IP
expireTimeLong订单失效时间
successTimeLong订单支付成功时间
extensionIdLong支付成功的订单拓展单编号
noString支付订单号
refundPriceLong退款金额,单位:分
channelUserIdLong渠道用户编号
channelOrderNoString渠道订单号
createTimeLong创建时间
walletCombinationPaymentPriceLong钱包支付金额,默认 0。组合支付时大于 0,此时订单总支付金额为 price + walletCombinationPaymentPrice
walletCombinationRefundPriceLong组合支付退款时,钱包退回的金额
isVirtualSpuBooleanBooleantrue 含虚拟商品,不能使用钱包支付;false 不含虚拟商品,可以钱包支付
说明

部分字段暂时用不到,可以忽略。


获取支付方式列表

进入收银台时调用,获取可用的支付方式列表。

  • URL/app-api/pay/channel/get-enable-code-list
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型约束说明
appIdLong必传APPID 编号,固定值:1-商城应用,8-钱包应用

请求示例

{
"appId": 1
}

响应示例

{
"code": 0,
"data": [
"wallet",
"wx_lite",
"wx_app",
"alipay_app"
],
"msg": "成功"
}

响应说明

参数类型说明
dataArray支付方式字符串数组

支付方式枚举:

说明
wallet钱包支付
wx_lite微信小程序支付
wx_app微信 APP 支付
alipay_app支付宝 APP 支付

获取用户钱包信息

进入收银台时调用,获取用户钱包余额信息。

  • URL/app-api/pay/wallet/get
  • MethodGET
  • 需要鉴权:是

请求参数

无请求参数。

请求示例

GET /app-api/pay/wallet/get

响应示例

{
"code": 0,
"data": {
"balance": 0,
"totalExpense": 0,
"totalRecharge": 0
},
"msg": "成功"
}

响应说明

参数类型说明
balanceLong余额,单位:分
totalExpenseLong累计支出,单位:分
totalRechargeLong累计充值,单位:分

提交支付单(唤起支付方式)

提交支付单,唤起对应的支付方式完成支付。

  • URL/app-api/pay/order/submit
  • MethodPOST
  • 需要鉴权:是

请求参数

参数类型约束说明
idNumber必传交易订单编号
userIdNumber必传用户 ID
channelCodeString必传支付方式,见下方枚举
channelExtrasMap-额外信息,如微信支付需要传 openid
displayModeString必传展示模式,见下方说明
returnUrlURL必传支付回调地址

channelCode 枚举:

说明
wx_lite微信小程序支付
wx_app微信 APP 支付
wx_native微信 PC 支付
alipay_app支付宝 APP 支付
alipay_pc支付宝 PC 支付
wallet钱包支付

displayMode 枚举:

说明
urlRedirect 跳转链接方式
iframeIFrame 内嵌链接方式
formHTML 表单提交
qr_code二维码文字内容
qr_code_url二维码图片链接
bar_code条形码
app应用自定义处理(Android/iOS/微信小程序/微信公众号等)

钱包余额组合支付

组合支付条件
  1. 钱包余额为 0 时,不能选择组合支付(也不能选择钱包支付)。
  2. 钱包余额大于等于订单金额时,只能单独钱包支付或其他支付方式。
  3. 仅当 0 < balance < price 时,才能使用组合支付。

组合支付时,channelExtras 必传 wallet_combination_payment_price 字段:

不使用组合支付时:

{
"id": 523,
"channelCode": "alipay_app",
"displayMode": "APP",
"channelExtras": {
"wallet_combination_payment_price": "0"
},
"returnUrl": "https://test.com/app-api/pay/order/submit"
}

使用组合支付时:

{
"id": 523,
"channelCode": "alipay_app",
"displayMode": "APP",
"channelExtras": {
"wallet_combination_payment_price": "100"
},
"returnUrl": "https://test.com/app-api/pay/order/submit"
}
说明

wallet_combination_payment_price 的值为钱包支付的金额,单位为分。

请求示例

普通支付:

{
"id": 1024,
"channelCode": "wx_pub",
"channelExtras": {},
"displayMode": "url",
"returnUrl": ""
}

小程序支付:

{
"id": 498,
"channelCode": "wx_lite",
"displayMode": "APP",
"channelExtras": {
"openid": "oqZru667JhUy0D3kuRz9M1hT4yAk"
}
}

支付宝 PC 支付:

{
"id": 586,
"channelCode": "alipay_pc",
"displayMode": "URL",
"channelExtras": {
"wallet_combination_payment_price": "0"
},
"returnUrl": "https://example.com/callback"
}

响应示例

第三方支付(支付宝等):

{
"code": 0,
"data": {
"status": 0,
"displayMode": "app",
"displayContent": "预支付参数字符串"
},
"msg": "成功"
}

钱包支付余额不足时:

{
"code": 1007002004,
"data": null,
"msg": "发起支付报错,错误码:1007007001,错误提示:钱包余额不足"
}

钱包支付直接成功时(status=10):

{
"code": 0,
"data": {
"status": 10,
"displayMode": null,
"displayContent": null
},
"msg": "成功"
}

响应说明

参数类型说明
codeNumber0 成功,其他失败
statusNumber支付状态,0-待支付,10-支付成功,20-已退款,30-支付关闭
displayModeString展示模式,同请求参数枚举
displayContentString展示内容,包含预支付 ID 等参数
说明

channelCodewallet 且钱包余额充足时,直接返回 status=10(支付成功),无需唤起第三方支付。