商户开放接口 · v1.0 · 2026-07-25

美团外卖 H5 API

下游商户通过服务端签名获取美团外卖 H5 入口。终端用户在上游页面选品,来福按上游实时订单金额创建待支付订单;商户完成自有收款后通知来福,来福扣减商户余额并推进履约。

typeCode: MeituanWaimaiinterfaceTypeCode: mt_waimai_interface金额单位:元编码:UTF-8

1. 职责与价格

参与方职责
下游商户调用来福获取 H5 入口;使用自有系统向终端用户收款;收款成功后由服务端通知来福;接收来福异步通知。
来福权益应用鉴权、产品授权、订单承接、商户余额结算、状态管理、异步通知与退款审计。
十鹿 H5商品展示、选品和实时成交金额;选品完成后回调来福创建订单。
价格口径:H5 商品及页面价格由上游实时提供,来福不在入口接口中改写商品价格。上游回调订单金额形成订单快照;商户面向终端用户的售价和补贴策略由商户自行决定。支付确认金额必须与该笔来福订单锁定的用户应付金额一致。

callbackUrl 仅用于浏览器回跳,不表示支付成功;notifyUrl 才是来福向下游发送订单状态的服务端地址。

2. 业务流程

01 获取入口下游服务端签名调用来福,取得短时 H5 地址。
02 页面选品用户在十鹿 H5 查看实时商品和价格并提交。
03 创建待支付单十鹿回调来福;来福按真实商户授权创建 WAIT_PAY 订单。
04 收款与履约下游收款后通知来福;来福验签、扣余额并推进履约。
下游只需接入本页列出的来福接口。十鹿的创建订单回调和支付成功回调由来福内部适配,下游不得自行拼接或替换。

3. 公共约定

正式地址:https://api.laifuagi.cn

数据格式:请求与响应均使用 application/json; charset=UTF-8。金额使用十进制字符串,单位为元,保留两位小数。

OpenAPI 请求头

字段必填说明
app_id是商户后台“API 密钥 / 我的应用”生成的 AppID。
timestamp是Unix 秒级时间戳,与服务器时间偏差不得超过 5 分钟。
nonce是每次请求唯一随机串;5 分钟内不得复用。
sign是HMAC-SHA256 后使用 URL-safe Base64 编码且去除 padding。

OpenAPI 签名

签名原文 = METHOD + "\n"
         + URI + "\n"
         + timestamp + "\n"
         + nonce + "\n"
         + 原始 JSON 请求体

sign = Base64UrlWithoutPadding(
  HMAC-SHA256(appSecret, UTF8(签名原文))
)

调用入口时,METHOD 为 POST,URI 为 /openapi/v1/h5/access。JSON 的字段顺序、空格和转义必须与实际发送的原始请求体完全一致。

AppSecret 仅允许保存在下游服务端。不得放入浏览器、H5、前端 JavaScript、URL 或日志。

4. 获取美团 H5 入口

POST https://api.laifuagi.cn/openapi/v1/h5/access
Content-Type: application/json
app_id: {AppID}
timestamp: {Unix秒}
nonce: {唯一随机串}
sign: {OpenAPI签名}

{
  "typeCode": "MeituanWaimai",
  "externalUserId": "USER_10001",
  "phone": "13800138000"
}
字段必填说明
typeCode是固定传 MeituanWaimai。
phone是进入 H5 的用户手机号;用于十鹿免登入口。
externalUserId建议下游用户唯一标识,便于订单与通知关联。未传时平台按当前商户和手机号生成隔离身份。
busType否十鹿业务类型;美团外卖默认由平台配置,下游通常无需传。
modelCode否十鹿模板编码;默认由平台配置,下游通常无需传。
merchantId禁止商户身份只取 AppID 绑定关系;请求体中的值会被忽略,不能用于切换商户。

成功响应

{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "typeCode": "MeituanWaimai",
    "interfaceTypeCode": "mt_waimai_interface",
    "mode": "shiluIndependentH5",
    "h5Url": "https://{十鹿H5地址}"
  }
}

h5Url 应直接用于浏览器跳转。下游不得修改其中的签名、用户、模板或回调参数,也不得缓存为长期固定地址。

5. 下游支付确认

十鹿回调来福创建订单后,来福返回权益订单承接页。下游确认终端用户已在自有支付系统真实付款后,由服务端调用:

POST https://api.laifuagi.cn/openapi/v1/sdk/payment/notify?merchantId={商户ID}
Content-Type: application/json

