# 拉取配送单信息

调试诊断

接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南

接口英文名:getLocalOrder

商家可使用本接口查询某一配送单的配送状态,便于商家掌握配送情况。

# 1. 调用方式

# HTTPS 调用

POST https://api.weixin.qq.com/cgi-bin/express/local/business/order/get?access_token=ACCESS_TOKEN

# 云调用

  • 本接口不支持云调用。

# 第三方调用

  • 本接口支持第三方平台代商家调用。

  • 该接口所属的权限集 id 为:51、71

  • 服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。

# 2. 请求参数

# 查询参数 Query String Parameters

参数名类型必填说明
access_tokenstring接口调用凭证,可使用 access_tokenauthorizer_access_token

# 请求体 Request Payload

参数名类型必填说明
shopidstring商家id, 由配送公司分配的appkey
shop_order_idstring唯一标识订单的 ID,由商户生成
shop_nostring商家门店编号, 在配送公司登记,如果只有一个门店,可以不填
delivery_signstring用配送公司提供的appSecret加密的校验串,见注意事项

# 3. 返回参数

# 返回体 Response Payload

参数名类型说明枚举
resultcodenumber运力返回的错误码-
resultmsgstring运力返回的错误描述-
order_statusnumber配送状态枚举值
waybill_idstring配送单号-
rider_namestring骑手姓名-
rider_phonestring骑手电话-
rider_lngnumber骑手位置经度, 配送中时返回-
rider_latnumber骑手位置纬度, 配送中时返回-
reach_timenumber预计还剩多久送达时间, 配送中时返回,单位秒, 已取货配送中需返回,比如5分钟后送达,填300-

# 4. 枚举信息

# Res.order_status Enum

配送状态

枚举值描述
101配送公司接单阶段——等待分配骑手,即初始状态
102配送公司接单阶段——分配骑手成功
103配送公司接单阶段——商家取消订单, 订单结束
201骑手取货阶段——骑手到店开始取货
202骑手取货阶段——取货成功
203骑手取货阶段——取货失败,商家取消订单, 订单结束
204骑手取货阶段——取货失败,骑手因自身原因取消订单, 订单结束
205骑手取货阶段——取货失败,骑手因商家原因取消订单, 订单结束
301骑手配送阶段——配送中
302骑手配送阶段——配送成功, 订单结束
303骑手配送阶段——商家取消订单,配送物品开始返还商家
304骑手配送阶段——无法联系收货人,配送物品开始返还商家
305骑手配送阶段——收货人拒收,配送物品开始返还商家
401骑手返回配送货品阶段——货品返还商户成功, 订单结束
501因运力系统原因取消, 订单结束
502因不可抗拒因素(天气,道路管制等原因)取消,订单结束

# 5. 注意事项

# 商家接入准备

  1. 小程序进行微信认证
  2. 开通事件推送,设置事件地址:登录小程序后台,开发->开发设置->消息推送->启用
  3. 消息加密方式使用安全模式,数据格式选JSON
  4. 如果授权给第三方,则不需要步骤2
  5. 在配送公司注册账号,并在小程序后台进行授权绑定

# 名称解释

  1. appkey: 一般为商家在登录配送公司开放平后分配的相应的appkey值
  2. AppSecret: 一般为商家在登录配送公司开放平后分配的相应的秘钥
  3. shopid:微信平台字段,对应配送公司的appkey
  4. shop_no:商家对不同门店进行的编号,需要在配送公司系统有过登记,比如商家自己门店系统中有100个门店,编号是1-100,在顺丰同城的系统中有登记过这100个门店,且在顺丰同城登记的编号也是1-100,那么下单的时候传shop_no=1,就是编号为1 的门店下的配送单
  5. shop:下单请求的一个字段,商家信息,会展示到物流通知消息中,如下图所示
  6. 下单请求的取货码和收货码:取货码是指骑手在商家这里取货时,商家出示取货码,骑手才能完成取货;收货码指骑手送达给用户时,用户出示收货码,骑手才算配送完成。商家可在配送公司开放平台设置是否需要开启取货码和收货码

# 调用api接口说明

  1. 编码方式:UTF-8
  2. 数据格式:JSON
  3. 提交方式:POST
  4. 下单需要使用绑定的shopid和AppSecret,其中shopid即配送公司账号的appkey,AppSecret即配送公司账号对应的秘钥
  5. resultcode错误码和resultmsg错误描述由运力方定义,微信侧负责透传,只统一定义code=0表示成功
  6. 除了平台本身的加解密和签名,和订单相关的请求还需要带上运力侧签名delivery_sign,签名规则为
  7. 如果接口请求里有字段shop_order_id ,则delivery_sign=SHA1(shopid + shop_order_id + AppSecret),其中shopid对应运力侧的appkey,shop_order_id对应订单id,AppSecret即配送公司账号对应的秘钥
  8. 如果请求里没有字段shop_order_id ,则delivery_sign=SHA1(shopid + AppSecret),其中shopid对应运力侧的appkey,AppSecret即配送公司账号对应的秘钥
  9. 示例:shopid=“test_shop_id”,shop_order_id =“test_shop_order_id”, AppSecret=“test_app_secrect”,则delivery_sign=“a93d8d6bae9a9483c1b1d4e8670e7f6226ec94cb”

# 关于 order_status 枚举值说明

  1. 最终状态包括成功状态302,失败状态: 103,203,204,205,401,501,502。
  2. 当状态更新时,我们会在关键节点给收件用户推送服务通知,告知配送状态,同一配送单常态下会收到三条通知,即【骑手已接单】、【骑手已取货,配送中】、【配送已完成】,配送异常时会下发【配送异常】服务通知。

# 不同服务通知对应的 order_status 枚举值为

服务通知 对应的order_status值
骑手已接单 102
骑手已取货,配送中 202或301
配送已完成 302
配送异常 203、204、205、303、304、305、501、502

# 6. 代码示例

请求示例

{
  "shopid": "a6c91f6f857f4d488e689xxxxx",
  "shop_order_id": "61ac7ab5d5a12c5xxxxxx",
  "shop_no": "gaga001xxx",
  "delivery_sign": "f7d21b90d8194eeab4b74ef3428xxxxxzx"
}

返回示例

{
  "errcode": 930563,
  "errmsg": "order not exists"
}

# 7. 错误码

以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。

错误码错误描述解决方案
40001invalid credential  access_token isinvalid or not latest获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口
930555微信平台系统错误
930556配送公司超时
930557配送公司系统错误
930558配送公司逻辑错误
930559openid无效
930560未绑定的商户号
930561参数错误
930562配送单已经存在
930563配送单不存在
930564调用无配额
930565配送单已结束
9300535shop字段商品缩略图 url、商品名称为空或者非法,或者商品数量为0

# 8. 适用范围

本接口暂未明确可调用账号类型,或在业务中根据调用传参自行确定是否可调用,请以实际调用情况为准。