最新更新时间:2020.04.23 版本说明
该接口适用于无需微信支付分做订单风控判断的业务场景,在服务完成后,通过该接口对用户进行免密代扣。
• 限制条件:【免确认订单模式】,用户已授权状态下,可调用该接口。
特别提醒:创单结单合并接口暂未对外开放,如有需要请咨询对接的微信支付运营人员,申请开通调用权限。
适用对象:直连商户
请求URL:https://api.mch.weixin.qq.com/payscore/serviceorder/direct-complete
请求方式:POST
path 指该参数为路径参数
query 指该参数需在请求URL传参
body 指该参数需在请求JSON传参
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
商户服务订单号 | out_order_no | string[1,32] | 是 | body 商户系统内部服务订单号(不是交易单号),要求此参数只能由数字、大小写字母_-|*组成,且在同一个商户号下唯一。详见[商户订单号]。 示例值:1234323JKHDFE1243252 |
应用ID | appid | string[1,32] | 是 | body 微信公众平台分配的与传入的商户号建立了支付绑定关系的appid,可在公众平台查看绑定关系,此参数需在本系统先进行配置。 示例值:wxd678efh567hg6787 |
用户标识 | openid | string[1,128] | 是 | body 微信用户在商户对应appid下的唯一标识。 示例值:oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
服务ID | service_id | string[1,32] | 是 | body 该服务ID有本接口对应产品的权限。 示例值:500001 |
服务信息 | service_introduction | string[1,20] | 是 | body 服务信息,用于介绍本订单所提供的服务 ,当参数长度超过20个字符时,报错处理。 示例值:某某酒店 |
+付费项目 | post_payments | array | 是 | body 付费项目列表,最多包含100条付费项目。 |
+商户优惠 | post_discounts | array | 否 | body 付费商户优惠列表,最多包含30条商户优惠。 |
+服务时间段 | time_range | object | 是 | body 服务时间范围 |
+服务位置 | location | object | 否 | body 服务位置信息 如果传入,用户侧则显示此参数。 |
总金额 | total_amount | uint64 | 是 | 1、金额:数字,必须≥0(单位:分) 2、总金额 =(完结付费项目1…+完结付费项目n)-(完结商户优惠项目1…+完结商户优惠项目n) 3、总金额上限:总金额≤“服务风险金额” 示例值:50000 |
微信支付服务分账标记 | profit_sharing | bool | 否 | 分账标记,默认为false,枚举值: false:不分账 true:分账 示例值:false |
订单优惠标记 | goods_tag | string[1,32] | 否 | 订单优惠标记,详见《代金券或立减金优惠》参数。 示例值:goods_tag1 |
商户数据包 | attach | string[1,256] | 否 | body 商户数据包可存放本订单所需信息,需要先urlencode后传入。
当商户数据包总长度超出256字符时,报错处理。 示例值:Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald |
商户回调地址 | notify_url | string[1,255] | 否 | body 商户接收扣款成功回调通知的地址,服务需要收款时此参数必填;服务无需收款时此参数不填。 示例值:https://api.test.com |
{
"post_payments" : [ {
"amount" : 40000,
"name" : "就餐费用服务费",
"count" : 4,
"description" : "就餐人均100元服务费:100/小时"
}, {
"amount" : 2000,
"name" : "就餐费用服务费",
"count" : 1,
"description" : "就餐人均100元服务费:100/小时"
} ],
"service_introduction" : "某某酒店",
"openid" : "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
"profit_sharing" : false,
"out_order_no" : "1234323JKHDFE1243252",
"notify_url" : "https://api.test.com",
"time_range" : {
"start_time" : "20091225091010",
"end_time_remark" : "备注2",
"end_time" : "20091225121010",
"start_time_remark" : "备注1"
},
"total_amount" : 50000,
"goods_tag" : "goods_tag1",
"service_id" : "500001",
"appid" : "wxd678efh567hg6787",
"location" : {
"start_location" : "嗨客时尚主题展餐厅",
"end_location" : "嗨客时尚主题展餐厅"
},
"attach" : "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald",
"post_discounts" : [ {
"amount" : 100,
"name" : "满20减1元",
"count" : 2,
"description" : "不与其他优惠叠加"
}, {
"amount" : 100,
"name" : "满20减1元",
"count" : 2,
"description" : "不与其他优惠叠加"
} ]
}
参数名 | 变量 | 类型[长度限制] | 必填 | 描述 |
---|---|---|---|---|
应用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 |
微信支付服务订单号 | order_id | string[1,128] | 是 | 微信支付服务订单号,每个微信支付服务订单号与商户号下对应的商户服务订单号一一对应。 示例值:15646546545165651651 |
服务信息 | service_introduction | string[1,20] | 是 | 服务信息,用于介绍本订单所提供的服务。 示例值:某某酒店 |
服务订单状态 | state | string[1,32] | 是 | 表示当前单据状态。 枚举值: |
订单状态说明 | state_description | string [1,32] | 否 | 对服务订单"进行中"状态的附加说明。 1、MCH_COMPLETE:商户完结 示例值:MCH_COMPLETE |
+付费项目 | post_payments | array | 是 | 付费项目列表,最多包含100条付费项目。 |
+付费商户优惠 | post_discounts | array | 否 | 付费商户优惠,最多包含30条付费项目。 如果传入,用户侧则显示此参数。 |
+服务时间段 | time_range | object | 是 | 服务时间范围 |
+服务位置 | location | object | 否 | 服务使用信息。 如果传入,用户侧则显示此参数。 |
商户数据包 | attach | string[1,256] | 否 | 商户数据包,可存放本订单所需信息,需要先urlencode后传入,总长度不大于256字符,超出报错处理。 示例值:Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald |
商户回调地址 | notify_url | string[1,255] | 否 | 商户接收扣款成功回调通知的地址。 示例值:https://api.test.com |
总金额 | total_amount | uint64 | 是 | 1、金额:数字,必须≥0(单位:分) 2、总金额 =(完结付费项目1…+完结付费项目n)-(完结商户优惠项目1…+完结商户优惠项目n) 示例值:50000 |
{
"post_payments" : [ {
"amount" : 40000,
"name" : "就餐费用服务费",
"count" : 4,
"description" : "就餐人均100元服务费:100/小时"
}, {
"amount" : 2000,
"name" : "就餐费用服务费",
"count" : 1,
"description" : "就餐人均100元服务费:100/小时"
} ],
"mchid" : "1230000109",
"service_introduction" : "某某酒店",
"notify_url" : "https://api.test.com",
"state_description" : "MCH_COMPLETE",
"out_order_no" : "1234323JKHDFE1243252",
"time_range" : {
"start_time" : "20091225091010",
"end_time_remark" : "备注2",
"end_time" : "20091225121010",
"start_time_remark" : "备注1"
},
"total_amount" : 50000,
"service_id" : "500001",
"appid" : "wxd678efh567hg6787",
"location" : {
"start_location" : "嗨客时尚主题展餐厅",
"end_location" : "嗨客时尚主题展餐厅"
},
"state" : "DOING",
"attach" : "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald",
"order_id" : "15646546545165651651",
"post_discounts" : [ {
"amount" : 100,
"name" : "满20减1元",
"count" : 2,
"description" : "不与其他优惠叠加"
}, {
"amount" : 100,
"name" : "满20减1元",
"count" : 2,
"description" : "不与其他优惠叠加"
} ]
}
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
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 | 订单已完成 | 当前状态无需操作 |