完结支付分订单

更新时间:2024.06.18

服务完成后,商户调用本接口,通知微信支付服务已结束(collection.state参数变为USER_PAYING状态,即用户待支付状态)。

注意:

1、在接口参数中,商户需要通过post_payments字段,上传本笔订单实际的付费项目明细,不同的场景有不同的传值要求,详见:post_payments(后付费项目)字段传参说明

2、完结后微信支付会按照一定频率自动发起扣款,直到扣款成功,中间不会自动失效。商户可参考开发指引做业务逻辑处理。

# 接口说明

支持商户:
【普通商户】
请求方式:
【POST】/v3/payscore/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个字符内,只能是数字、大小写字母_-|* 且在同一个商户号下唯一。需要开发者特别注意,该参数不可用于申请退款接口中的 out_trade_no 参数。
    Body 包体参数
  • appid 必填 string(32)
    【公众账号ID】 是微信开放平台和微信公众平台为开发者的应用程序(APP、小程序、公众号)提供的一个唯一标识。 开发者需要先在微信开放平台或微信公众平台中申请ID,然后在商户平台中绑定,详见直连商户与AppID账号关联管理。完结订单和取消订单需要和创单传入的appid保持一致。
  • service_id 必填 string(32)
    【服务订单号】 商户支付分服务的唯一标识,由32位数字组成。支付分产品权限审核通过后,微信支付运营会向商户提供该ID。
  • post_payments 必填 array[Payment]
    【后付费项目】 用于展示订单后付费项目明细,商户需要按照所属行业规程传参,详见post_payments(后付费项目)字段传参说明
    • 属性
  • post_discounts 选填 array[ServiceOrderCoupon]
    【商户优惠】 用于展示订单优惠项目明细,最多30条,完结订单时传的收款总金额需满足计算条件(收款总金额=后付费项目amount和-优惠项目amount和)
    • 属性
  • total_amount 必填 integer
    【总金额】 订单最终收款总金额,整型,单位为分,商户调用完结订单接口和修改订单金额接口传入,受服务ID风险金额上限影响,服务ID风险金额上限具体请与BD确认。
    先免模式:total_amount<=创单risk_fund.amount(押金金额)<=服务ID风险金额上限。
    先享模式:total_amount<=服务ID风险金额上限。
    需满足计算条件:total_amount = 后付费项目金额(post_payments.amount总和) - 优惠项目金额(post_discounts.amount总和),例如商户后付费项目金额总和为10元,优惠项目金额总和为2元,则订单收款总金额为8元。
  • time_range 选填 object
    【实际服务时间段】 用于描述订单的服务开始和结束时间。
    • 属性
  • location 选填 object
    【实际服务位置】 服务使用的开始位置和结束位置
    • 属性
  • profit_sharing 选填 boolean
    【微信支付服务分账标记】 支付分订单的分账标识,完结订单时传入true表示需要进行分账。订单收款成功后,资金将被冻结。商户可请求分账,将订单收款资金分配给其他商户或用户。调用完结分账接口后,剩余资金将解冻;若未进行分账且距离支付完成时间超过30天,资金也会自动解冻。
    true:需分账
    false:不需分账
    注:不传默认false,不需分账。
  • goods_tag 选填 string(32)
    【订单优惠标记】 代金券在创建时可以配置多个订单优惠标记,标记的内容由创券商户自定义设置。
    如果代金券有配置订单优惠标记,则必须在该参数传任意一个配置的订单优惠标记才能使用券。
    如果代金券没有配置订单优惠标记,则可以不传该参数。

请求示例

POST

# 应答参数

    200OK
  • appid 必填 string(32)
    【公众账号ID】 是微信开放平台和微信公众平台为开发者的应用程序(APP、小程序、公众号)提供的一个唯一标识。 开发者需要先在微信开放平台或微信公众平台中申请ID,然后在商户平台中绑定,详见直连商户与AppID账号关联管理。完结订单和取消订单需要和创单传入的appid保持一致。
  • mchid 必填 string(32)
    【商户号】 调用支付分创单接口提交的商户号,商户号需开通支付分产品权限,且与appid有绑定关系,详见直连商户与AppID账号关联管理
  • out_order_no 必填 string(32)
    【商户服务订单号】 商户系统内部服务订单号,商户在创建支付分接口中填入的out_order_no参数,调用支付分查单接口时out_order_no字段和query_id字段必填一个(不允许都填写或都不填写)。
  • service_id 必填 string(32)
    【服务ID】 商户支付分服务的唯一标识,由32位数字组成。支付分产品权限审核通过后,微信支付运营会向商户提供该ID。
  • service_introduction 必填 string(20)
    【服务信息】 用于介绍本订单所提供的服务 ,长度不能超过20个字符(汉字、数字、字母、特殊符号都按照1个字符计算)。
  • state 必填 string(32)
    【服务订单状态】 表示支付分订单状态
    CREATED:商户已创建服务订单
    DOING:服务订单进行中
    DONE:服务订单完成(终态)
    REVOKED:商户取消服务订单(终态)
    EXPIRED:服务订单已失效,"商户已创建服务订单"状态超过30天未变动,则订单失效(终态)
    该状态需结合collection.state字段和state_description字段一起判断,具体可参考支付分订单状态流转图
  • state_description 选填 string
    【订单状态说明】 此参数用于对服务订单处于DOING状态时的附加说明,非DOIING状态将不会返回该参数。具体状态如下:
    USER_CONFIRM:用户已确认状态,表示用户成功确认订单后所处状态。
    MCH_COMPLETE:商户已完结状态,指商户调用完结接口成功后至扣款成功前的状态。
    该状态需结合collection.state字段和state字段一起判断,具体可参考支付分订单状态流转图
  • total_amount 必填 integer
    【商户收款总金额】 订单最终收款总金额,整型,单位为分,商户调用完结订单接口和修改订单金额接口传入,受服务ID风险金额上限影响,服务ID风险金额上限具体请与BD确认。
    先免模式:total_amount<=创单risk_fund.amount(押金金额)<=服务ID风险金额上限。
    先享模式:total_amount<=服务ID风险金额上限。
    需满足计算条件:total_amount = 后付费项目金额(post_payments.amount总和) - 优惠项目金额(post_discounts.amount总和),例如商户后付费项目金额总和为10元,优惠项目金额总和为2元,则订单收款总金额为8元。
  • post_payments 选填 array[object]
    【后付费项目】 用于展示订单后付费项目明细,商户需要按照所属行业规程传参,详见post_payments(后付费项目)字段传参说明
    • 属性
  • post_discounts 选填 array[object]
    【后付费商户优惠】 用于展示订单优惠项目明细,最多30条,完结订单时传的收款总金额需满足计算条件(收款总金额=后付费项目amount和-优惠项目amount和)
    • 属性
  • risk_fund 选填 object
    【服务风险金】 本笔订单的风险金额描述
    • 属性
  • time_range 选填 object
    【服务时间段】 用于描述订单的服务开始和结束时间。
    • 属性
  • location 选填 object
    【服务位置】 服务使用的开始位置和结束位置
    • 属性
  • order_id 选填 string(64)
    【微信支付服务订单号】 支付分订单在微信侧的唯一标识,31位数字,开头由1000000000+年月日组成。
  • need_collection 选填 boolean
    【是否需要收款】 订单是否需要收款,固定返回true需收款。

应答示例

200 OK

# 错误码

# 公共错误码

状态码 错误码 描述 解决方案
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开头的状态码都为系统问题,请使用相同参数稍后重新调用
反馈
咨询
目录