# 创建配送单

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

接口英文名:intracity_addorder

创建同城配送单,会根据门店设置的运力偏好来选择运力公司下单。如果没有设置偏好,则默认优先下单低价运力。

如有开发问题或建议,可前往微信开放社区-微信物流服务 发帖提问讨论,官方工作人员会及时回复。

# 1. 调用方式

# HTTPS 调用

POST https://api.weixin.qq.com/cgi-bin/express/intracity/addorder?access_token=ACCESS_TOKEN

# 云调用

  • 本接口不支持云调用。

# 第三方调用

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

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

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

# 2. 请求参数

# 查询参数 Query String Parameters

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

# 请求体 Request Payload

参数名类型必填说明枚举
wx_store_idstring微信门店编号-
store_order_idstring门店订单编号。同一个门店订单编号要保证唯一,相同的订单号会重入-
user_openidstring收货用户openid-
user_lngnumber收货用户地址经度-
user_lat number收货用户地址维度-
user_addressstring收货用户详细地址-
user_namestring收货用户姓名-
user_phonestring收货用户电话。11位手机号或11位带区号的固话:020-8080880-
order_seqstring订单序号。用于配送员快速寻找到匹配的商品-
verify_code_typestring验证码类型枚举值
order_detail_pathstring跳转商家订单页面路径。物流轨迹页面跳转到商家小程序的订单页面路径参数,期望向用户展示商品订单详情-
callback_urlstring订单状态回调地址。回调协议详细查看下方其他说明。-
use_sandboxnumber1:使用沙箱环境; 使用测试沙箱环境,不需要充值运费就可以生成测试订单-
cargoobject商品信息-

# Body.cargo Object Payload

商品信息

参数名类型必填说明
cargo_namestring商品名称
cargo_weightnumber商品重量,单位:克
cargo_pricenumber商品价格,单位:分
cargo_typenumber商品类型,详情见其他说明物品类型列表
cargo_numnumber商品数量
item_listobject物品列表,物品的图片和名称等

# Body.cargo.item_list Object Payload

物品列表,物品的图片和名称等

参数名类型必填说明
item_namestring物品名称
item_pic_urlstring物品图片
countnumber物品数量

# 3. 返回参数

# 返回体 Response Payload

参数名类型说明
errcodenumber错误码
errmsgstring错误信息
wx_store_idstring微信门店编号。以下字段在请求成功时返回
wx_order_idstring微信订单编号
store_order_idstring门店订单编号
service_trans_idstring配送运力
distancenumber配送距离,单位:米
trans_order_idstring运力订单号
waybill_idstring运力配送单号,是否返回取决于运力
feenumber配送费,单位:分
fetch_codestring取货码
order_seqstring取货序号

# 4. 枚举信息

# Body.verify_code_type Enum

验证码类型

枚举值描述
0不生成
1生成取货码
2生成收货码
3两者都生成

# 5. 注意事项

使用顺丰的沙箱环境环境需要固定的收件人信息(达达没有要求),收件人信息如下
收件人姓名:顺丰同城
收件人手机:13881979410 
收件地址:北京市海淀区学清嘉创大厦A座15层

# 其他说明

# 订单状态回调

# 回调协议

当订单状态发生变更时,会由微信服回调接入方的回调地址进行状态变更的通知,回调接口地址需要接入方在下单时传入,详见门店余额查询

字段 字段名 类型 是否必填 说明
appid appid string 下单小程序appid
wx_store_id 微信门店id string
wx_order_id 微信订单号 string
store_order_id 门店订单号 string
order_status 订单状态 uint32 详情看下方订单状态列表
status_change_time 订单状态变更时间 uint32 秒级时间戳格式
timestamp 消息推送时间 uint32 秒级时间戳格式
service_trans_id 运力ID string
sign 签名值 string 生成方式详见回调报文示例里的签名步骤说明

# 回调报文示例:

{
    "appid":"wx539e0b4872f19621",
    "order_status":40000,
    "service_trans_id":"DADA",
    "status_change_time":1711458532,
    "store_order_id":"sa5dadada12fd4assdsdad11s",
    "timestamp":1711458532,
    "wx_order_id":"4018734875633256960",
    "wx_store_id":"4000000000000042001",
    "sign":"a85489d9444bdd382e0de0ddca67a8ee"
}

# 签名步骤:

1.对报文的数据做预处理用=连接key和value组成键值对,按key的ascii码升序排列键值对用&链接,示例如下:

appid=wx539e0b4872f19621&order_status=40000&service_trans_id=DADA&status_change_time=1711458532&store_order_id=sa5dadada12fd4assdsdad11s&timestamp=1711458532&wx_order_id=4018734875633256960&wx_store_id=4000000000000042001

