完结支付分订单
更新时间:2025.04.22||
服务完成后,商户调用本接口,通知微信支付服务已结束(collection.state参数变为USER_PAYING状态,即用户待支付状态)。
| 注意: 1、在接口参数中,商户需要通过post_payments字段,上传本笔订单实际的付费项目明细,不同的场景有不同的传值要求,详见:post_payments(后付费项目)字段传参说明。 2、完结后微信支付不会自动发起扣款,需要登记扣款单并调用清算机构(银联/网联)委托代扣接口进行扣款,中间不会自动失效。商户可参考开发指引做业务逻辑处理。 |
|
接口说明
请求方式:【POST】/v3/payscore/acquiringbank/serviceorder/{out_order_no}/complete
请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点
【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看
请求参数
Header HTTP头参数
Authorization 必填 string
请参考签名认证生成认证信息
Accept 必填 string
请设置为application/json
Content-Type 必填 string
请设置为application/json
path 路径参数
out_order_no 必填 string(64)
【商户服务订单号】 商户系统内部服务订单号,要求32个字符内,只能是数字、大小写字母_-|* 且在同一个商户号下唯一。
body 包体参数
service_id 必填 string(32)
【服务ID】 商户支付分服务的唯一标识,由32位数字组成。支付分产品权限审核通过后,微信支付运营会向商户提供该ID。
sub_mchid 必填 string(32)
【子商户号】从业机构下的子商户商户号,从业机构或者渠道商使用开户意愿确认接口生成。
channel_id 必填 string(32)
【渠道商商户号】 从业机构下的渠道商商户号,需要从业机构登录服务商平台操作入驻,具体参考渠道商入驻流程方法。
post_payments 必填 array[Payment]
【后付费项目】 用于展示订单后付费项目明细,最多100条,商户需要按照所属行业规程传参,详见post_payments(后付费项目)字段传参说明。
post_discounts 选填 array[ServiceOrderCoupon]
【商户优惠】 用于展示订单优惠项目明细,最多30条,完结订单时传的收款总金额需满足计算条件(收款总金额=后付费项目amount和-优惠项目amount和)
 | 属性 |
| name 选填 string(20) 【优惠名称】 用于描述优惠项目,不超过20个字符,同一单多个优惠项目名称不可重复。
description 选填 string(30) 【优惠说明】 用于描述优惠项目使用条件,不超过30个字符。
amount 选填 integer 【优惠金额】 整型,单位为分,用于描述优惠项目金额。
count 选填 integer 【优惠数量】 整型,数量范围为[1,100],用于描述优惠项目使用数量,例如用户使用了两张同一活动优惠券,则count填2。 |
total_amount 必填 integer
【总金额】 订单最终收款总金额,整型,单位为分,商户调用完结订单接口和修改订单金额接口传入,受服务ID风险金额上限影响,服务ID风险金额上限具体请与BD确认。
total_amount<=服务ID风险金额上限。
需满足计算条件:total_amount = 后付费项目金额(post_payments.amount总和) - 优惠项目金额(post_discounts.amount总和),例如商户后付费项目金额总和为10元,优惠项目金额总和为2元,则订单收款总金额为8元。
time_range 选填 object
【服务时间段】 用于描述订单的服务开始和结束时间。
 | 属性 |
| start_time 选填 string(14) 【服务开始时间】 1、商户提供服务的开始时间。例如,用户今天下单,商户明天提供服务,这里的时间指的是明天。 2、支持格式:"yyyyMMddHHmmss"和"yyyyMMdd"。 传入 20091225091010 表示 2009 年 12 月 25 日 9 点 10 分 10 秒。 传入 20091225 表示 2009 年 12 月 25 日 0 点 0 分 0 秒。 3、微信支付会根据传入时间的精度进行校验: 如果是 yyyyMMdd 格式,校验精确到日:start_time 必须晚于或等于商户调用创建订单接口的时间。 如果是 yyyyMMddHHmmss 格式,校验精确到秒:start_time 必须晚于调用创建订单接口的时间(考虑系统时差,建议预留一定误差)。
end_time 选填 string(14) 【服务结束时间】 1、商户提供服务的结束时间,若创单传入了该字段且和实际服务结束时间一致(无需修改)则该参数可以不填。例如,商户明天提供服务,3天后结束服务,这里的时间指的是3天后的时间。 2、支持格式:"yyyyMMddHHmmss"、"yyyyMMdd" 和 。 传入 20091225091010 表示 2009 年 12 月 25 日 9 点 10 分 10 秒。 传入 20091225 表示 2009 年 12 月 25 日 0 点 0 分 0 秒。 3、微信支付会根据传入时间的精度进行校验: 如果是 yyyyMMdd 格式,校验精确到日:end_time 必须晚于或等于 start_time,end_time 必须早于或等于商户调用完结接口当前时间。 如果是 yyyyMMddHHmmss 格式,校验精确到秒:end_time 必须晚于 start_time,且end_time必须早于商户调用完结接口当前时间。 4、end_time必须和start_time时间格式一致,如果start_time使用OnAccept格式则end_time必须使用yyyyMMddHHmmss格式。
start_time_remark 选填 string(20) 【服务开始时间备注】 当有传入服务开始时间时,可添加备注说明,不超过20个字符。
end_time_remark 选填 string(20) 【服务结束时间备注】 当有传入服务结束时间时,可添加备注说明,不超过20个字符。 |
location 选填 object
【服务位置】 用于描述用户使用服务的地理位置
 | 属性 |
