Mission Express V2 API
Mission Express V2 API 接口文档
V2-only 正式接口说明。本文档以 https://v2-api.missionexpress.ca 为唯一生产 API 基础地址,不再保留 V1 / Legacy API 说明。
概览
本文档用于 Mission Express / Mission Rush / Mission Go 的 V2 API 集成说明,覆盖模块开关、下单、报价、支付、退款、Ship Parcel、Consolidation、Intercity Hitch 和司机端状态流转。
基础地址
https://v2-api.missionexpress.ca/index.php?s=/api/post/missionrush/{action}/index.php?s=/api/post/hitch/{action}application/x-www-form-urlencoded除文件下载、图片和外部跳转外,V2 App API 默认使用 HTTP POST。
鉴权
V2 App 接口以登录后的 user_id + token 或 rider_id + token 识别身份。后台管理接口不建议放入公开 API 文档。
| 场景 | 必传字段 | 说明 |
|---|---|---|
| Mission Rush 用户端 | user_id, token | 客户下单、订单、钱包、退款、地址相关接口。 |
| Mission Go 司机端 | rider_id, token | 司机上线、接单、确认取件、确认送达。 |
| 公开配置接口 | 按接口要求 | 如模块状态、部分价格配置可不强制登录,但上线前建议逐项确认。 |
curl -X POST "https://v2-api.missionexpress.ca/index.php?s=/api/post/missionrush/myOrders" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "user_id=14&token=USER_TOKEN&page=1&list_rows=20"
统一响应格式
code = 1 表示成功;code = 0 或其他值表示失败。错误信息以 msg 为准。
{
"code": 1,
"msg": "ok",
"time": 1779227065,
"data": {}
}
/index.php?s=/api/post/missionrush/getModuleStatus模块状态 / getModuleStatus
用于 App 首页或功能入口判断模块是否可用。
| 字段 | 类型 | 说明 |
|---|---|---|
| module_key | string | 可选;为空时返回全部模块。 |
| status | string | enabled、maintenance、disabled。 |
| message | string | 维护或停用时给用户显示的提示。 |
{
"code": 1,
"data": {
"modules": {
"send": {"status": "enabled"},
"food_pickup": {"status": "maintenance"},
"ship_parcel": {"status": "enabled"}
}
}
}
/index.php?s=/api/post/missionrush/getPricingConfig价格配置 / getPricingConfig
返回 Mission Rush 当前价格策略,App 端用于展示政策说明、Ship Parcel 上门取件费等。
| 字段 | 类型 | 说明 |
|---|---|---|
| group | string | 可选;建议传 missionrush。 |
| missionrush_pickup_fixed_fee_amount | number | 上门取件费配置。 |
| ship_parcel_pickup_fee_amount | number | Ship Parcel 使用的上门取件费。 |
group=missionrush
订单接口
订单列表用于 Mission Rush Orders 页面,返回 Direct / Cargo / Hitch / Consolidation / Ship Parcel 等统一订单行。
| 接口 | 路径 | 说明 |
|---|---|---|
| myOrders | /api/post/missionrush/myOrders | 我的订单列表,支持分页和状态分组。 |
| orderSnapshots | /api/post/missionrush/orderSnapshots | 订单快照 / 状态快速刷新。 |
| submitOrderReview | /api/post/missionrush/submitOrderReview | 提交订单评价。 |
POST https://v2-api.missionexpress.ca/index.php?s=/api/post/missionrush/myOrders
user_id=14&token=USER_TOKEN&page=1&list_rows=20&tab=in_progress
Send / Cargo
Send 为城市快递;Cargo 为大件 / 货运取送。距离费用应以后台路线计算为准,不以前端直线距离为准。
| 模块 | 接口 | 说明 |
|---|---|---|
| Send Quote | getDirectOrderQuote | 创建前获取 Send 报价。 |
| Send Pay | createPaidDirectOrder | Square / Apple Pay / Google Pay / saved card 支付后创建订单。 |
| Send Wallet Pay | createBalancePaidDirectOrder | 余额支付 Send 订单。 |
| Cargo Pay | createPaidCargoOrder | Square / saved card 支付后创建 Cargo 订单。 |
| Cargo Wallet Pay | createBalancePaidCargoOrder | 余额支付 Cargo 订单。 |
Food Pickup / Grocery Pickup
Food Pickup 和 Grocery Pickup 共享直送履约体系,但入口、商家列表和订单类型不同。
| 接口 | 说明 |
|---|---|
foodPickupShops | 返回餐厅 / Food Pickup 商家列表。 |
groceryPickupShops | 返回 Grocery Pickup 商家列表。 |
createPaidDirectOrder | 提交时通过 order_type / payload 区分 Food、Grocery、Send。 |
Ship Parcel / 寄包裹
Ship Parcel 是 V2 的正式模块,当前支持 Canada Post 报价、后台报价保存、支付、Label / Tracking 状态返回。
| 接口 | 路径 | 说明 |
|---|---|---|
| getShipParcelRates | /api/post/missionrush/getShipParcelRates | 实时获取 Canada Post 报价;Purolator 可作为后续扩展。 |
| createShipParcelQuoteRequest | /api/post/missionrush/createShipParcelQuoteRequest | 创建 Ship Parcel 报价请求 / 订单草稿。 |
| getShipParcelQuoteStatus | /api/post/missionrush/getShipParcelQuoteStatus | 查询报价、支付、tracking、label 状态。 |
| getShipParcelPaymentQuote | /api/post/missionrush/getShipParcelPaymentQuote | 进入支付页前获取应付金额和 line_items。 |
| createPaidShipParcelOrder | /api/post/missionrush/createPaidShipParcelOrder | 支付 Ship Parcel 订单。 |
请求字段重点
| 字段 | 类型 | 说明 |
|---|---|---|
| from / to | object/json string | 发件地与收件地。 |
| packages | array/json string | 包裹数组:weight_kg、length_cm、width_cm、height_cm。 |
| carrier_options | object/json string | 签名、保价等承运商选项。 |
| handoff_method | string | dropoff 或 pickup_from_address。 |
| pickup_fee_payer | string | customer 或 platform。 |
Label / Tracking 字段
| 字段 | 说明 |
|---|---|
| tracking_no | 承运商 tracking number。 |
| label_url | Label PDF 或图片地址。 |
| carrier_label_status | ready、checking_config、generated、failed、pending_api_integration 等。 |
| carrier_label_error | Label 失败原因。 |
Intercity Hitch / 顺路带
Hitch 使用独立控制器路径 /api/post/hitch,适合城市间固定路线、司机发布行程和客户匹配下单。
| 接口 | 路径 | 说明 |
|---|---|---|
| cities | /api/post/hitch/cities | 城市列表。 |
| routes | /api/post/hitch/routes | 开通路线与价格。 |
| trips | /api/post/hitch/trips | 司机发布的顺路行程。 |
| quoteOrder | /api/post/hitch/quoteOrder | 客户下单前报价。 |
| createPaidHitchOrder | /api/post/hitch/createPaidHitchOrder | 支付后创建 Hitch 订单。 |
Consolidation / 中国集运
Consolidation 包含客户注册、仓库地址、包裹预报、包裹列表、集运订单、最终报价、支付,以及客户端价目表展示。
| 接口 | 路径 | 说明 |
|---|---|---|
| createConsolidationRegistration | /api/post/missionrush/createConsolidationRegistration | 创建 / 更新集运客户资料。 |
| consolidationWarehouses | /api/post/missionrush/consolidationWarehouses | 返回可用仓库、收货地址和入库信息。 |
| getConsolidationDashboard | /api/post/missionrush/getConsolidationDashboard | 返回集运 Dashboard 汇总、客户编号、包裹状态等。 |
| getConsolidationPriceList | /api/post/missionrush/getConsolidationPriceList | 返回公开线路价目表。只用于展示,不用于 App 预估扣费。 |
| createConsolidationPackage | /api/post/missionrush/createConsolidationPackage | 提交包裹预报 / 国内快递单号。 |
| listConsolidationPackages | /api/post/missionrush/listConsolidationPackages | 返回包裹列表和状态。 |
| createConsolidationOrder | /api/post/missionrush/createConsolidationOrder | 创建集运订单 / 打包申请。 |
| listConsolidationOrders | /api/post/missionrush/listConsolidationOrders | 返回集运订单列表。 |
| getConsolidationOrderPaymentQuote | /api/post/missionrush/getConsolidationOrderPaymentQuote | 获取集运订单最终待支付报价。 |
| payConsolidationOrderByBalance | /api/post/missionrush/payConsolidationOrderByBalance | 使用余额支付集运订单。 |
getConsolidationPriceList / 价目表接口
/index.php?s=/api/post/missionrush/getConsolidationPriceList该接口给 Mission Rush App 展示集运线路价格说明。它不会根据包裹预报生成预估费用,也不会生成待支付金额。
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| city_code / destination_city_code | string | 否 | 目的城市代码,例如 MOOSE_JAW。为空时返回全部可见线路。 |
| transport_type / shipping_method | string | 否 | air 或 sea。 |
| company_id | int | 否 | 集运公司 ID。为空时返回全部可见集运公司。 |
返回字段重点
| 字段 | 说明 |
|---|---|
| company_name / company_code | 集运公司名称与编码。 |
| transport_type / transport_type_name | 运输方式:空运 / 海运。 |
| destination_city_code / destination_city_name | 目的城市。 |
| station_id / station_name | 代收点 / 自提点。 |
| route_code | 线路编码,来自后台覆盖规则。 |
| price_rules.general | 普货价目表:首重、续重、报关费/票、体积重除数。 |
| price_rules.sensitive | 敏感货价目表:首重、续重、报关费/票、体积重除数。 |
| volume_divisor | 体积重除数。不同集运公司、不同线路可以不同,例如 5000 或 6000。 |
| billing_notice | 最终费用说明。 |
curl -X POST "https://v2-api.missionexpress.ca/index.php?s=/api/post/missionrush/getConsolidationPriceList" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "city_code=MOOSE_JAW"
{
"code": 1,
"msg": "ok",
"data": {
"list": [
{
"company_id": 2,
"company_name": "广州奕宁达国际供应链有限公司",
"transport_type": "air",
"transport_type_name": "空运",
"destination_city_code": "MOOSE_JAW",
"destination_city_name": "Moose Jaw",
"station_name": "Lillooet",
"route_code": "AIR_YININGDA_TO_MOOSE_JAW",
"price_rules": {
"general": {
"goods_type_name": "普货",
"currency": "CNY",
"first_weight_kg": 0.5,
"first_fee": 34,
"additional_unit_kg": 1,
"additional_fee": 68,
"customs_fee_per_ticket": 35,
"volume_divisor": 6000
},
"sensitive": {
"goods_type_name": "敏感货",
"currency": "CNY",
"first_weight_kg": 0.5,
"first_fee": 37,
"additional_unit_kg": 1,
"additional_fee": 74,
"customs_fee_per_ticket": 45,
"volume_divisor": 6000
}
}
}
],
"billing_notice": "以下价格仅作为价目表展示,包裹预报阶段不计算预估费用;最终费用以集运公司入库称重、量方和报价为准。"
}
}
钱包与支付
V2 支付支持 Square card、saved card、Apple Pay、Google Pay、account balance 和 mixed payment。iOS 只显示 Apple Pay,Android 只显示 Google Pay。
| 接口 | 说明 |
|---|---|
| listWalletPaymentMethods | 列出用户 saved cards。 |
| createWalletTopUp | Square source id 充值。 |
| createWalletTopUpWithSavedCard | saved card 充值。 |
| createPaidDirectOrder / createPaidCargoOrder / createPaidShipParcelOrder | 外部支付创建订单。 |
| createBalancePaidDirectOrder / createBalancePaidCargoOrder / payChinaOrderByBalance | 余额支付。 |
退款
退款应先调用预览接口,确认是否允许退款、可退金额、扣费规则,再提交退款申请。
| 接口 | 路径 | 说明 |
|---|---|---|
| refundPreview | /api/post/missionrush/refundPreview | 返回 can_refund、refund_amount、rule、message。 |
| requestRefund | /api/post/missionrush/requestRefund | 提交退款请求;符合即时退款规则时可直接处理 Square / balance refund。 |
| 规则 | 说明 |
|---|---|
| already_refunded | 订单已退款。 |
| completed_no_refund | 已完成订单不可退款。 |
| no_refund_after_arrival | 司机已到达后不可退款。 |
| full_refund | 符合全额退款。 |
| base_fee_deducted | 司机已接单后取消,按规则扣除基础费用。 |
Mission Go 司机端
司机端接口用于在线状态、抢单/接单、确认到达、拍照取件、确认送达。Direct Pickup 和 Cargo 应限制完成一单后再接新单;Ship Parcel Online 为独立模块,可连续接单。
| 规则 | 说明 |
|---|---|
| Direct Pickup | 需要完成当前 Direct 订单后才能接下一单。 |
| Cargo | 需要完成当前 Cargo 订单后才能接下一单。 |
| Ship Parcel | 独立在线模块,可连续接单,不受 Direct / Cargo 当前单影响。 |
| Confirm Pickup GPS | 建议执行 50m 经纬度校验;校验失败时允许司机拍照继续,并记录 override。 |
状态参考
| 字段 | 值 | 说明 |
|---|---|---|
| pay_status | 0 / 1 / 2 | 未支付 / 支付中或待确认 / 已支付。 |
| payment_status | unpaid / paid / completed | Ship Parcel / Consolidation 等字符串支付状态。 |
| refund_status | 0 / 1 / 2 或 none/pending/refunded/failed | 不同表可能使用数字或字符串;前端应兼容。 |
| post_order.status | 1 / 2 / 3 / 10 | 待取件 / 待揽收 / 配送中 / 已完成。 |
| ship_parcel.status | pending_quote / quoted / paid / shipped / delivered / cancelled | Ship Parcel 业务状态。 |
| quote_status | manual_pending / quoted / expired | 报价状态。 |
错误码与错误信息
V2 目前主要以 code=0 + msg 返回业务错误。客户端应直接展示可读 msg,并记录原始响应用于排查。
| msg 示例 | 说明 |
|---|---|
| Invalid token | 登录已失效或 token 不匹配。 |
| Order number is required | 缺少订单号。 |
| Order not found | 订单不存在或不属于当前用户。 |
| Missing square_source_id | 外部支付缺少 Square source id。 |
| Square payment not completed | Square 未返回完成状态。 |
| Package ... is over Canada Post single-parcel limit: 30 kg | Ship Parcel 单件超过 Canada Post 限制。 |
发布检查
- 确认所有页面只写
https://v2-api.missionexpress.ca,不再出现 V1 域名。 - 确认
api-docs-cn.html、api-docs-en.html、api-docs-index.html三个文件同步上传。 - 确认主站导航 API Docs 指向
api-docs-index.html。 - 正式公开前,再用当前服务器代码 grep 一次 public function,确保接口名与线上一致。
