创单结单合并接口

更新时间:2024.11.06

该接口适用于无需微信支付分做订单风控判断的业务场景,在服务完成后,通过该接口对用户进行免密代扣。

注意:

限制条件:【免确认订单模式】,用户已授权状态下,可调用该接口。

特别提醒:创单结单合并接口暂未对外开放,如有需要请咨询对接的微信支付运营人员,申请开通调用权限。

接口说明

支持商户:【普通商户】

请求方式:【POST】/payscore/serviceorder/direct-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


body 包体参数

out_order_no  必填 string(32)

【商户服务订单号】 商户系统内部服务订单号(不是交易单号),要求32个字符内,只能是数字、大小写字母_-|* 且在同一个商户号下唯一。


appid  必填 string(32)

【应用ID】 微信公众平台分配的与传入的商户号建立了支付绑定关系的appid,可在公众平台查看绑定关系,此参数需在本系统先进行配置。


openid  必填 string(128)

【用户标识】 微信用户在商户对应appid下的唯一标识


service_id  必填 string(32)

【服务ID服务订单号】 该服务ID有本接口对应产品的权限


service_introduction  必填 string(20)

【服务信息】 服务信息,用于介绍本订单所提供的服务 ,当参数长度超过20个字符时,报错处理。


post_payments  必填 array[Payment]

【付费项目】 付费项目列表,最少包含1条、最多包含100条付费项目

属性

name  必填 string(20)

【付费名称】 付费项目名称不能重复,当参数长度超过20个字符时,报错处理。


amount  必填 integer

【付费金额】 1、此付费项目总金额,大于等于0,单位为分等于0时代表不需要扣费。
2、未填写金额的付费项目,默认该付费项目金额为0。


description  必填 string(30)

【付费说明】 描述计费规则,不超过30个字符,超出报错处理。


count  选填 integer

【付费数量】 付费项目的数量,只能为整数,不填时默认1个

特殊规则:数量限制100,不填时默认1。


post_discounts  选填 array[ServiceOrderCoupon]

【商户优惠】 商户优惠列表,最多包含5条商户优惠

属性

name  必填 string(20)

【优惠名称】 1、商户优惠项目名称,不超过20个字符。
2、优惠项目名称不可重复。


description  必填 string(30)

【优惠说明】 1、优惠使用条件说明,不超过30个字符。


amount  必填 integer

【优惠金额】 1、商户优惠项目金额,大于等于0,单位为分。


count  选填 integer

【优惠数量】 优惠的数量,不填时默认为1个。


time_range  必填 object

【服务时间】 服务时间,用于用户侧展示

属性

start_time  必填 string(14)

【服务开始时间】 【用户端展示用途】
用户下单时确认的服务开始时间。
支持两种格式:
“yyyyMMddHHmmss”和“yyyyMMdd”:
• 传入20091225091010表示2009年12月25日9点10分10秒
• 传入20091225默认时间为2009年12月25日0点0分0秒
【商户调用创单结单合并接口时间】>【服务开始时间】


end_time  必填 string(14)

【服务结束时间】 用户端展示用途,支持两种格式:yyyyMMddHHmmss和yyyyMMdd 传入20091225091010表示2009年12月25日9点10分10秒 传入20091225默认认为时间为2009年12月25日23点59分59秒


start_time_remark  选填 string(20)

【服务开始时间备注】 用户端展示用途,支持两种格式:yyyyMMddHHmmss和yyyyMMdd
• 传入20091225091010表示2009年12月25日9点10分10秒。
• 传入20091225默认时间为2009年12月25日
1、【服务结束时间】>【服务开始时间】
2、【服务结束时间】≤【商户调用创单结单合并接口时间】


end_time_remark  选填 string(20)

【服务结束时间备注】 预计服务结束时间备注说明,预计服务结束时间有填时,可填写预计服务结束时间备注,不超过20个字符,超出报错处理。


location  选填 object

【服务位置】 服务位置,用于用户侧展示

属性

start_location  必填 string(50)

【服务开始地点】 开始使用服务的地点. 不超过50个字符,超出报错处理;


