同步订单状态
更新时间:2024.09.27订单collection.state为USER_PAYING待支付状态时,如果用户通过其他渠道支付了,商户可调用该接口将支付分订单改为已完成状态。
注:
1.待支付状态的订单,若用户正在通过支付分订单页拉起收银台主动支付或者支付分正在进行自动扣款时,调用同步支付分订单API可能会出现"单据正在扣款中,请稍后再试"的报错,可等待3min后重试。
2.如果用户通过其他渠道支付后,支付分订单又同时扣款成功出现重复支付情况,商户选择任意渠道退款即可。
# 接口说明
支持商户:
【普通商户】
请求方式:
【POST】/v3/payscore/serviceorder/{out_order_no}/sync
请求域名:
【主域名】
https://api.mch.weixin.qq.com
使用该域名将访问就近的接入点【备域名】
https://api2.mch.weixin.qq.com
使用该域名将访问异地的接入点 ,指引点击查看
# 请求参数
- Authorization 必填请参考 签名认证 生成认证信息
- Accept 必填请设置为
application/json
- Content-Type 必填请设置为
application/json
Header HTTP头参数
- out_order_no 必填【商户服务订单号】 商户系统内部服务订单号,商户在创建支付分接口中填入的out_order_no参数。
Path 路径参数
- appid 必填【公众账号ID】 是微信开放平台和微信公众平台为开发者的应用程序(APP、小程序、公众号)提供的一个唯一标识。 开发者需要先在微信开放平台或微信公众平台中申请ID,然后在商户平台中绑定,详见直连商户与AppID账号关联管理
。完结订单和取消订单需要和创单传入的appid保持一致。 - service_id 必填【服务ID】 商户支付分服务的唯一标识,由32位数字组成。支付分产品权限审核通过后,微信支付运营会向商户提供该ID。
- type 必填【场景类型】 收款场景,商户固定传“Order_Paid”,表示订单收款成功。
- detail 必填【内容信息详情】 订单的收款信息详情,type=Order_Paid时为必填项。
- 属性
Body 包体参数
请求示例
POST
# 应答参数
- out_order_no 必填【商户服务订单号】 商户系统内部服务订单号,商户在创建支付分接口中填入的out_order_no参数。
- service_id 必填【服务ID】 商户支付分服务的唯一标识,由32位数字组成。支付分产品权限审核通过后,微信支付运营会向商户提供该ID。
- appid 必填【公众账号ID】 是微信开放平台和微信公众平台为开发者的应用程序(APP、小程序、公众号)提供的一个唯一标识。 开发者需要先在微信开放平台或微信公众平台中申请ID,然后在商户平台中绑定,详见直连商户与AppID账号关联管理
。完结订单和取消订单需要和创单传入的appid保持一致。 - mchid 必填【服务商商户号】 调用支付分创单接口提交的商户号,商户号需开通支付分产品权限,且与appid有绑定关系,详见直连商户与AppID账号关联管理
。 - service_introduction 必填【服务信息】 用于介绍本订单所提供的服务 ,长度不能超过20个字符(汉字、数字、字母、特殊符号都按照1个字符计算)。
- state 必填【服务订单状态】 表示支付分订单状态,免确认模式创单成功即是DOING进行中状态。CREATED:商户已创建服务订单DOING:服务订单进行中DONE:服务订单完成(终态)REVOKED:商户取消服务订单(终态)EXPIRED:服务订单已失效,"商户已创建服务订单"状态超过30天未变动,则订单失效(终态)该状态需结合collection.state字段和state_description字段一起判断,具体可参考支付分订单状态流转图。
- state_description 选填【订单状态说明】 此参数用于对服务订单处于DOING状态时的附加说明,非DOIING状态将不会返回该参数。具体状态如下:USER_CONFIRM:用户已确认状态,表示用户成功确认订单后所处状态。MCH_COMPLETE:商户已完结状态,指商户调用完结接口成功后至扣款成功前的状态。该状态需结合collection.state字段和state字段一起判断,具体可参考支付分订单状态流转图。
- post_payments 选填【后付费项目】 用于展示订单后付费项目明细,商户需要按照所属行业规程传参,详见post_payments(后付费项目)字段传参说明
- 属性
- post_discounts 选填【商户优惠】 用于展示订单优惠项目明细,最多30条,完结订单时传的收款总金额需满足计算条件(收款总金额=后付费项目amount和-优惠项目amount和)
- 属性
- risk_fund 选填【服务风险金】 本笔订单的风险金额描述
- 属性
- total_amount 选填【总金额】 订单最终收款总金额,整型,单位为分,商户调用完结订单接口和修改订单金额接口传入,受服务ID风险金额上限影响,服务ID风险金额上限具体请与BD确认。total_amount<=服务ID风险金额上限。需满足计算条件:total_amount = 后付费项目金额(post_payments.amount总和) - 优惠项目金额(post_discounts.amount总和),例如商户后付费项目金额总和为10元,优惠项目金额总和为2元,则订单收款总金额为8元。
- need_collection 选填【是否需要收款】 调用接口传入的是否需要收款,true:微信支付分代收款 false:无需微信支付分代收款
- collection 选填【收款信息】 订单是否需要收款,固定返回true需收款。
- 属性
- time_range 选填【服务时间】 用于描述订单的服务开始和结束时间。
- 属性
- location 选填【服务位置】 服务使用的开始位置和结束位置
- 属性
- attach 选填【附加数据】 商户在创建订单时传入的自定义数据包,用户不可见。用于存放订单的商户自定义数据,需要先进行urlencode编码,总长度不超过256字符。确认订单回调和支付成功回调时会回传该字段给商户。
- notify_url 选填【商户回调地址】 商户接收支付成功回调通知的地址,创单时传入,需按照notify-url填写注意事项规范
填写。 - openid 必填【用户标识】 用户在商户对应appid下的唯一标识
- order_id 必填【微信支付服务订单号】 支付分订单在微信侧的唯一标识,31位数字,开头由1000000000+年月日组成。
200OK
应答示例
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开头的状态码都为系统问题,请使用相同参数稍后重新调用 |
文档是否有帮助