美团外卖C端开放平台OpenAPI文档

注册成为开发者?请登录 美团外卖C端开放平台网站.

注意: 在使用此文档前,请详细阅读 服务协议保密协议.

快速接入

接入流程

合作方注册 --> 接口联调 --> 资质认证 --> 申请上线 --> 发布应用

OAuth授权

所有接口都需要接入OAuth授权,经过用户确认授权后才可以调用,详见OAuth授权文档

认证参数

所有接口都需要通过数字签名认证才能调用。API参数共由两部分组成,认证参数业务参数

参数名 类型 描述
timestamp long 进行接口调用时的时间戳,即当前时间戳(时间戳:当前距离Epoch(1970年1月1日) 以秒计算的时间,即unix-timestamp)。
注意:timestamp和服务器时间相差过大会返回非法请求的错误。
app_id string 美团分配给调用方的id
access_token String OAuth授权获得的access_token
部分与用户相关场景必传, 可以和open_id选其一
open_id String 用户唯一标识, 可以和access_token选其一, 如果两者均存在, 优先以access_token为准
需要注意:使用open_id和oauth2授权的refresh_token共享有效期, refresh_token过期后需要用户重新授权
mt_login_token string 接入美团账号联合登陆获得的token (美团公司内部渠道使用, 可选,传入mt_login_token后,一些接口会进行个性化的处理,比如推荐、搜索等接口)
sign string 输入参数计算后的签名结果

签名计算方式

  1. 对参数进行排序

    所有参数(包含业务参数认证参数, 但sign除外)按照参数名的字母顺序排序,并用&连接,例如: app_id=1235123121&timestamp=1389751221

  2. 得到加密前的字符串

    按照请求url + ? + 排序后的参数 + secret_sign的顺序进行连接,得到加密前的字符串: https://openapi.waimai.meituan.com/openapi/v1/poilist?app_id=1235123121&timestamp=13897512214032ff411f8ba69dd08eea6cb9856852

  3. 计算签名

    对加密前的字符串进行MD5加密,得到签名 f72fba31ecb2a146e112538fc9db0c61

  4. 得到请求url

    将得到的签名赋给sign作为请求的参数: https://openapi.waimai.meituan.com/openapi/v1/poilist?app_id=1235123121&timestamp=1389751221&sign=6706401b1faa7ccb3257534f5156e833

返回数据格式

字段 类型 描述
code int 返回状态码 0:成功 1:失败
msg string 当返回失败时的错误详情
data string 当返回成功时,返回的响应体. 一般为json格式. 以下简称 返回数据

通用结构说明

字段 类型 描述
日期/时间 int 下列文档中涉及到的时间或者日期, 均为当前距离Epoch的时间,单位是秒. 即unix-timestamp
经度/纬度 int 美团使用的是火星坐标系 * 1000000
金额 double 金额一般使用double类型,有效数字精确2位小数

业务接口

商家列表

接口说明

功能描述
根据地理位置获取商家信息
接口地址
https://openapi.waimai.meituan.com/openapi/v1/poilist
method
POST
请求体
x-www-form-urlencoded
返回值
Json
限制
未经过审核用户限制只能使用特定参数进行调用: longitude=95369826 latitude=29735952

业务参数

参数名 类型 必填? 示例值 描述
longitude int 116491116 用户当前经度
latitude int 40002102 用户当前纬度
keyword string 黄焖鸡 关键字
sortType int 0 排列方式 0:综合排序 1:月销量从高到低 2:配送速度从快到慢 3:外卖评分从高到低 4:起送价从低到高 5:距离从近到远 6:配送费从低到高 7:人均从低到高 8:人均从高到低
page_index int 1 页号 如果不填,默认第一页
page_size int 20 每页数量
不可超过20
minPrice int 10 最小均价,不传默认0
maxPrice int 50 最大均价,不传默认999;
priceCode string -100 均价的code,此值从/common/getFilterConditions 获取筛选栏接口获得;minPrice、maxPrice都不传或者不传priceCode,则不筛选均价
migFilter string -1,-3,-5 逗号分隔int组成的string,除均价外的筛选项
navigateType int 0 金刚code
categoryType int 101085 一级品类
secondCategoryType int 101119 二级品类
subPoiList string 100001,100002,100003 逗号分隔long组成的string,商家ID列表,只返回在商家ID列表中的附近门店

调用成功时的返回数据

{
    "code": 0,
    "msg": "调用成功",
    "errorInfo": null,
    "data": {
        "poi_total_num": 2734, #(Int) 符合搜索的商家总数
        "have_next_page": 1, #(Int) 是否有下一页
        "current_page_index": 0, #(Int) 当前页号
        "page_size": 20, #(Int) 每页数量
        "openPoiBaseInfoList": [ #(Object[]) 
            {
                "wm_poi_id": 171899, #(Long) 商家ID 
                "status": 1, #(Int) 营业状态 1:可配送 2:忙碌中 3:休息中
                "status_desc": "", #(String) 营业状态描述
                "name": "金x万美食MALL", #(String) 商家名称
                "pic_url": "http://p1.meituan.net/xianfu/56153240ffa99c70ce5eba25c3a905ef8214.jpeg", #(String) 商家图片url
                "shipping_fee": 5.0, #(Double) 配送费
                "min_price": 20.0, #(Double) 起送价
                "wm_poi_score": 4.7, #(Double) 商家评分
                "avg_delivery_time": 48, #(Int) 平均配送时间
                "distance": "1.3km", #(String) 我和商家的距离
                "latitude": 40008384, #(Long) 商家位置纬度
                "longitude": 116477963, #(Long) 商家位置经度
                "address": "北京市朝阳区望京东路91号", #(String) 商家地址
                "delivery_type": 1, #(Int) 配送类型,1:美团专送,0:非美团专送
                "invoice_support": 0 #(Int) 是否支持开发票,1:支持 0:不支持
                "invoice_min_price": 100, #(Int) 发票起开金额
                "average_price_tip": "人均 ¥38", #(String) 人均价格展示文案
                "scheme": "imeituan://www.meituan.com/takeout/foods?poi_id=1039202877408306&spu_id=0", #(String) 跳转到美团的scheme
                "wm_scheme": "meituanwaimai://waimai.meituan.com/menu?restaurant_id=1039202877408306&spu_id=0", #(String) 跳转到外卖的scheme
                "poi_type_icon": "http://p1.meituan.net/aichequan/a88918ba8699e15a5d16d5d7e09ad0022192.png", #(String) 商家图片角标url
                "discounts": [ #(Object[]) 门店活动信息
                  {
                    "info": "实际支付18元返1元商家代金券", #(String) 活动描述文案
                    "icon_url": "http://p0.meituan.net/xianfu/652eea4034250563fe11b02e3219ba8d981.png", #(String) 活动图标url
                  },
                  {...}
                ],
                "product_list" : [  #(Object[]) 菜品列表,搜索时有
                  {
                    "id": 403529562, #(Long) 商品ID (SPU_ID)
                    "name": "豉汁排骨+有机花菜双拼饭", #(String) 商品名称
                    "price": 25.0, #(Double) 价格
                    "picture": "http://p0.meituan.net/xianfu/bdcae6f8144b2576f7a9ba32677198c8159942.jpg", #(String) 菜品图片
                  },
                  {....}
                ],
                "categoryInfoList" : [  #(Object[]) 品类信息
                  {
                    "name": "甜品", #(String) 分类名称
                    "level": 1, #(int) 层级
                  },
                  {....}
                ]
            },
            {...}
        ]
    }
}

