点餐订单信息同步API

更新时间:2024.11.18

应用场景

当点餐订单状态发生变化时,都上传全量的订单明细。

  1. 用户在扫码点餐小程序/h5页面中下单时,上报用户的下单信息,此时status为CREATE_DEAL

  2. 确定支付成功后上报用户的支付信息,此时status为PAY_SUCCESS

接口说明

接口url

https://api.mch.weixin.qq.com/v3/catering/orders/sync-status

请求方式

POST

接口规则

本接口使用微信支付V3版接口规则

前置条件

请求参数

变量名

类型

必填

示例值

描述

sp_mchid

String(32)

1900000109

微信支付分配的服务商商户号

sub_mchid

String(32)

1900000100

微信支付分配子商户商户号

sp_appid

String(32)

wx8888888888888888

服务商在微信公众平台申请服务号对应的APPID 

sub_appid

String(32)

wx8888888888888888

子商户在微信公众平台申请服务号对应的APPID

out_shop_no

String(32)

6895

商户旗下门店的唯一编号

openid

String(32)

oYobu0Dmn6Tdod ZnFWKOEkqoRbI8

用户标识,用户在服务商appid下的openid。 openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid。

sub_openid

String(32)

oYobu0Dmn6Tdod ZnFWKOEkqoRbI8

用户子标识,用户在子商户appid下的openid。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid。

login_token

String(256)

071oYFSN19sCH31AyNSN15QDSN1oYFSA

微信用户登录接口返回的登录票据

公众号,填写页面授权access_token,详细参考

小程序,填写session_key,详细参考

order_entry

String(256)

http://www.example.com

点餐入口,公众号:点餐页面完整URL
小程序:点餐页面path路径

total_amount

int

1000

总价,单位为分

discount_amount

int

100

优惠金额,单位为分

user_amount

int

900

实际支付金额,单位为分

status

String(32)

CREATE_DEAL

订单状态,取值如下:

CREATE_DEAL—用户下单;

PAY_SUCCESS—支付完成,结账成功;

action_time

String(64)

2018-06-08T10:34:56+08:00

状态发生变化的时间,格式为rfc3339格式,如2018-06-08T10:34:56+08:00 代表北京时间2018年06月08日10时34分56秒

pay_time

String(64)

2018-06-08T10:34:56+08:00

支付时间,格式为rfc3339格式,如2018-06-08T10:34:56+08:00 代表北京时间2018年06月08日10时34分56秒(status为PAY_SUCCESS时必填)

transaction_id

String(64)

1009660380201506130728806387

支付订单号(status为PAY_SUCCESS时必填)

out_trade_no

String(64)

20150806125346

服务商系统内部支付订单号(status为PAY_SUCCESS时必填)

out_order_no

String(64)

20150806125346

服务商系统内部订单号

dish_list

JsonArray

[{

"out_dish_no":"1",

"name":"清汤锅底",

"price":6000,

"unit":"BY_SHARE",

"count":1,

"discount":100,

"type":"FAST_FOOD",

"priority":1,

"properties":

{"taste":"辣","cuisine":"炒","main_material":"猪肝","ingredients":"青椒|辣椒|葱|八角","others":"有机|农家"}

}]

详见dish_list对象列表

 

out_table_no

String(16)

1

桌位号

people_count

int

2

消费人数

dish_list对象列表

变量名

类型

必填

示例值

描述

out_dish_no

String(48)

1

商户菜品ID

name

String(128)

清汤锅底

菜品名称

price

int

1

菜品单价,单位为分

unit

String(16)

BY_SHARE

菜品单位,BY_SHARE-按份 BY_WEIGHT-按重量

count

Float

1.5

菜品数量,保留小数点后2位有效数字

discount

int

100

菜品折扣,百分值,8折填80

type

String(32)

FAST_FOOD

菜品分类,如等。详见参数规定《菜品类型列表》

priority

int

1

当前菜品在服务商平台的顺序,值越小越靠前,取值(1~100)

properties

object

 

菜品属性,详见参数规定《菜品属性列表》

properties对象列表

变量名

类型

必填

示例值

描述

taste

String(128)

口味,取值参考参数规定中的“菜品属性”taste字段,可额外补充

cuisine

String(128)

做法,取值参考参数规定中的“菜品属性”cuisine字段,可额外补充

main_material

String(128)

猪肝

主料,取值参考参数规定中的“菜品属性”main_material字段,可额外补充,以竖线(|)分隔

ingredients

String(128)

青椒|辣椒|葱|八角

配料,取值参考参数规定中的“菜品属性”ingredients字段,可额外补充,以竖线(|)分隔

others

String(128)

有机|农家

其他,取值参考参数规定中的“菜品属性”others字段,可额外补充,以竖线(|)分隔

请求包体样例

1{
2	"sp_mchid": "1900009231",
3	"sub_mchid": "1900000100",
4	"sp_appid": "wxab8acb865bb1637e",
5	"order_entry": "/index/order",
6	"sub_appid": "wx8888888888888888",
7	"out_shop_no": "32432",
8	"openid": "oHkLxt8uweSK05Xb8zGY3KzmUBn8",
9	"sub_openid": "oHkLxt8uweSK05Xb8zGY3KzmUBn8",
10	"login_token": "071oYFSN19sCH31AyNSN15QDSN1oYFSA",
11	"total_amount": 1000,
12	"discount_amount": 100,
13	"user_amount": 900,
14	"status": "CREATE_DEAL",
15	"action_time": "2018-06-08T10:34:56+08:00",
16	"pay_time": "2018-06-08T10:34:56+08:00",
17	"transaction_id": "1009660380201506130728806387",
18	"out_trade_no": "20150806125346",
19	"out_order_no": "20150806125346",
20	"dish_list": [{
21		"out_dish_no": "1",
22		"name": "小鸡炖蘑菇",
23		"price": 6000,
24		"unit": "BY_SHARE",
25		"count": 1,
26		"discount": 100,
27		"type": "FAST_FOOD",
28		"priority": 1,
29		"properties": {
30			"taste": "辣",
31			"cuisine": "炒",
32			"main_material": "猪肝",
33			"ingredients": "青椒 | 辣椒 | 葱 | 八角 ",
34			"others": "有机 | 农家"
35		}
36	}],
37	"people_count": 1
38}

返回结果

异常返回

变量名

类型

必填

示例值

描述

code

String(32)

PARAM_ERROR

错误码,枚举值见错误码列表

message

String(256)

参数格式校验错误

返回信息,如非空,为错误原因,比如签名失败,参数为空等

detail

Object

{

"field":"unit",

"value":"BYSHARE",

"issue":"currency code is invalid",

"location":"body"

}

具体错误情况,见下面说明

detail对象列表

变量名

类型

必填

示例值

描述

field

String

unit

错误的参数名

value

String

BYSHARE

错误的值

issue

String

currency code is invalid

具体错误情况

location

String

body

body:错误参数位于请求body的JSON中;

url:错误参数位于请求url中

query:错误参数位于请求的querystring中

应答样例

1{
2"code": "PARAM_ERROR",
3"message": "参数错误",
4"detail":"{
5	 "field":"sp_mchid"
6	 "value":"",
7	 "issue":"sp_mchid is empty",
8	 "location":"body"
9}
10}

正常返回

无数据(Http状态码为204)

常见问题

错误码

反馈
咨询
目录
置顶