| start_location 选填 string(20) 【服务开始地点】 用户开始使用服务的地点,不超过20个字符。
end_location 选填 string(20) 【服务结束地点】 用户结束使用服务的地点,不超过20个字符。 |
complete_time 选填 string
【完结服务时间】 支付分订单完结时间,使用ISO 8601所定义的格式,需满足[t-24h, t+60s]区间,t为商户调用完结接口当前时间。
格式示例:
YYYY-MM-DDTHH:mm:ss.SSSZ
YYYY-MM-DDTHH:mm:ssZ
YYYY-MM-DDTHH:mm:ss.SSS+08:00
YYYY-MM-DDTHH:mm:ss+08:00
请求示例
POST

1代码解释代码改写curl -X POST \
2 https://api.mch.weixin.qq.com/v3/payscore/acquiringbank/serviceorder/1234323JKHDFE1243252/complete \
3 -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4 -H "Accept: application/json" \
5 -H "Content-Type: application/json" \
6 -d '{
7 "service_id" : "2002000000000558128851361561536",
8 "sub_mchid" : "1900000109",
9 "channel_id" : "1230000109",
10 "post_payments" : [
11 {
12 "name" : "就餐费用",
13 "amount" : 40000,
14 "description" : "就餐人均100元",
15 "count" : 4
16 }
17 ],
18 "post_discounts" : [
19 {
20 "name" : "满20减1元",
21 "description" : "不与其他优惠叠加",
22 "amount" : 100,
23 "count" : 2
24 }
25 ],
26 "total_amount" : 50000,
27 "time_range" : {
28 "start_time" : "20091225091010",
29 "end_time" : "20091225121010",
30 "start_time_remark" : "备注1",
31 "end_time_remark" : "备注2"
32 },
33 "location" : {
34 "start_location" : "嗨客时尚主题展餐厅",
35 "end_location" : "嗨客时尚主题展餐厅"
36 },
37 "complete_time" : "2019-11-11T16:24:05+08:00"
38 }'应答参数
应答示例
204 No Content

1无应答包体
错误码
公共错误码
|
400 | PARAM_ERROR | 参数错误 | 请根据错误提示正确传入参数 |
400 | INVALID_REQUEST | HTTP 请求不符合微信支付 APIv3 接口规则 | 请参阅 接口规则 |
401 | SIGN_ERROR | 验证不通过 | 请参阅 签名常见问题 |
500 | SYSTEM_ERROR | 系统异常,请稍后重试 | 请稍后重试 |
业务错误码
|
400 | INVALID_ORDER_STATE | 单据状态错误 | 确认操作是否符合流程 |
400 | INVALID_REQUEST | 请求参数符合参数格式,但不符合业务规则 | 请确认相同单号是否使用了不同的参数 |
400 | ORDER_CANCELED | 单据已取消 | 当前状态无需操作 |
400 | ORDER_DONE | 订单已完成 | 当前状态无需操作 |
403 | NO_AUTH | 商户信息不合法 | 登录服务商平台核对,传入正确信息 |
404 | ORDER_NOT_EXIST | 订单不存在 | 确认入参,传入正确单据 |
429 | FREQUENCY_LIMITED | 频率超限 | 请求量不要超过接口调用频率限制 |
500 | SYSTEM_ERROR | 系统错误 | 5开头的状态码都为系统问题,请使用相同参数稍后重新调用 |