# 取消配送单
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南。
接口英文名:cancelLocalOrder
该接口用于取消配送单。
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/cgi-bin/express/local/business/order/cancel?access_token=ACCESS_TOKEN
# 云调用
- 本接口不支持云调用。
# 第三方调用
本接口支持第三方平台代商家调用。
该接口所属的权限集 id 为:51、71
服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。
# 2. 请求参数
# 查询参数 Query String Parameters
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| access_token | string | 是 | 接口调用凭证,可使用 access_token、authorizer_access_token |
# 请求体 Request Payload
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| shopid | string | 是 | 商家id, 由配送公司分配的appkey |
| shop_order_id | string | 是 | 唯一标识订单的 ID,由商户生成 |
| delivery_id | string | 是 | 快递公司ID |
| waybill_id | string | 否 | 配送单id(顺丰同城必填) |
| cancel_reason_id | number | 是 | 取消原因Id。1表示暂时不需要邮寄;2表示价格不合适;3表示订单信息有误,重新下单;4表示骑手取货不及时;5表示骑手配送不及时;6表示其他原因( 如果选择6,需要填写取消原因,否则不需要填写 ) |
| cancel_reason | string | 是 | 取消原因 |
| shop_no | string | 是 | 商家门店编号,如果只有一个门店,闪送shop_no必填,值为店铺id |
| delivery_sign | string | 是 | 用配送公司提供的appSecret加密的校验串,见注意事项 |
# 3. 返回参数
# 返回体 Response Payload
| 参数名 | 类型 | 说明 |
|---|---|---|
| resultcode | number | 运力返回的错误码 |
| resultmsg | string | 运力返回的错误描述 |
| deduct_fee | number | 扣除的违约金(单位:元),精确到分 |
| desc | string | 说明 |
# 4. 注意事项
调用本接口可向配送公司请求取消配送单,各家取消规则如下:
- 顺丰同城急送:配送完成前任意节点可取消配送单
- 闪送:配送完成前任意节点可取消配送单
- 美团配送:配送完成前任意节点可取消配送单
- 达达:骑手取货之前可取消配送单
# 其他说明
# cancel_reason_id 取消原因Id的合法值
| 值 | 说明 |
|---|---|
| 1 | 暂时不需要邮寄 |
| 2 | 价格不合适 |
| 3 | 订单信息有误,重新下单 |
| 4 | 骑手取货不及时 |
| 5 | 骑手配送不及时 |
| 6 | 其他原因( 如果选择6,需要填写取消原因,否则不需要填写 ) |
# 商家接入准备
- 小程序进行微信认证
- 开通事件推送,设置事件地址:登录小程序后台,开发->开发设置->消息推送->启用
- 消息加密方式使用安全模式,数据格式选JSON
- 如果授权给第三方,则不需要步骤2
- 在配送公司注册账号,并在小程序后台进行授权绑定
# 名称解释
- appkey: 一般为商家在登录配送公司开放平后分配的相应的appkey值
- AppSecret: 一般为商家在登录配送公司开放平后分配的相应的秘钥
- shopid:微信平台字段,对应配送公司的appkey
- shop_no:商家对不同门店进行的编号,需要在配送公司系统有过登记,比如商家自己门店系统中有100个门店,编号是1-100,在顺丰同城的系统中有登记过这100个门店,且在顺丰同城登记的编号也是1-100,那么下单的时候传shop_no=1,就是编号为1 的门店下的配送单
- shop:下单请求的一个字段,商家信息,会展示到物流通知消息中,如下图所示
- 下单请求的取货码和收货码:取货码是指骑手在商家这里取货时,商家出示取货码,骑手才能完成取货;收货码指骑手送达给用户时,用户出示收货码,骑手才算配送完成。商家可在配送公司开放平台设置是否需要开启取货码和收货码
# 调用api接口说明
- 编码方式:UTF-8
- 数据格式:JSON
- 提交方式:POST
- 下单需要使用绑定的shopid和AppSecret,其中shopid即配送公司账号的appkey,AppSecret即配送公司账号对应的秘钥
- resultcode错误码和resultmsg错误描述由运力方定义,微信侧负责透传,只统一定义code=0表示成功
- 除了平台本身的加解密和签名,和订单相关的请求还需要带上运力侧签名delivery_sign,签名规则为
- 如果接口请求里有字段shop_order_id ,则delivery_sign=SHA1(shopid + shop_order_id + AppSecret),其中shopid对应运力侧的appkey,shop_order_id对应订单id,AppSecret即配送公司账号对应的秘钥
- 如果请求里没有字段shop_order_id ,则delivery_sign=SHA1(shopid + AppSecret),其中shopid对应运力侧的appkey,AppSecret即配送公司账号对应的秘钥
- 示例:shopid=“test_shop_id”,shop_order_id =“test_shop_order_id”, AppSecret=“test_app_secrect”,则delivery_sign=“a93d8d6bae9a9483c1b1d4e8670e7f6226ec94cb”
# 5. 代码示例
请求示例
{
"shopid": "123456",
"shop_order_id": "123456",
"waybill_id": "123456",
"delivery_id": "123456",
"cancel_reason_id": 1,
"cancel_reason": "",
"delivery_sign": "123456",
"shop_no": "shop_no_111"
}
返回示例
{
"resultcode": 0,
"resultmsg": "ok",
"deduct_fee": 5,
"desc": "blabla"
}
# 6. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| -1 | system error | 系统繁忙,此时请开发者稍候再试 |
| 930555 | 微信平台系统错误 | |
| 930556 | 配送公司超时 | |
| 930557 | 配送公司系统错误 | |
| 930558 | 配送公司逻辑错误 | |
| 930559 | openid无效 | |
| 930560 | 未绑定的商户号 | |
| 930561 | 参数错误 | |
| 930562 | 配送单已经存在 | |
| 930563 | 配送单不存在 | |
| 930564 | 调用无配额 | |
| 930565 | 配送单已结束 | |
| 9300535 | shop字段商品缩略图 url、商品名称为空或者非法,或者商品数量为0 |
# 7. 适用范围
本接口暂未明确可调用账号类型,或在业务中根据调用传参自行确定是否可调用,请以实际调用情况为准。