最新更新时间:2020.06.02 版本说明
完结微信支付分订单。用户使用服务完成后,商户可通过此接口完结订单。
特别说明:
• 完结接口调用成功后,微信支付将自动发起免密代扣。 若扣款失败,微信支付将自动再次发起免密代扣(按照一定频次),直到扣成功为止。
• API参数涉及时间参数时需注意,可能由于商户时钟系统和微信支付分时钟系统,取当前时间存在一定误差。可能导致在API调用出现失败情况。因此商户在传入时间参数时需预留一定误差时间
适用对象:直连商户
请求URL:https://api.mch.weixin.qq.com/v3/payscore/serviceorder/{out_order_no}/complete
请求方式:POST
前置条件:服务订单状态为“进行中”且订单状态说明需为[USER_CONFIRM:用户确认]
path 指该参数为路径参数
query 指该参数需在请求URL传参
body 指该参数需在请求JSON传参
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
商户服务订单号 | out_order_no | string[1,32] | 是 | path 商户系统内部服务订单号(不是交易单号),与创建订单时一致 示例值:1234323JKHDFE1243252 |
应用ID | appid | string[1,32] | 是 | body 微信公众平台分配的与传入的商户号建立了支付绑定关系的appid,可在公众平台查看绑定关系,此参数需在本系统先进行配置。 示例值:wxd678efh567hg6787 |
服务ID | service_id | string[1,32] | 是 | body 服务订单的主键,唯一定义此资源的标识 示例值:500001 |
+后付费项目 | post_payments | array | 是 | body 后付费项目列表,最多包含100条付费项目 |
+后付费商户优惠 | post_discounts | array | 否 | body 后付费商户优惠列表,最多包含30条商户优惠 如果传入,用户侧则显示此参数 |
总金额 | total_amount | int64 | 是 | body 1、金额:数字,必须≥0(单位:分),只能为整数,详见支付金额。 2、总金额 =(完结付费项目1…+完结付费项目n)-(完结商户优惠项目1…+完结商户优惠项目n) 3、总金额上限   1)【评估不通过:交押金】模式:总金额≤创单时填写的“订单风险金额”   2)【评估不通过:拒绝】模式:总金额≤“每个服务ID的风险金额上限” 示例值:50000 |
+服务时间段 | time_range | object | 条件选填 | body 服务时间范围,创建订单未填写服务结束时间,则完结的时候,服务结束时间必填 如果传入,用户侧则显示此参数。 |
+服务位置 | location | object | 否 | body 服务位置 如果传入,用户侧则显示此参数。 |
微信支付服务分账标记 | profit_sharing | bool | 否 | body 完结订单分账接口标记。分账开通流程,详见 false:不分账,默认:false true:分账。 示例值:false |
订单优惠标记 | goods_tag | string(32) | 否 | body 订单优惠标记,代金券或立减金优惠的参数,说明详见代金券或立减金优惠 示例值:goods_tag |
{
"appid": "wxd678efh567hg6787",
"service_id": "500001",
"post_payments": [
{
"name": "就餐费用服务费",
"amount": 4000,
"description": "就餐人均100元服务费:100/小时",
"count": 1
}
],
"post_discounts":[
{
"name": "满20减1元",
"description": "不与其他优惠叠加",
"amount": 4000
}
],
"total_amount": 3900,
"time_range": {
"start_time": "20091225091010",
"end_time": "20091225121010"
},
"location": {
"end_location": "嗨客时尚主题展餐厅"
},
"profit_sharing": false
}
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
应用ID | appid | string[1,32] | 是 | 调用接口提交的公众账号ID 示例值:wxd678efh567hg6787 |
商户号 | mchid | string[1,32] | 是 | 调用接口提交的商户号 示例值:1230000109 |
商户服务订单号 | out_order_no | string[1,32] | 是 | 调用接口提交的商户服务订单号 示例值:1234323JKHDFE1243252 |
服务ID | service_id | string[1,32] | 是 | 调用该接口提交的服务ID 示例值:500001 |
服务信息 | service_introduction | string[1,20] | 是 | 服务信息,用于介绍本订单所提供的服务 示例值:某某酒店 |
服务订单状态 | state | string[1,32] | 是 | 表示当前单据状态。 1、CREATED:商户已创建服务订单 2、DOING:服务订单进行中 3、DONE:服务订单完成 4、REVOKED:商户取消服务订单 5、EXPIRED:服务订单已失效,"商户已创建服务订单"状态超过30天未变动,则订单失效 示例值:CREATED |
订单状态说明 | state_description | string[1,32] | 否 | 对服务订单"进行中"状态的附加说明 USER_CONFIRM:用户确认 MCH_COMPLETE:商户完结 示例值:MCH_COMPLETE |
商户收款总金额 | total_amount | int64 | 是 | 总金额,大于等于0的数字,单位为分,只能为整数,详见支付金额。 此参数需满足:总金额=后付费项目金额之和-后付费商户优惠项目金额之和,且小于等于订单风险金额。取消订单时,该字段必须为0。 示例值:40000 |
+后付费项目 | post_payments | array | 是 | 后付费项目列表,最多包含100条付费项目 |
+后付费商户优惠 | post_discounts | array | 否 | 后付费商户优惠,最多包含30条付费项目; 如果传入,用户侧则显示此参数 |
+订单风险金 | risk_fund | object | 是 | 订单风险金信息 |
+服务时间段 | time_range | object | 否 | 服务时间范围; 如果传入,用户侧则显示此参数 |
+服务位置 | location | object | 否 | 服务使用信息; 如果传入,用户侧则显示此参数 |
微信支付服务订单号 | order_id | string[1,64] | 是 | 微信支付服务订单号,每个微信支付服务订单号与商户号下对应的商户服务订单号一一对应 示例值:15646546545165651651 |
是否需要收款 | need_collection | bool | 否 | true:微信支付分代收款 false:无需微信支付分代收款 示例值:true |
{
"appid": "wxd678efh567hg6787",
"mchid": "1230000109",
"out_order_no": "1234323JKHDFE1243252",
"service_id": "500001",
"service_introduction": "某某酒店",
"state": "DOING",
"state_description": "",
"total_amount": 3900,
"post_payments": [
{
"name": "就餐费用服务费",
"amount": 1,
"description": "就餐人均100元服务费:100/小时",
"count": 1
}
],
"post_discounts": [
{
"name": "满20减1元",
"description": "不与其他优惠叠加",
"amount": 1
}
],
"risk_fund": {
"name": "ESTIMATE_ORDER_COST",
"amount": 4000,
"description": "就餐的预估费用"
},
"time_range": {
"start_time": "20091225091010",
"end_time": "20091225121010"
},
"location": {
"start_location": "嗨客时尚主题展餐厅",
"end_location": "嗨客时尚主题展餐厅"
},
"order_id": "15646546545165651651",
"need_collection": true
}
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
500 | SYSTEM_ERROR | 系统错误 | 5开头的状态码都为系统问题,请使用相同参数稍后重新调用 |
400 | PARAM_ERROR | 参数错误 | 根据错误提示,传入正确参数 |
403 | NO_AUTH | 商户信息不合法 | 登录商户平台核对,传入正确信息 |
429 | FREQUENCY_LIMITED | 频率超限 | 请求量不要超过接口调用频率限制 |
400 | INVALID_REQUEST | 请求参数符合参数格式,但不符合业务规则 | 请确认相同单号是否使用了不同的参数 |
404 | ORDER_NOT_EXIST | 订单不存在 | 确认入参,传入正确单据 |
400 | INVALID_ORDER_STATE | 单据状态错误 | 确认操作是否符合流程 |
400 | ORDER_CANCELED | 单据已取消 | 当前状态无需操作 |
400 | ORDER_DONE | 订单已完成 | 当前状态无需操作 |