2.拼接小程序的安全token,安全token需要在下单小程序管理后台设置和获取,设置路径:开发管理->开发设置->消息推送->Token

appid=wx539e0b4872f19621&order_status=40000&service_trans_id=DADA&status_change_time=1711458532&store_order_id=sa5dadada12fd4assdsdad11s×tamp=1711458532&wx_order_id=4018734875633256960&wx_store_id=4000000000000042001&token=abcdefghi

3.对第二步中的字符串计算MD5,得到十六进制结果取小写。

to_lower(to_hex(md5(sign_str)))

签名值:a85489d9444bdd382e0de0ddca67a8ee 商家需要回复报文:

{
    "return_code":0,
    "return_msg":"OK"
}

表示应答成功,如果没有接收到正确的请求应答,微信会重试回调。

# 订单状态列表

状态类型 状态名称
10000 订单创建成功
20000 商家取消订单
20001 配送方取消订单
30000 配送员接单
40000 配送员到店
50000 配送中
60000 配送员撤单
70000 配送完成
90000 配送异常

# 物品类型列表

物品类型 类型名称
1 快餐
2 药品
3 百货
6 生鲜
8 酒品
12 文件
13 蛋糕
14 鲜花
15 数码
16 服装
17 汽配
18 珠宝
32 饮料
36 证照
55 宠物用品
56 母婴用品
57 美妆用品
58 家居建材
99 其他

# 运力列表

运力名称 运力ID
达达 DADA
顺丰同城 SFTC

# 6. 代码示例

请求示例

{
	"wx_store_id": "4000000000000042001",
	"store_order_id": "testorder123",
	"user_openid": "ozMQO0WsxkA3E56SWBGrLGQ4WVZY",
	"user_lng": "116.353093",
	"user_lat": "40.01496",
	"user_address": "北京市海淀区学清嘉创大厦A座15层)",
	"user_name": "顺丰同城",
	"user_phone": "13881979410",
	"callback_url": "https://testcallback.com",
	"use_sandbox": 1,
	"cargo": {
		"cargo_name": "榴莲披萨套餐",
		"cargo_type": 1,
		"cargo_num": 3,
		"cargo_price": 5000,
		"cargo_weight": 500"item_list":[
            {                       
                "item_name":"8寸榴莲",
                "count":1,
                "item_pic_url": "https://www.qq.com"
            },
            {              
                "item_name":"可口可乐",
                "count":2,
                "item_pic_url": "https://www.qq.com"
            }
        ]
	}
}

返回示例

{
	"errcode": 0,
	"errmsg": "ok",
	"service_trans_id": "SFTC",
	"wx_store_id": "1000000000000023002",
	"store_order_id": "testorder123",
	"distance": 2358,
	"fee": 1300,
    "trans_order_id":"JS123143DA"
}

# 7. 错误码

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

错误码错误描述
0请求成功
48001api unauthorized。原因是小程序没有获得同城配送接口权限,在小程序管理后台开通【同城配送】后即可
61007api is unauthorized to component。此小程序没有授权当前服务商调用接口权限,服务商需获得小程序的51接口权限集
934000其他逻辑错误
934001请求参数有误,详细看错误提示
934002订单已存在,且订单在处理中,请勿重复添加
934003运力ID错误
934005运力预创建订单错误
934006有在途订单,暂不能退款,请等待配送完成
934007不是在途订单
934008门店ID和APPID不匹配
934009不支持该门店所在城市
934010重复创建门店,请更换out_store_id
934011请求签名错误
934011signature is needed, please refer document for help https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/getting_started/api_signature.html。 原因是接口没有带签名验证信息,可以参照微信服务端api签名指南的指引开发,同时社区内也有同行分享的phpjava的开发实践经验。
934012appid和access_token不匹配
934013门店余额不足无法下单
934014运力公司返回了非法金额
934015余额扣减失败
934016订单不存在
934017订单处在不能被取消的状态
934018订单已取消,请勿重复操作
934019超出运力支持的配送范围
934019沙箱环境下单接口返回934019 用户超出配送范围 解决方法:使用顺丰的沙箱环境环境需要固定的收件人信息(达达没有要求) 收件人信息如下:收件人姓名:顺丰同城 收件人手机:13881979410 收件地址:北京市海淀区学清嘉创大厦A座15层
934020商品超重
934021门店不存在
934022账号类型不可以为个人账号
934023小程序类型必须为普通小程序
934999内部系统错误

# 8. 适用范围

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