获取商家菜品列表

接口说明

功能描述
获取商家菜品列表
接口地址
https://openapi.waimai.meituan.com/openapi/v1/poi/food
method
POST
请求体
x-www-form-urlencoded
返回值
Json
限制
未经过审核用户限制只能使用特定参数进行调用: longitude=95369826 latitude=29735952 wm_poi_id=2868090或者2868095

业务参数

参数名 类型 必填? 示例值 描述
longitude int 116491116 用户当前经度
latitude int 40002102 用户当前纬度
wm_poi_id long 606737 商家ID
sub_spu_ids string 403529562,403529563 逗号分隔long组成的string,可根据菜品id(SpuId)进行筛选. 需要注意:筛选后不一定返回必选菜品等信息,可能无法完成正常点菜下单逻辑

调用成功时的返回数据

{
    "code": 0,
    "msg": "调用成功",
    "errorInfo": null,
    "data": {
        "food_spu_tags": [ #(Object[]) 菜品类别
            {
                "tag": "19842161", #(String) 类别ID
                "name": "米饭简餐", #(String) 类别名
                "icon": "", #(String) 类别图标
                "type": 0, #(Int) 0:普通分类(如有必选分类, 下单需选择必选分类中菜品);1:必选分类;2:可单独结算分类
                "spus": [ #(Object[]) 菜品信息
                    {
                        "id": 403529562, #(Long) 商品ID (SPU_ID)
                        "name": "豉汁排骨+有机花菜双拼饭", #(String) 商品名称
                        "min_price": 25.0, #(Double) 最低价
                        "unit": "份", #(String) 单位
                        "tag": "19842161", #(String) 所属类别,如有多个,则用`,`分隔
                        "description": "", #(String) 菜品描述
                        "picture": "http://p0.meituan.net/xianfu/bdcae6f8144b2576f7a9ba32677198c8159942.jpg", #(String) 菜品图片
                        "month_saled": 120, #(Int) 月销量
                        "status": 0, #(Int) 状态 0:正常销售中 1:已售完 2:已抢光 3:非可售时间
                        "sku_label": "规格", #(String) 库存量名称
                        "attrs": [#(Object[]) 属性规格
                            "name":"",#(String) 属性名,例如:奶茶温度
                            "values": [#(Object[]) 可选属性
                              {
                                "id":23,  #(Long) 可选属性ID
                                "value":"标准", #(String) 属性名称,比如:标准/低温/超热
                              },
                              {...}
                            ]
                        ],
                        "skus": [ #(Object[]) 库存量信息
                            {
                                "id": 441067569, #(Long) 库存量ID
                                "spec": "大份", #(String) 规格名称,例如:大份
                                "description": "", #(String) 描述
                                "picture": "http://p0.meituan.net/xianfu/bdcae6f8144b2576f7a9ba32677198c8159942.jpg", #(String) 图片URL
                                "price": 25.0, #(Double) 价格
                                "origin_price": 25.0, #(Double) 原价
                                "box_num": 0.0, #(Double) 餐盒个数
                                "box_price": 2.0, #(Double) 餐盒价格
                                "min_order_count": 1, #(Int) 最低起送数量
                                "status": 0, #(Int) 状态 0:正常销售中 1:已售完 3:非可售时间
                                "stock": 0 #(Int) 库存数 -1:无限库存,0 无库存,>0 有库存
                            },
                            {...}
                        ]
                    },
                    {...}
                ]
            },
            {...}
        ],
        "poi_info": {
            "wm_poi_id": 171899, #(Long) 商家ID
            "name": "金x万美食MALL", #(String) 商家名称
            "status": 1, #(Int) 营业状态 1:可配送 2:忙碌中 3:休息中
            "shipping_time": "10:00-21:30", #(String) 营业时间
            "shipping_fee": 5.0, #(Double) 配送费
            "avg_delivery_time": 31, #(Int) 平均配送时间(分钟)
            "min_price": 20.0, #(Double) 最小起送价
            "bulletin": "高峰期间请您提前点餐,如餐品有任何问题请您拨打010-xxxxxxxx给大家造成的不便尽请谅解,谢谢。", #(String) 商家提示
            "support_pay": 1, #(Int) 是否支持在线支付 1:支持 0:不支持
            "invoice_support": 0, #(Int) 是否支持开发票 1:支持 0:不支持
            "invoice_min_price": 0, #(Int) 开发票最低购买金额
            "wm_poi_score": 4.7, #(Double) 商家评分
            "pic_url": "http://p1.meituan.net/xianfu/56153240ffa99c70ce5eba25c3a905ef8214.jpeg", #(String) 商家图片
            "delivery_type": 1, #(Int) 配送类型 1:美团配送 0:非美团配送
            "discounts": [ #(Object[]) 门店活动信息
                {
                    "info": "实际支付18元返1元商家代金券", #(String) 活动描述文案
                    "icon_url": "http://p0.meituan.net/xianfu/652eea4034250563fe11b02e3219ba8d981.png", #(String) 活动图标url
                },
                {...}
            ]
        }                   
    }
}

订单预览

接口说明