end_location  必填 string(50)

【服务结束地点】 1、实际结束使用服务的地点. 不超过50个字符,超出报错处理。
【建议】服务在同一地点开始和结束时,不传入该字段。


total_amount  必填 integer

【总金额】 1、金额:数字,必须≥0(单位:分)
2、总金额 =(完结付费项目1…+完结付费项目n)-(完结商户优惠项目1…+完结商户优惠项目n)
3、总金额上限:总金额≤“服务风险金额”


profit_sharing  选填 boolean

【微信支付服务分账标记】 完结订单分账接口标记 false-不分账,true-分账,默认:false


goods_tag  选填 string(32)

【订单优惠标记】 订单优惠标记,代金券或立减金优惠的参数,说明详见代金券或立减金优惠


attach  选填 string(256)

【附加数据】商户数据包可存放本订单所需信息,需要先urlencode后传入。 当商户数据包总长度超出256字符时,报错处理。


notify_url  选填 string(255)

【商户回调地址】 商户接收扣款成功回调通知的地址,服务需要收款时此参数必填;服务无需收款时此参数不填。


请求示例

POST

1curl -X POST \
2  https://api.mch.weixin.qq.com/v3/payscore/partner/serviceorder/direct-complete \
3  -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4  -H "Accept: application/json" \
5  -H "Content-Type: application/json" \
6  -d '{
7  "post_payments" : [ {
8    "amount" : 40000,
9    "name" : "就餐费用服务费",
10    "count" : 4,
11    "description" : "就餐人均100元服务费:100/小时"
12  }, {
13    "amount" : 2000,
14    "name" : "就餐费用服务费",
15    "count" : 1,
16    "description" : "就餐人均100元服务费:100/小时"
17  } ],
18   "service_introduction" : "某某酒店",
19  "openid" : "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
20  "profit_sharing" : false,
21  "out_order_no" : "1234323JKHDFE1243252",
22  "notify_url" : "https://api.test.com",
23  "time_range" : {
24    "start_time" : "20091225091010",
25    "end_time_remark" : "备注2",
26    "end_time" : "20091225121010",
27    "start_time_remark" : "备注1"
28  },
29  "total_amount" : 50000,
30  "goods_tag" : "goods_tag1",
31  "service_id" : "500001",
32  "appid" : "wxd678efh567hg6787",
33  "location" : {
34    "start_location" : "嗨客时尚主题展餐厅",
35    "end_location" : "嗨客时尚主题展餐厅"
36  },
37  "attach" : "Easdfowealsdkjfnlaksjdlfkwqoi&wl3l2sald",
38  "post_discounts" : [ {
39    "amount" : 100,
40    "name" : "满20减1元",
41    "count" : 2,
42    "description" : "不与其他优惠叠加"
43  }, {
44    "amount" : 100,
45    "name" : "满20减1元",
46    "count" : 2,
47    "description" : "不与其他优惠叠加"
48  } ]
49}'
50

应答参数
折叠全部参数

200 OK

appid  必填 string(32)

【应用ID】 调用接口提交的公众账号ID。


mchid  必填 string(32)

【应用ID】 调用接口提交的商户号。


out_order_no  必填 string(32)

【商户服务订单号】 调用接口提交的商户服务订单号。


service_id  必填 string(32)

【服务ID服务订单号】 调用该接口提交的服务ID。


order_id  必填 string(128)

【微信支付服务订单号】 微信支付服务订单号,每个微信支付服务订单号与商户号下对应的商户服务订单号一一对应。


service_introduction  必填 string(20)

【服务信息】 服务信息,用于介绍本订单所提供的服务


state  必填 string(32)

【服务订单状态】 表示当前单据状态。

枚举值:
1、DOING:服务订单进行中
2、DONE:服务订单完成


state_description  选填 string(32)

订单状态说明 对服务订单"进行中"状态的附加说明。
1、MCH_COMPLETE:商户完结


post_payments  必填 array[Payment]

【付费项目】 付费项目列表,最少包含1条、最多包含100条付费项目

属性

name   必填 string(20)

