订单写入预约单,状态为已支付、待接单。技师在技师端「待接单」里点接单。人员列表在 mch/book/worker/index。技师必须已绑定该服务项目,否则看不到未指定人员的单。
out_order_no 重复提交不会生成第二张单。技师点接单之后不能再通过开放接口取消。
基础地址:/web/index.php?r=api/open/worker/{动作}。系统级请求头与 签名与密钥 相同。
| 动作 | 方法 | 作用 |
|---|---|---|
goods | GET | 本店已上架的服务项目 |
workers | GET | 可接单技师;可选 goods_id 过滤 |
order | POST | 发单 |
query | GET | 查状态 |
cancel | POST | 技师未接单时取消 |
返回最多 100 条已上架项目:id、name、price、mch_id。
| 名称 | 必须 | 说明 |
|---|---|---|
goods_id | 否 | 只返回会做该服务项目的技师 |
返回:id、name、mobile、mch_id。
| 名称 | 类型 | 必须 | 说明 |
|---|---|---|---|
out_order_no | string | 是 | 外部单号,4~40 位;幂等键 |
goods_id | int | 是 | 服务项目 ID |
worker_id | int | 否 | 技师 ID;0 或不传 = 进抢单池 |
fee | number | 是 | 订单金额,>0 |
service_time | string/int | 是 | 上门时间:2026-10-26 14:00:00 或 Unix 秒 |
content | string | 否 | 服务说明 / 备注 |
customer.name | string | 是 | 客户姓名 |
customer.mobile | string | 是 | 客户电话 |
customer.address | string | 是 | 上门地址 |
customer.lng / lat | string | 否 | 经纬度,便于技师看距离 |
mch_id | int | 否 | 商家范围 |
{
"out_order_no": "HS20261026001",
"goods_id": 18,
"worker_id": 0,
"fee": 128,
"service_time": "2026-10-26 14:00:00",
"content": "空调清洗一台",
"customer": {
"name": "王女士",
"mobile": "13800000000",
"address": "深圳市南山区某某路 1 号",
"lng": "113.93",
"lat": "22.54"
}
}
| 字段 | 说明 |
|---|---|
order_no / out_order_no | 本系统单号 / 外部单号 |
worker_id | 指定技师,0 表示抢单 |
is_confirm | 1=技师已接单 |
status_label | 待技师抢单 / 待该技师接单 / 技师已接单 / 已取消 |
in_grab_pool | 是否仍在抢单池 |
fee / addtime | 金额 / 创建时间 |
Query 传 out_order_no 或 order_no,返回结构同发单 data。
{
"out_order_no": "HS20261026001"
}
技师已接单(is_confirm=1)时返回:「技师已接单,不能取消」。