功能描述
预览订单中相关商品
接口地址
https://openapi.waimai.meituan.com/openapi/v1/order/preview
method
POST
请求体
x-www-form-urlencoded
返回值
Json
限制
未经过审核用户限制只能使用特定参数进行调用: wm_poi_id=2868090或者2868095

业务参数

参数名 类型 必填? 示例值 描述
payload json - 将payload拼成下列结构体的json

Payload JSON

参数名 类型 必填? 示例值 描述
wm_ordering_list object - 订单信息
-wm_poi_id long 606737 商家ID
-delivery_time int 0 用户选择的送达时间 0为立即送出
-pay_type int 2 支付类型 2在线支付
-food_list object[] - 所点菜品信息
--wm_food_sku_id long 1347047 菜品SKU-ID
--count int 2 菜品数量
--food_spu_attr_ids List - food属性ids
wm_ordering_user object - 收餐人详细信息
-user_latitude int - 用户当前经度
-user_longitude int - 用户当前纬度
-user_phone string 18200000000 手机号(不传addressid时必填)
-user_address string 北京市朝阳区xxxx 用户详细地址(不传addressid时必填)
-user_name string 戴某某 收货人名称(不传addressid时必填)
-addr_latitude int - 收餐地址经度(不传addressid时必填)
-addr_longitude int - 收餐地址纬度(不传addressid时必填)
-house_number string - 门牌号
-user_caution string 少放辣 用户备注
-user_invoice string - 发票抬头
-invoice_taxpayer_id string - 纳税人识别号

address_id | long | | -| 用户地址ID,有该参数时,收货地址以该id对应地址为准

Payload Json样例:

{   
    "wm_ordering_list": {
        "wm_poi_id": 604525,
        "delivery_time": 0,
        "pay_type": 2,
        "food_list": [
            {
                "wm_food_sku_id": 130158735,
                "count": 1,
                "food_spu_attr_ids": [1,2,3]  //food_spu_attr_values_id串数组 当有需要选属性规格时传,非必须
            },
            {
                "wm_food_sku_id": 130158736,
                "count": 3,
                "food_spu_attr_ids": [1,2,3]  
            }
        ]
    },
    "wm_ordering_user": {
        "user_caution": "少放辣",
        "user_longitude": 116488645,
        "user_latitude": 40007069,
        "user_name": "戴先生",
        "addr_longitude": 116488645,
        "addr_latitude": 40007069,
        "user_phone": "18000000000",
        "user_address": "北京市朝阳区望京东路望京科创大厦A座",
    },
    "address_id": 18284
}

调用成功时的返回数据

{
    "code": 0,
    "msg": "调用成功",
    "errorInfo": null,
    "data": {
        "code": 0, #(Int) 预览订单状态码:0:成功 1:失败 2:商家不可买 3:菜品不可买 4:不在配送时间内 5:菜品未达起送金额 15:未达到最小菜品起送份数 20:缺少必选菜品 21:菜品信息为空 26:商家不支持此配送类型 29:菜品信息属性发生变化 其他:系统维护,稍后重试
        "msg": '需要选择 [调料系列] 下的商品才可下单哦~', #(String) 错误提示,code !=0 时可参考msg描述 
        "wm_ordering_preview_order_vo": { #(Object) 订单详情
            "recipient_address": "北京市朝阳区xxxxxx (308号)", #(String) 收餐人地址
            "recipient_name": "张三", #(String) 收餐人姓名
            "recipient_phone": "13812345678", #(String) 收餐人手机
            "shipping_fee": 5.0, #(Double) 配送费
            "estimate_arrival_time": 1510042479, #(Int) 预计到达时间
            "caution": "少放辣", #(String) 备注
            "invoice_title": "", #(String) 发票抬头
            "invoice_taxpayer_id": "", #(String) 纳税人识别号
            "wm_order_pay_type": 2, #(Int) 支付类型
            "wm_poi_id": 171899, #(Long) 对应商家ID
            "poi_name": "金X万美食MALL", #(String) 商家名称
            "wm_poi_min_fee": 0.1, #(Double) 商家最少起送价
            "total": 30.0, #(Double) 总价
            "original_price": 30.0, #(Double) 原价
            "box_total_price": 0.0, #(Double) 餐盒费
            "user_phone": "13812345678", #(String) 下单用户手机号,调用接口时传递的值
            "is_pre_order": 0, #(Int) 是否是预订单
            "first_order":0,  #(Int) 是否首单
            "delivery_type": 1 #(Int) 配送类型,1:美团专送,0:非美团专送
        },
        "wm_ordering_preview_detail_vo_list": [ #(Object[]) 订单菜品
            {
                "wm_food_sku_id": 441067569, #(Long) 菜品库存量ID
                "food_price": 25.0, #(Double) 菜品价格
                "unit": "大份", #(String) 单位
                "count": 1, #(Int) 数量
                "box_num": 0.0, #(Double) 餐盒数量
                "box_price": 2.0, #(Double) 餐盒费
                "food_name": "豉汁排骨+有机花菜双拼饭", #(String) 菜品名称
                "origin_food_price": 25.0, #(Double) 菜品原价
                "picture": "https://p1.meituan.net/xianfu/53274b388e5e660f5e4b9e0c78a9785819158.jpg",#(String) 菜品图片 
                "wm_ordering_preview_food_spu_attr_list": [ #(Object[]) 菜品属性
                    {
                        "id": 122108, #(Int) 菜品属性ID
                        "wm_food_spu_id": 1307521,#(Long) 菜品ID
                        "no": 0, #(Int) 序号
                        "name": "温度", #(String) 名称
                        "value": "温热", #(String) 值
                        "valid": 1 #(Int) 有效性
                    },
                    {...}
                ],
                "spec": "大份", #(String) 规格
                "wm_food_spu_id": 403529562 #(Long) 菜品ID
            },
            {...}
        ],
        "wm_ordering_unavaliable_food_vo_list": [ #(Object[]) 不可用的菜品列表
            {
                "wm_food_sku_id": 441067510, #(Long) 菜品库存量ID
                "wm_food_name": "米饭", #(String) 菜品名称
                "stock": 0, #(Int) 剩余库存量
                "wm_food_spu_id": 403529562 #(Long) 菜品ID
            },
            {...}
        ],
        "min_count_foodlist": [ #(Object[]) 不满足最小配送条件的菜品列表
            {
                "wm_food_sku_id": 441067511, #(Long) 菜品库存量ID
                "wm_food_name": "小菜", #(String) 菜品名称
                "wm_food_spu_id": 403529562, #(Long) 菜品ID
                "cur_count": 1, #(Int) 当前数量
                "min_count": 5 #(Int) 最小数量
            },
            {...}
        ],
        "discounts": [ #(Object[]) 订单优惠信息
            {
                "name": "首单立减",  #(String) 活动名称
                "info": "-¥10",  #(String) 活动信息
                "reduceFree": 10, #(String) 优惠金额
                "icon_url": "http://p0.meituan.net/xianfu/019d1bbb1310b1531e6af6172c9a5095581.png",  #(String) 活动图标url
            },
            {
                "name": "门店新客立减",
                "info": "-¥10",
                "reduceFree": 10, #(String) 优惠金额
                "icon_url": "http://p1.meituan.net/xianfu/1cc4324d7d2f59f2cccb6920b57cd0902048.png"
            }
        ],
        "discountWarnTip": "满减优惠与折扣商品不能同享",
        "token":"7CC85E8E26D14DD68525215A721E502E", #(String) 订单Token,调用order submit接口时,需要作为参数传递过来

    }
}