{
  "merchantId": 10001,
  "orderNo": "H5202607250000001234",
  "quoteId": "",
  "amount": "100.00",
  "timestamp": "1784990000000",
  "nonce": "PAY_20260725_000001",
  "sign": "{支付通知签名}"
}
字段必填说明
merchantId是当前订单所属商户 ID;查询参数与请求体应保持一致。
orderNo是来福订单号,由订单承接结果取得。
quoteId条件必填订单存在锁价 ID 时必须原样传入;H5订单无该值时传空字符串。
amount是下游实际收款金额,单位元,两位小数;必须等于订单锁定的用户应付金额。
timestamp是毫秒时间戳字符串。
nonce是支付通知唯一随机串。
sign是按下述规则使用当前商户任一启用应用的 AppSecret 计算。

支付通知签名

payload = "merchantId=" + merchantId
        + "&orderNo=" + orderNo
        + ""eId=" + quoteId
        + "&amount=" + amount保留两位小数
        + "×tamp=" + timestamp
        + "&nonce=" + nonce

sign = SHA256_HEX(payload + "&key=" + appSecret + "&sandbox=false")

重复通知按 orderNo + sign 幂等处理,不会重复冻结余额或重复履约。验签失败、订单商户不匹配、金额不一致或余额不足时均失败关闭。

6. 来福异步通知下游

商户在后台配置 notifyUrl 后,来福以 HTTP POST 发送 JSON。通知头:

Content-Type: application/json
X-LYP-Event: ORDER_SUCCESS | ORDER_FAIL | ORDER_REFUND
X-LYP-Sign: HMAC-SHA256_HEX(apiSecret, 原始JSON请求体)

通知示例

{
  "event": "ORDER_SUCCESS",
  "orderNo": "H5202607250000001234",
  "merchantId": 10001,
  "typeCode": "MeituanWaimai",
  "orderStatus": "SUCCESS",
  "userPayAmount": 100.00,
  "merchantSettleAmount": 101.00,
  "merchantProfit": -1.00,
  "pricingMode": "h5",
  "upstreamOrderNo": "SL202607250001",
  "upstreamStatus": "PAID_NOTIFY",
  "timestamp": 1784990000000,
  "externalUserId": "USER_10001"
}

X-LYP-Sign 使用商户 SDK 的 apiSecret,不是 OpenAPI AppSecret。验签必须针对收到的原始 JSON 字节串计算,解析并重新序列化后再验签可能因字段顺序变化而失败。

事件含义下游处理
ORDER_SUCCESS订单已成功按订单号和事件幂等确认最终成功。
ORDER_FAIL订单失败或上游明确失败停止等待成功,按业务规则退款或关闭。
ORDER_REFUND退款完成核对退款金额并更新售后状态。

下游应返回纯文本 success、包含 ok 的响应,或包含业务成功码 200 的响应。非成功响应会进入重试,最多 5 次,间隔按指数递增。

7. 状态与幂等

状态说明是否终态
WAIT_PAY订单已创建,等待下游确认真实收款。否
PAID / PROCESSING支付确认已受理,正在通知上游或等待履约结果。否
SUCCESS订单成功。是
CLOSED / FAIL订单关闭或失败。是
REFUNDING退款处理中。否
REFUNDED退款完成。是
  • 获取 H5 入口不会创建订单、扣减余额或触发履约。
  • 同一上游订单按“商户 + 上游订单号”幂等,禁止跨商户复用。
  • PROCESSING 不是最终成功,下游不得提前向用户承诺履约完成。
  • 通知按 orderNo + event 幂等处理;重复通知必须返回成功,避免平台持续重试。

8. 错误处理

HTTP/业务信息原因处理建议
401 缺少必要参数OpenAPI 请求头不完整。补齐 app_id、timestamp、nonce、sign。
401 签名验证失败签名 URI、原始 JSON 或 AppSecret 不一致。记录签名原文摘要,核对换行符和请求体,不打印密钥。
403 IP不在白名单调用出口 IP 未在应用白名单。在商户后台维护固定公网出口 IP。
未授权该产品商户未开通美团外卖 H5。联系平台运营授权 MeituanWaimai。
H5入口获取失败上游配置、签名或网络异常。不要使用历史 H5 URL;保留 requestId 联系平台排查。
支付金额与订单锁价不一致支付通知金额与订单快照不同。以订单承接页或订单查询返回金额为准重新核对。

9. 上线检查

  1. 商户已审核通过、权益已开通,OpenAPI 应用启用并配置正确的 IP 白名单。
  2. 已授权 MeituanWaimai / mt_waimai_interface,且商户余额与结算规则已确认。
  3. notifyUrl 使用 HTTPS,可校验 X-LYP-Sign,并按订单号与事件幂等。
  4. 先在测试环境完成:入口获取、H5选品回调、待支付订单、支付确认、成功/失败通知、退款和余额流水核对。
  5. 正式小额验证仅在明确授权后执行;成功后立即退款并核对账务。
验收口径:获取到 H5 地址只证明入口可用。只有真实 H5 提交订单、来福支付确认、十鹿成功响应、下游通知与退款账务全部核对一致,才能称完整链路通过。