【付费名称】 付费项目名称不能重复,当参数长度超过20个字符时,报错处理。


amount  必填 integer

【付费金额】 1、此付费项目总金额,大于等于0,单位为分等于0时代表不需要扣费。
2、未填写金额的付费项目,默认该付费项目金额为0。


description  必填 string(30)

【付费说明】 描述计费规则,不超过30个字符,超出报错处理。


count  选填 integer

【付费数量】 付费项目的数量,只能为整数,不填时默认1个

特殊规则:数量限制100,不填时默认1。


post_discounts  选填 array[ServiceOrderCoupon]

【付费商户优惠】 付费商户优惠,最多包含30条付费项目。如果传入,用户侧则显示此参数。

属性

name   必填 string(20)

【优惠名称】 付费项目名称不能重复,当参数长度超过20个字符时,报错处理。


description  必填 string(30)

【优惠说明】 1、此付费项目总金额,大于等于0,单位为分等于0时代表不需要扣费。
2、未填写金额的付费项目,默认该付费项目金额为0。


amount  选填 integer

【优惠金额】 优惠金额,只能为整数,若填写了付费项目名称,此项必填。


count  选填 integer

【优惠数量】 优惠的数量,不填时默认为1个。


time_range  必填 object

【服务时间】 服务时间,用于用户侧展示

属性

start_time  必填 string(14)

【服务开始时间】 【用户端展示用途】
用户下单时确认的服务开始时间。
支持两种格式:
“yyyyMMddHHmmss”和“yyyyMMdd”:

  • 传入20091225091010表示2009年12月25日9点10分10秒

  • 传入20091225默认时间为2009年12月25日0点0分0秒

【商户调用创单结单合并接口时间】>【服务开始时间】


end_time  必填 string(14)

【服务结束时间】 用户端展示用途,支持两种格式:yyyyMMddHHmmss和yyyyMMdd 传入20091225091010表示2009年12月25日9点10分10秒 传入20091225默认认为时间为2009年12月25日23点59分59秒


start_time_remark  选填 string(20)

【服务开始时间备注】 用户端展示用途,支持两种格式:yyyyMMddHHmmss和yyyyMMdd

  • 传入20091225091010表示2009年12月25日9点10分10秒。

  • 传入20091225默认时间为2009年12月25日

1、【服务结束时间】>【服务开始时间】
2、【服务结束时间】≤【商户调用创单结单合并接口时间】


end_time_remark  选填 string(20)

【服务结束时间备注】 预计服务结束时间备注说明,预计服务结束时间有填时,可填写预计服务结束时间备注,不超过20个字符,超出报错处理。


location  选填 object

【服务位置】 服务使用信息。如果传入,用户侧则显示此参数。

属性

start_location  必填 string(50)

【服务开始地点】 开始使用服务的地点. 不超过50个字符,超出报错处理;


end_location  必填 string(50)

【服务结束地点】 1、实际结束使用服务的地点. 不超过50个字符,超出报错处理。
【建议】服务在同一地点开始和结束时,不传入该字段。


total_amount  必填 integer

【总金额】 1、金额:数字,必须≥0(单位:分)
2、总金额 =(完结付费项目1…+完结付费项目n)-(完结商户优惠项目1…+完结商户优惠项目n)
3、总金额上限:总金额≤“服务风险金额”


attach  选填 string(256)

【附加数据】商户数据包可存放本订单所需信息,需要先urlencode后传入。 当商户数据包总长度超出256字符时,报错处理。


notify_url  选填 string(255)

【商户回调地址】 商户接收扣款成功回调通知的地址,服务需要收款时此参数必填;服务无需收款时此参数不填。


 

应答示例

200 OK

1{
2  "prepay_id" : "wx201410272009395522657a690389285100"
3}
4

错误码

公共错误码

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

请根据错误提示正确传入参数

400

INVALID_REQUEST

HTTP 请求不符合微信支付 APIv3 接口规则

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_ERROR

系统异常,请稍后重试

请稍后重试

业务错误码

状态码

错误码

描述

解决方案

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

订单已完成

当前状态无需操作

 

 

元宝AI
反馈
目录
置顶