提交订单

接口说明

功能描述
提交订单中相关商品
接口地址
https://openapi.waimai.meituan.com/openapi/v1/order/submit
method
POST
请求体
x-www-form-urlencoded
返回值
Json
限制
未经过审核用户限制只能使用特定参数进行调用: wm_poi_id=2868090或者2868095
注意
如系统检测到用户需要风控验证,并自动向用户手机发送短信验证码,返回errorInfo.failCode=13001时。请重复请求并带上用户提供的验证码作为verify_code参数。

业务参数

参数名 类型 必填? 示例值 描述
payload json - 将payload拼成下列结构体的json

Payload JSON

参数名 类型 必填? 示例值 描述
pay_source string 3 此版本固定传3
verify_code string 3214 短信或语音验证码(只在errorInfo.failCode=13001时传入)
wm_ordering_list object - 订单信息
-wm_poi_id long 606737 商家ID
-delivery_time int 0 用户选择的送达时间 0为立即送出
-pay_type int 2 支付类型 1-餐到付款 2-在线支付
-food_list object[] - 所点菜品信息
--wm_food_sku_id long 1347047 菜品SKU-ID
--count int 2 菜品数量
--food_spu_attr_ids List - food属性ids , 当菜品有属性时必传
wm_ordering_user object - 收餐人详细信息
-user_latitude int - 用户当前经度
-user_longitude int - 用户当前纬度
-user_phone string 18200000000 手机号(不传addressid时必填)
-user_address string 北京市朝阳区xxxx 用户详细地址(不传addressid时必填)
-user_name string 戴某某 收货人名称(不传addressid时必填)
-addr_latitude int - 收餐地址经度(不传addressid时必填)
-addr_longitude int - 收餐地址纬度(不传addressid时必填)
-house_number string - 门牌号
-user_caution string 少放辣 用户备注
-user_invoice string - 发票抬头
-invoice_taxpayer_id string - 纳税人识别号
wx_pay_params object - 微信小程序支付相关参数,传递该参数后,则按照微信小程序支付的方式进行下单
-openid string - 微信用户OpenID
-app_id string - 微信小程序ID
risk_param object - 开通优惠活动需要的风控信息,如不开通优惠活动,则不需要传入
-id_card_hash string - 身份证hash
-bank_card_hash string - 银行卡hash
-third_part_device_hash string - 第三方设备hash
-third_part_user_id_hash string - 第三方用户Id hash
token string - preview接口返回的订单token
address_id long - 用户地址ID,有该参数时,收货地址以该id对应地址为准

Payload JSON样例

{
    "wm_ordering_list": {
        "wm_poi_id": "164",
        "delivery_time": 0,
        "pay_type": 2,
        "food_list": [
            {
                "wm_food_sku_id": 17104,
                "count": 1,
                "food_spu_attr_ids": [1,2,3]  //food_spu_attr_values_id串数组 当有需要选属性规格时必传 
            },
            {
                "wm_food_sku_id": 17105,
                "count": 1,
                "food_spu_attr_ids": [1,2,3]  
            }
        ]
    },
    "wm_ordering_user": {
         "user_caution": "少放辣",
        "user_longitude": 116488645,
        "user_latitude": 40007069,
        "user_name": "戴先生",
        "addr_longitude": 116488645,
        "addr_latitude": 40007069,
        "user_phone": "18000000000",
        "user_address": "北京市朝阳区望京东路望京科创大厦A座",
    },
    "pay_source": 3,
    "address_id": 18284

}

调用成功时的返回数据

{
    "code": 0,
    "msg": "调用成功",
    "errorInfo": null,
    "data": {
        "code": 0, #(Int) 订单状态码:0:成功 1:失败 2:重复下单 3:商家不可买 4:菜品不可买 5:预计送达时间错误 6:菜品未达起送数金额 8:订单被风控拦截 9:超出配送范围 11:超出价格上限 15:未达到菜品最小起送份数 17:配送费已经变化 20:缺少必选菜品 30:无效的token 31:菜品为空 36:商家不支持当前支付方式 50:菜品信息属性发生变化 其他:系统升级,稍后重试
        "order_id": 6015602307419773, #(Long) 生成的订单号
        "wm_ordering_unavaliable_food_vo_list": [ #(Object[]) 不可用菜品列表
            {
                "wm_food_sku_id": 441067510, #(Long) 菜品库存量ID
                "wm_food_name": "米饭", #(String) 菜品名称
                "stock": 0, #(Int) 剩余库存量
                "wm_food_spu_id": 403529562 #(Long) 菜品ID
            },
            {...}
        ],
        "min_price": 0, #(Double) 最少配送价格
        "min_count_foodlist": [ #(Object[]) 不满足最小配送的菜品列表
            {
                "wm_food_sku_id": 441067511, #(Long) 菜品库存量ID
                "wm_food_name": "小菜", #(String) 菜品名称
                "wm_food_spu_id": 403529562, #(Long) 菜品ID
                "cur_count": 1, #(Int) 当前数量
                "min_count": 5 #(Int) 最小数量
            },
            {...}
        ],
        "payUrl": "http://stable.pay.test.sankuai.com/i/cashier/show/index?auth=v2&tradeno=140048893012133&pay_token=cf2c47ae50e58eade933c207a6f6a38a1...",#(String) 支付地址(新)
        "wx_pay_params":"{"appId":"wxc72f01f43da0083b","nonceStr":"hw1vuMnfZFALdyZf1bi3xZ9kFN5KrPMc","package":"prepay_id=wx20160926175143a65cda802b0970399091","paySign":"BA5C61BC0392B4295EBD86603EDAA19E","signType":"MD5","timeStamp":"1474883503"}",#(String) 微信小程序支付相关参数

    }
}

