更新:2026-11-05。适用:用户、商家和骑手 App 的外卖订单详情。
请求参数保持不变,均需携带 token 请求头。
| 使用端 | GET 接口 | 订单号参数 |
|---|---|---|
| 用户、商家 | /system/order/getorderxq |
ddid |
| 骑手 | /system/orderQsOprate/getOrderDetial |
ddId |
两个接口在 data 中增加 invoiceChoice,类型为字符串或 null。
| invoiceChoice | 页面显示 |
|---|---|
PAPER |
纸本发票 |
PHONE_BARCODE |
手机条码载具 |
CITIZEN |
自然人凭证载具 |
MEMBER |
会员发票 |
LOVE_CODE |
捐赠发票 |
COMPANY |
公司发票 |
null、空值或未识别值 |
暂无发票信息 |
页面显示“发票类型:纸本发票”等文案,标题和类型名称使用客户端现有国际化机制。
下面只展示与本次接入相关的字段,订单详情原有字段保持不变。
{
"code": 200,
"msg": "操作成功",
"data": {
"id": 1001,
"ddId": "991793757396125",
"invoiceChoice": "PAPER"
}
}
data.invoiceChoice,不需要额外调用发票详情接口获取类型。MEMBER 表示会员选择,当前流程实际开立纸本;不能仅凭名称判断为电子载具票。canPrintInvoice 和 invoicePrintCount,不要根据 invoiceChoice 单独开放打印。POST /system/orderShOprate/createOrder(请求头 token)在 JSON 顶层传 invoiceChoice,与 paymentMethod 同级,不能放在 items 内。其他下单必填参数保持不变。
| 选择 | 配套参数 |
|---|---|
PAPER |
无 |
PHONE_BARCODE |
carrierNum:手机条码 |
CITIZEN |
carrierNum:自然人凭证号码 |
MEMBER |
无 |
LOVE_CODE |
loveCode:捐赠码 |
COMPANY |
buyerUbn:8位统编;buyerEmail:买方邮箱;buyerName:公司名称 |
例如,现金纸本订单在原请求顶层增加 "invoiceChoice": "PAPER";公司发票还需带对应的买方资料。载具类型由后端根据 invoiceChoice 确定,无需传 carrierType。
不传或传空字符串时不记录发票选择;不支持开票的门店选择纸本可正常下单,但不会生成电子发票意图,详情类型仍为空。其他类型在门店不支持开票时返回业务错误。商家下单不支持把顾客发票资料保存为商家默认抬头。下单响应结构不变,保存的选择从本页订单详情接口读取;商家现金单在创建提交后尝试自动开票;开票可能失败或跳过,须查询发票接口确认结果,不能只凭创建成功判断已开票。
商家现金订单(paymentMethod="4")传入有效发票选择且门店支持开票时,后端在创建提交后自动尝试开票,再发送新订单通知。App 收到通知后,可调用 GET /system/orderShOprate/getInvoice?orderId=订单主键 查询结果,按原 canPrintInvoice、invoicePrintCount 等打印资格操作。小票仍通过完整 ddId 获取;发票查询用订单主键。
开票失败不影响下单或新单通知,也不代表现金已收款。未传发票选择或门店不支持开票时不会生成电子发票。非现金订单本次不增加创建即开票的行为。