拉起支付规则: 通过页面重定向到成功返回的payUrl,即可到达支付页面. 支付URL后需要增加pay_success_url作为支付成功后的跳转地址,redr_url作为支付失败的跳转地址。拼接方式:${payUrl}&pay_success_url=www.xxx.com/xxx&redr_url=www.xxx.com/xxx

获取订单预计送达时间列表

接口说明

功能描述
根据商家信息获取预计送达时间列表项
接口地址
https://openapi.waimai.meituan.com/openapi/v1/poi/arriveTime
method
POST
请求体
x-www-form-urlencoded
返回值
Json

业务参数

参数名 类型 是否必填 示例值 描述
longitude int 116491116 用户当前经度
latitude int 40002102 用户当前纬度
wm_poi_id long 606737 商家ID

调用成功时的返回数据

{
    "code": 0,
    "msg": "调用成功",
    "errorInfo": null,
    "data": [
        {
            "date": "今天(周二)", #(String) 预计送达时间日期
            "status": "状态", #(int) 0:正常 1:关闭
            "info": "商家当日不营业,请选择其他时间"  #(String) 描述
            "timelist": [
                {
                    "date_type_tip": "立即送达", # (String)类型: 包含立即送达和指定时间两种
                    "view_time": "大约18:10送达", # (String)预计送达时间
                    "unixtime": 0, # (Int)预计送达时间对应的时间戳
                    "view_shipping_fee": "" # (String)配送费
                },
                {
                    "date_type_tip": "指定时间", # (String)类型: 包含立即送达和指定时间两种
                    "view_time": "20:50", # (String)预计送达时间
                    "unixtime": 1513687800,  # (Int)预计送达时间对应的时间戳
                    "view_shipping_fee": "" # (String)配送费
                },
                {...}
            ]
        },
        {...}
    ]

取消订单

接口说明

功能描述
根据订单ID取消下单
接口地址
https://openapi.waimai.meituan.com/openapi/v2/order/cancel
method
POST
请求体
x-www-form-urlencoded
返回值
Json

业务参数

参数名 类型 是否必填 示例值 描述
order_id long 6045282297615018 订单号

调用成功时的返回数据

{
    "code": 0,
    "msg": "调用成功",
    "errorInfo": { # code 非0有效
    "failCode":"12003", #(String) 12003:订单已取消,无需重复操作 12004:取消订单系统异常  12005:由于业务规则限制,订单不允许取消 12006:订单所属用户id不匹配  12007:当前订单不符合取消的条件(处于申请退款中、全城送等)  12008:订单已经取消或者完成/商家已接单,用户不能取消订单/商家接单超1分钟或者骑手已取餐  12009:骑手已接单 或 该配送方式不支持退款 12010:货到付款订单不能取消
    "name":"订单已取消,无需重复操作",
    "description":""
  },
    "data": null
}

订单列表

接口说明

功能描述
根据用户信息查询用户订单列表
接口地址
https://openapi.waimai.meituan.com/openapi/v1/order/list
method
POST
请求体
x-www-form-urlencoded
返回值
Json

业务参数

参数名 类型 是否必填 示例值 描述
cursor String abcdefg 获取下一页内容的游标. 返回数据中hasMore为true时, 会返回请求下一页的游标.使用回传的游标, 可以查询下一页信息

调用成功时的返回数据

{
    code: 0,
    msg: null,
    errorInfo: null,
    data: {
        hasMore: true, #(Boolean) 是否有下一页
        cursor: abcdefg, #(String) 下一页请求的游标(如果有下一页)
        openOrderDetails : [ #(Object[]) 订单信息
            {
                order_id: 6045271921943779, #(Long) 订单ID
                order_time: 1509522086, #(Int) 下单时间
                wm_order_pay_type: 2, #(Int) 付款方式固定传2: 在线支付
                pay_status: 2, #(Int) 订单支付状态 1:待付款 2:付款中 3:付款成功 4:付款失败 5:申请退款 6:确认退款 7:拒绝退款 8:退款成功 9:退款失败
                total: 22, #(Double) 订单总金额
                original_price: 22, #(Double) 订单原价
                shipping_fee: 1, #(Double) 配送费
                box_total_price: 0, #(Double) 餐盒费
                night_shipping_fee: 0, #(Double) 夜间配送费
                status: 1, #(Int) 订单状态 1:提交订单 2:向餐厅推单 4:已接单 6:正在取餐(废弃) 7:配送中(废弃) 8:已完成 9:取消
                remark: "", #(String) 订单备注
                is_pre_order: 0, #(Int) 是否是预订单
                has_been_invoiced: 0, #(Int) 是否需要发票
                invoice_title: "", #(String) 发票抬头
                invoice_taxpayer_id: "", #(String) 纳税人识别号
                ctime: 1509522086, #(Int) 订单创建时间
                utime: 1509522086, #(Int) 订单最近更新时间
                longitude: 116487451, #(Int) 提单经度
                latitude: 40008269, #(Int) 提单纬度
                address_longitude: 116487451, #(Int) 配送地址经度
                address_latitude: 40008269, #(Int) 配送地址纬度
                city_id: 110100, #(Int) 城市编码
                user_id: 2000000213, #(Long) 用户ID
                user_phone: "18201010600", #(String) 用户手机号
                estimate_arrival_time: 1509525086, #(Int) 预计到达时间
                poi_name: "测试专用涮肉店", #(String) 商家名称
                wm_poi_id: 604527, #(Long) 商家ID
                recipient_phone: "18201010600", #(String) 收货人手机号
                recipient_address: "北京市朝阳区xxxxxx", #(String) 收货人地址
                recipient_name: "张三", #(String) 收货人姓名
                channel: "sqt", # (String) 该订单所属渠道
                logistics_status: 0, #(Int) 配送状态 0:默认值 1:已推送给配送方 10:已抢单 20:已取餐 40:已送达 100:已取消
                food_list: [ #(Object[]) 菜品明细
                    {
                        food_id: 130331086, #(Long) 菜品库存量ID(sku_id)
                        spu_id: 10294167, #(Long) 菜品ID
                        name: "刷虾", #(String) 菜品名称
                        price: 22, #(Double) 菜品金额
                        original_price: 22, #(Double) 原始金额
                        count: 1, #(Int) 数量
                        spec: "", #(String) 规格
                        box_num: 1, #(Double) 餐盒数量
                        box_price: 0 #(Double) 餐盒价格
                        attrIds: [1,2], #(List<Integer>) 对应属性ID
                        attrValues: ["常温","xxx"],#(List<String>) 对应属性描述
                    },
                    {...}
                ]
            } ,
            { ... }
        ]
    }   
}

订单详情

接口说明

功能描述
根据订单ID和用户手机号查询订单详情
接口地址
https://openapi.waimai.meituan.com/openapi/v1/order/query
method
POST
请求体
x-www-form-urlencoded
返回值
Json

业务参数

参数名 类型 是否必填 示例值 描述
order_id long 6045282297615018 订单号

调用成功时的返回数据

{
    code: 0,
    msg: null,
    errorInfo: null,
    data: {
        order_id: 6045271921943779, #(Long) 订单ID
        order_time: 1509522086, #(Int) 下单时间
        wm_order_pay_type: 2, #(Int) 付款方式 固定传2: 在线支付
        pay_status: 2, #(Int) 订单支付状态 1:待付款 2:付款中 3:付款成功 4:付款失败 5:申请退款 6:确认退款 7:拒绝退款 8:退款成功 9:退款失败
        total: 22, #(Double) 订单总金额
        original_price: 22, #(Double) 订单原价
        shipping_fee: 1, #(Double) 配送费
        box_total_price: 0, #(Double) 餐盒费
        night_shipping_fee: 0, #(Double) 夜间配送费
        status: 1, #(Int) 订单状态 1:提交订单 2:向餐厅推单 4:已接单 6:正在取餐(废弃) 7:配送中(废弃) 8:已完成 9:取消
        remark: "", #(String) 订单备注
        is_pre_order: 0, #(Int) 是否是预订单
        has_been_invoiced: 0, #(Int) 是否需要发票
        invoice_title: "", #(String) 发票抬头
        invoice_taxpayer_id: "", #(String) 纳税人识别号
        ctime: 1509522086, #(Int) 订单创建时间
        utime: 1509522086, #(Int) 订单最近更新时间
        longitude: 116487451, #(Int) 提单经度
        latitude: 40008269, #(Int) 提单纬度
        address_longitude: 116487451, #(Int) 配送地址经度
        address_latitude: 40008269, #(Int) 配送地址纬度
        city_id: 110100, #(Int) 城市编码
        user_id: 2000000213, #(Long) 用户ID
        user_phone: "18201010600", #(String) 用户手机号
        estimate_arrival_time: 1509525086, #(Int) 预计到达时间
        poi_name: "测试专用涮肉店", #(String) 商家名称
        wm_poi_id: 604527, #(Long) 商家ID
        recipient_phone: "18201010600", #(String) 收货人手机号
        recipient_address: "北京市朝阳区xxxxxx", #(String) 收货人地址
        recipient_name: "张三", #(String) 收货人姓名
        courier_name: null, #(String) 配送员姓名
        courier_phone: null, #(String) 配送员电话
        courier_ava: null, #(String) 配送员头像
        courier_longitude: 0, #(Int) 配送员当前经度
        courier_latitude: 0, #(Int) 配送员当前纬度
        channel: "sqt", # (String) 该订单所属渠道
        delivery_type: 1, #(Int) 配送类型,1:美团专送,0:非美团专送
        logistics_status: 0, #(Int) 配送状态 0:默认值 1:已推送给配送方 10:已抢单 20:已取餐 40:已送达 100:已取消
        food_list: [ #(Object[]) 菜品明细
            {
                food_id: 130331086, #(Long) 菜品库存量ID(sku_id)
                spu_id: 10294167, #(Long) 菜品ID
                name: "刷虾", #(String) 菜品名称
                price: 22, #(Double) 菜品金额
                original_price: 22, #(Double) 原始金额
                count: 1, #(Int) 数量
                spec: "", #(String) 规格
                box_num: 1, #(Double) 餐盒数量
                box_price: 0 #(Double) 餐盒价格
                attrIds: [1,2], #(List<Integer>) 对应属性ID
                attrValues: ["常温","xxx"],#(List<String>) 对应属性描述
            },
            {...}
        ],
        "discounts": [ #(Object[]) 订单优惠信息
            {
                "name": "首单立减",  #(String) 活动名称
                "info": "-¥10",  #(String) 活动信息
                "reduceFree": 10, #(String) 优惠金额
                "icon_url": "http://p0.meituan.net/xianfu/019d1bbb1310b1531e6af6172c9a5095581.png",  #(String) 活动图标url
            },
            {
                "name": "门店新客立减",
                "info": "-¥10",
                "reduceFree": 10, #(String) 优惠金额
                "icon_url": "http://p1.meituan.net/xianfu/1cc4324d7d2f59f2cccb6920b57cd0902048.png"
            }
        ]
    }
}

查询商家详情

接口说明

功能描述
根据商家POI_ID获取商家详情
接口地址
https://openapi.waimai.meituan.com/openapi/v2/poi/detailinfo
method
POST
请求体
x-www-form-urlencoded
返回值
Json
限制
未经过审核用户限制只能使用特定参数进行调用: longitude=95369826 latitude=29735952 wm_poi_id=2868090或者2868095

业务参数

参数名 类型 必填? 示例值 描述
wm_poi_id long 606737 商家ID
longitude int 116491116 用户当前经度
如果不传递,则无法计算与商家的距离,并且配送费为商家最高配送费
latitude int 40002102 用户当前纬度
如果不传递,则无法计算与商家的距离,并且配送费为商家最高配送费

调用成功时的返回数据

{
    code: 0,
    msg: null,
    errorInfo: null,
    data: {
        wm_poi_id: 604528, #(Long) 商家ID
        status: 1, #(Int) 商家营业状态 1:可配送 2:忙碌中 3:休息中
        status_desc: '', #(String) 营业状态描述
        name: '测试专用便利店', #(String) 商家名称
        pic_url: 'http: //p1.meituan.net/xianfu/cf58b542abc8e44102b8f96f97e1ac4b14336.jpg', #(String) 商家图片
        shipping_fee: 1, #(Double) 配送费
        min_price: 2, #(Double) 起送价
        wm_poi_score: 4.5, #(Double) 商家评分
        avg_delivery_time: 40, #(Int) 平均配送时间
        distance: '0.8km', #(String) 与商家的距离
        latitude: 40008295, #(Int) 商家地理位置纬度
        longitude: 116487454, #(Int) 商家地理位置经度
        delivery_type: 0, #(Int) 配送方式 1:美团配送 0:非美团配送
        invoice_support: 1, #(Int) 是否支持开发票 0:不支持 1:支持
        address: '北京市朝阳区望京东路91号', #(String) 商家地址
        call_center: '15512345678', #(String) 商家电话,可能有多个
        shipping_time: '00: 00-23: 59', #(String) 商家营业时间
        invoice_min_price: 20, #(Int) 发票起开金额
        poiUserCommentVOList: [ #(Object[]) 商家评论列表
            user_name: "张三", #(String) 用户名
            comment_score: 3, #(Double) 评分
            ship_time: 32, #(Int) 配送用时
            comment: "菜品超好,值得推荐", #(String) 评论信息
            comment_time: 1509522086 #(Int) 评论时间
        ],
        "discounts": [ #(Object[]) 门店活动信息
            {
                "info": "实际支付18元返1元商家代金券", #(String) 活动描述文案
                "icon_url": "http://p0.meituan.net/xianfu/652eea4034250563fe11b02e3219ba8d981.png", #(String) 活动图标url
            },
            {...}
        ]
    }
}

搜索建议

接口说明

功能描述
根据关键词搜索商家或菜品信息
接口地址
https://openapi.waimai.meituan.com/openapi/v1/suggest
method
POST
请求体
x-www-form-urlencoded
返回值
Json
限制
未经过审核用户限制只能使用特定参数进行调用: longitude=95369826 latitude=29735952

业务参数

参数名 类型 必填? 示例值 描述
longitude int 116491116 用户当前经度
latitude int 40002102 用户当前纬度
query string "黄焖鸡" 搜索关键词

调用成功时的返回数据

{
    code: 0,
    msg: null,
    errorInfo: null,
    data: {
        "terms": [
            "黄焖鸡" #(String) 原始搜索词
        ],
        "suggest": [ #(Object[]) 搜索建议列表
            {
                "suggest_query": "美味黄焖鸡", #(String) 搜索联想词
                "type": 0, #(Int) 类型 0:商家,1:普通联想词
                "poi_addition_info": { #(Object[]) 商家详情
                    "wm_poi_id": 461, #(Long) 商家ID
                    "status": 1, #(Int) 商家营业状态 1:可配送 2:忙碌中 3:休息中
                    "status_desc": "", #(String) 状态描述
                    "name": "美味黄焖鸡", #(String) 商家名称
                    "pic_url": "http://p1.meituan.net/xianfu/4c3d114503d1c9ef43b837383285026c44985.jpg", #(String) 商家图片
                    "shipping_fee": 4, #(Double) 配送费
                    "min_price": 15, #(Double) 起送金额
                    "wm_poi_score": 4.5, #(Double) 商家评分
                    "avg_delivery_time": 41, #(Int) 平均送达时间
                    "distance": "1.5km", #(String) 与商家的距离
                    "latitude": 39991027, #(Int) 商家纬度
                    "longitude": 116481758, #(Int) 商家经度
                    "delivery_type": 0, #(Int) 配送类型 1:美团专送,0:非美团专送
                    "invoice_support": 0 #(Int) 是否支持开发票 1:支持 0:不支持
                }
            },
            {...},
            {
                "suggest_query": "黄焖鸡", #(String) 搜索联想词
                "type": 1 #(Int) 类型 0:商家,1:普通联想词
            },
            {...}
        ]
    }
}

获取筛选栏数据集合

接口说明

功能描述
根据经纬度获取筛选栏数据
接口地址
https://openapi.waimai.meituan.com/openapi/v1/common/getFilterConditions
method
POST
请求体
x-www-form-urlencoded
返回值
Json
限制
未经过审核用户限制只能使用特定参数进行调用: longitude=95369826 latitude=29735952

业务参数

参数名 类型 必填? 示例值 描述
longitude int 116491116 用户当前经度
latitude int 40002102 用户当前纬度
navigate_type int 101065 金刚位code
first_category_type int 101085 一级品类code
second_category_type int 101119 二级品类codee

调用成功时的返回数据

{
    "code": 0,
    "msg": "调用成功",
    "errorInfo": null,
    "data": {
        "category_filter_list": [ #(Object[]) 品类列表
            {
                "code": 910, #(long) 一级品类code
                "name": "美食", #(String) 名称
                "quantity": 32, #(int) 数量
                "sub_category_list": [ #(Object[]) 一级品类下子品类列表
                    {
                        "code": 100561,  #(long) 一级品类code
                        "name": "火锅",  #(String) 名称
                        "quantity": 7,  #(int) 数量
                        "icon_url": "http://p0.meituan.net/jungle/f2b895006df1cd866d96c2fd5e902cd215622.png" #(long) icon地址
                    },
                    {...}
                ]
            },
            {...}
        ],
        "sort_type_list": [  #(Object[]) 排序列表
            {
                "code": 1,  #(long) 排序条件编码
                "name": "销量最高",   #(String) 排序条件名称
                "short_name": "销量", #(String) 排序名称短文案
                "icon_url": "http://p1.meituan.net/xianfu/51635adbb08819d5586c3e1feb0946c62052.png",  #(String) 未选择状态下图标地址
                "icon_url_click": "http://p0.meituan.net/xianfu/31c8e28240571276801a6d99c55a88f82048.png", #(String) 选中条件下图标地址
                "position": 0 #(int) 展示位置,0-导航tab,1-下拉列表
            },
            {...}
        ],
        "activity_filter_list": [  #(Object[]) 活动筛选条件列表
            {
                "group_title": "商家特色",  #(String) 筛选条件分组名称
                "support_multi_choice": 1, #(int) 该筛选条件分组是否支持多选,0:单选,1:多选
                "display_style": 0, #(int) 展示样式 0:默认的网格样式  1:列表样式  2: 滑块样式
                "items": [   #(Object[]) 分组下的活动筛选项列表
                    {
                        "code": "-3",   #(String) 筛选条件编码
                        "name": "免配送费",  #(String)  筛选条件名称
                        "icon": "",  #(String)  筛选条件图标URL
                        "remarks": ""  #(String)  筛选条件说明
                    },
                    {...}
                ]
            },
            {...}
        ]
    }
}

获取金刚位列表集合

接口说明

功能描述
根据经纬度获取筛选栏数据
接口地址
https://openapi.waimai.meituan.com/openapi/v1/common/getPrimaryCardList
method
POST
请求体
x-www-form-urlencoded
返回值
Json
限制
未经过审核用户限制只能使用特定参数进行调用: longitude=95369826 latitude=29735952

业务参数

参数名 类型 必填? 示例值 描述
longitude int 116491116 用户当前经度
latitude int 40002102 用户当前纬度

调用成功时的返回数据

{
    "code": 0,
    "msg": "调用成功",
    "errorInfo": null,
    "data": [
      {
        "code": 20, #(long) 分类编码
        "name": "超市", #(String) 名称
        "url": "https://p1.meituan.net/jungle/34262733b9fdfa95500ea619bcde07cf12197.jpg", #(String) 图片未选中状态url
        "gray_url": "https://p0.meituan.net/jungle/5ebfd9e726386a374c0cbc5ae7ea3bdf3017.png"  #(String) 图片选中状态url
      },
      {...}
    ]
}

新增&更新地址

接口说明

功能描述
新增&更新用户收获地址
接口地址
https://openapi.waimai.meituan.com/openapi/address/update
method
POST
请求体
x-www-form-urlencoded
返回值
Json
限制
未经过审核用户限制只能使用特定参数进行调用: longitude=95369826 latitude=29735952

业务参数

参数名 类型 必填? 示例值 描述
addressId long 17384 地址id(该参数存在时为更新操作)
name String 张三 收货人名称
gender int 1 性别 1:男 2:女
phone String 18900000000 手机号
address String 北京市朝阳区XXXXXX 地址
houseNumber String 308号 门牌号
longitude int 116491116 地址经度
latitude int 40002102 地址纬度

调用成功时的返回数据

{
    "code": 0,
    "msg": "调用成功",
    "errorInfo": null
}

获取用户地址列表

接口说明

功能描述
获取用户收获地址
接口地址
https://openapi.waimai.meituan.com/openapi/address/queryList
method
POST
请求体
x-www-form-urlencoded
返回值
Json

业务参数

参数名 类型 必填? 示例值 描述
wmPoiId long 17384 门店id(该参数用于判断地址是否在可配送范围内)

调用成功时的返回数据

{
    "code": 0,
    "msg": "调用成功",
    "errorInfo": null,
    "data": [
      {
        "addressId": 17384, #(long) 地址ID
        "name": "张三", #(String) 名称
        "gender": 1, #(int) 性别 1:男  2:女
        "phone": "189****0000", #(String) 手机号
        "address": "北京市朝阳区XXXXXX", #(String) 地址
        "houseNumber": "308号", #(String) 门牌号
        "latitude": 116491116, #(String) 地址纬度
        "longitude": "超市", #(String) 地址经度
        "canShipping": 1, #(int), 地址是否可配送 0:不可以  1:可以
        "addressRangeTip": "", #(String) 地址超配送范围提示
      },
      {...}
    ]
}

购物车价格计算接口

接口说明

功能描述
商品添加购物车时计算价格
接口地址
https://openapi.waimai.meituan.com/openapi/v2/shoppingcart/calculateprice
method
POST
请求体
x-www-form-urlencoded
返回值
Json

业务参数

参数名 类型 必填? 示例值 描述
longitude int 116491116 地址经度
latitude int 40002102 地址纬度
calculate_price_input json - 将calculate_price_input拼成下列结构体的json

calculate_price_input JSON

参数名 类型 必填? 示例值 描述
wmPoiId long 608686 外卖门店id
skuList object[] - 菜品SKU信息
-skuId long 131071651 菜品SKU-ID
-count int 3 菜品数量

calculate_price_input JSON样例:

{
    "skuList": [
        {
            "count": 3,
            "skuId": 131071651
        },
        {
            "count": 2,
            "skuId": 130762901
        }
    ],
    "wmPoiId": 608686
}

调用成功时的返回数据

{
    "code": 0,
    "msg": "调用成功",
    "errorInfo": null,
    "data": {
        "wmPoiId": 608686,
        "totalPrice": 65,
        "originTotalPrice": 65,
        "shippingFee": 8,
        "skuInfo": [
            {
                "skuId": 131071651,
                "count": 3,
                "totalPrice": 45,
                "originTotalPrice": 45
            },
            {
                "skuId": 130762901,
                "count": 2,
                "totalPrice": 20,
                "originTotalPrice": 20
            }
        ]
    }
}

SDK接入

美团外卖SDK是为了方便开发者快速接入美团外卖的服务,提供的原生 SDK(支持iOS与Android),开发者可以快速地将美团外卖业务集成到自己的移动APP中。

Android 接入

美团外卖开放平台IOS SDK是基于美团C端开放平台API的客户端封装,demo中提供了调用各个接口示例代码,相关调用可直接参考demo。Android SDK 下载

IOS 接入

美团外卖开放平台IOSSDK是基于美团C端开放平台API的客户端封装,示例是基于Objective-C进行书写的,与本文档一起提供Demo是使用Swift开发的,Swift相关调用可以直接参考Demo。IOS SDK 下载

附录

网关错误码

响应failCode码 含义
10001 参数传递不完整
10002 接口被限流
11007 每分钟接口调用次数过高
11008 每天接口调用次数过高
14002 access_token无效
14003 用户取消了授权,需要引导用户重新授权绑定
14004 应用无权访问
14006 open_id无效,需要引导用户重新授权绑定,生成有效的open_id

常见问题

3个工作日内,可以审核通过。

3个

目前暂时不支持

出于风控安全考虑,可能被识别为爬虫

请联系对接的商务,接入红包功能。

目前数据功能暂未上线。