codecamp

微信小程序 小程序使用·preAddOrder

immediateDelivery.preAddOrder

本接口应在服务器端调用,详细说明参见服务端API

预下配送单接口

请求地址

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

请求参数

属性类型默认值必填说明
access_tokenstring接口调用凭证
shopidstring商家id, 由配送公司分配的appkey
shop_order_idstring唯一标识订单的 ID,由商户生成, 不超过128字节
shop_nostring商家门店编号,在配送公司登记,美团、闪送必填
delivery_signstring用配送公司提供的appSecret加密的校验串说明
delivery_idstring配送公司ID
openidstring下单用户的openid
senderObject发件人信息,闪送、顺丰同城急送必须填写,美团配送、达达,若传了shop_no的值可不填该字段
receiverObject收件人信息
cargoObject货物信息
order_infoObject订单信息
shopObject商品信息,会展示到物流通知消息中
sub_biz_idstring子商户id,区分小程序内部多个子商户

sender 的结构

属性类型默认值必填说明
namestring姓名,最长不超过256个字符
citystring城市名称,如广州市
addressstring地址(街道、小区、大厦等,用于定位)
address_detailstring地址详情(楼号、单元号、层号)
phonestring电话/手机号,最长不超过64个字符
lngnumber经度(火星坐标或百度坐标,和 coordinate_type 字段配合使用,确到小数点后6位
latnumber纬度(火星坐标或百度坐标,和 coordinate_type 字段配合使用,精确到小数点后6位)
coordinate_typenumber0坐标类型,0:火星坐标(高德,腾讯地图均采用火星坐标) 1:百度坐标

receiver 的结构

属性类型默认值必填说明
namestring姓名,最长不超过256个字符
citystring城市名称,如广州市
addressstring地址(街道、小区、大厦等,用于定位)
address_detailstring地址详情(楼号、单元号、层号)
phonestring电话/手机号,最长不超过64个字符
lngnumber经度(火星坐标或百度坐标,和 coordinate_type 字段配合使用,确到小数点后6位
latnumber纬度(火星坐标或百度坐标,和 coordinate_type 字段配合使用,精确到小数点后6位)
coordinate_typenumber0坐标类型,0:火星坐标(高德,腾讯地图均采用火星坐标) 1:百度坐标

cargo 的结构

属性类型默认值必填说明
goods_valuenumber货物价格,单位为元,精确到小数点后两位(如果小数点后位数多于两位,则四舍五入保留两位小数),范围为(0-5000]
goods_heightnumber货物高度,单位为cm,精确到小数点后两位(如果小数点后位数多于两位,则四舍五入保留两位小数),范围为(0-45]
goods_lengthnumber货物长度,单位为cm,精确到小数点后两位(如果小数点后位数多于两位,则四舍五入保留两位小数),范围为(0-65]
goods_widthnumber货物宽度,单位为cm,精确到小数点后两位(如果小数点后位数多于两位,则四舍五入保留两位小数),范围为(0-50]
goods_weightnumber货物重量,单位为kg,精确到小数点后两位(如果小数点后位数多于两位,则四舍五入保留两位小数),范围为(0-50]
goods_detailObject货物详情,最长不超过10240个字符
goods_pickup_infostring货物取货信息,用于骑手到店取货,最长不超过100个字符
goods_delivery_infostring货物交付信息,最长不超过100个字符
cargo_first_classstring品类一级类目, 详见品类表
cargo_second_classstring品类二级类目

goods_detail 的结构

属性类型默认值必填说明
goodsArray.<Object>货物列表

goods 的结构

属性类型默认值必填说明
good_countnumber货物数量
good_namestring货品名称
good_pricenumber货品单价,精确到小数点后两位(如果小数点后位数多于两位,则四舍五入保留两位小数)
good_unitstring货品单位,最长不超过20个字符

order_info 的结构

属性类型默认值必填说明
delivery_service_codestring配送服务代码 不同配送公司自定义, 顺丰和达达不填
order_typenumber0订单类型, 0: 即时单 1 预约单,如预约单,需要设置expected_delivery_time或expected_finish_time或expected_pick_time
expected_delivery_timenumber0期望派单时间(美团、达达支持,美团表示商家发单时间,达达表示系统调度时间, 到那个时间才会有状态更新的回调通知),unix-timestamp, 比如1586342180
expected_finish_timenumber0期望送达时间(顺丰同城急送支持),unix-timestamp, 比如1586342180
expected_pick_timenumber0期望取件时间(闪送、顺丰同城急送支持,闪送需要设置两个小时后的时间,顺丰同城急送只需传expected_finish_time或expected_pick_time其中之一即可,同时都传则以expected_finish_time为准),unix-timestamp, 比如1586342180
poi_seqstring门店订单流水号,建议提供,方便骑手门店取货,最长不超过32个字符
notestring备注,最长不超过200个字符
order_timenumber用户下单付款时间, 比如1555220757
is_insurednumber0是否保价,0,非保价,1.保价
declared_valuenumber保价金额,单位为元,精确到分
tipsnumber小费,单位为元, 下单一般不加小费
is_direct_deliverynumber是否选择直拿直送(0:不需要;1:需要。选择直拿直送后,同一时间骑手只能配送此订单至完成,配送费用也相应高一些,闪送必须选1,达达可选0或1,其余配送公司不支持直拿直送)
cash_on_deliverynumber骑手应付金额,单位为元,精确到分
cash_on_pickupnumber骑手应收金额,单位为元,精确到分
rider_pick_methodnumber物流流向,1:从门店取件送至用户;2:从用户取件送至门店
is_finish_code_needednumber收货码(0:不需要;1:需要。收货码的作用是:骑手必须输入收货码才能完成订单妥投)
is_pickup_code_needednumber取货码(0:不需要;1:需要。取货码的作用是:骑手必须输入取货码才能从商家取货)

shop 的结构

属性类型默认值必填说明
wxa_pathstring商家小程序的路径,建议为订单页面
img_urlstring商品缩略图 url
goods_namestring商品名称
goods_countnumber商品数量
wxa_appidstring若结算方式为:第三方向配送公司统一结算,商户后续和第三方结算,则该参数必填;在该结算模式下,第三方用自己的开发小程序替授权商户发起下单,并将授权小程序的appid给平台,后续配送通知中可回流授权商户小程序。

返回值

Object

属性类型说明
errcodenumber错误码, 当errcode==0或者不存在还需要看resultcode
errmsgstring错误描述
resultcodenumber运力返回的错误码
resultmsgstring运力返回的错误描述
feenumber实际运费(单位:元),运费减去优惠券费用
deliverfeenumber运费(单位:元)
couponfeenumber优惠券费用(单位:元)
tipsnumber小费(单位:元)
insurancefeenumber保价费(单位:元)
distancenumber配送距离(单位:米)
dispatch_durationnumber预计骑手接单时间,单位秒,比如5分钟,就填300, 无法预计填0
delivery_tokenstring配送公司可以返回此字段,当用户下单时候带上这个字段,保证在一段时间内运费不变

使用场景

  1. 在用户提交外卖订单时,商家可调用本接口查询配送公司是否可接单、预计多久接单、运费预估等。预估运费可作为展示给用户的运费参考值。
  2. 举个例子:商家通过预下配送单接口返回的预估运费是8元,商家可决定前端顾客下外卖单时展示给顾客看的运费是真实的8元,还是其他商家指定的金额。
  3. 说明:本接口非必须调用接口,若不需要获取配送公司是否可接单、预计多久接单、运费预估等,也可不调用本接口,直接下配送单。
  4. 顺丰同城可返回配送费用、配送距离、预计骑手接单时间,不支持返回delivery_token。
  5. 闪送可返回配送费用、配送距离、预计骑手接单时间,不支持返回delivery_token。
  6. 美团配送返回0时表示校验通过,不支持返回配送费用、配送距离、预计骑手接单时间和delivery_token。
  7. 达达支持预下单查询配送费用、配送距离、预计骑手接单时间和delivery_token(有效期3分钟)。

请求示例

{
   "cargo": {
       "cargo_first_class": "美食夜宵",
       "cargo_second_class": "零食小吃",
       "goods_detail": {
           "goods": [
               {
                   "good_count": 1,
                   "good_name": "水果",
                   "good_price": 10,
                   "good_unit": "元"
               },
               {
                   "good_count": 2,
                   "good_name": "蔬菜",
                   "good_price": 20,
                   "good_unit": "元"
               }
           ]
       },
       "goods_height": 1,
       "goods_length": 3,
       "goods_value": 5,
       "goods_weight": 1,
       "goods_width": 2
   },
   "delivery_id": "SFTC",
   "delivery_sign": "01234567890123456789",
   "openid": "oABC123456",
   "order_info": {
       "delivery_service_code": "",
       "expected_delivery_time": 0,
       "is_direct_delivery": 0,
       "is_finish_code_needed": 1,
       "is_insured": 0,
       "is_pickup_code_needed": 1,
       "note": "test_note",
       "order_time": 1555220757,
       "order_type": 0,
       "poi_seq": "1111",
       "tips": 0
   },
   "receiver": {
       "address": "xxx地铁站",
       "address_detail": "2号楼202",
       "city": "北京市",
       "coordinate_type": 0,
       "lat": 40.1529600000,
       "lng": 116.5060300000,
       "name": "老王",
       "phone": "18512345678"
   },
   "sender": {
       "address": "xx大厦",
       "address_detail": "1号楼101",
       "city": "北京市",
       "coordinate_type": 0,
       "lat": 40.4486120000,
       "lng": 116.3830750000,
       "name": "刘一",
       "phone": "13712345678"
   },
   "shop": {
       "goods_count": 2,
       "goods_name": "宝贝",
       "img_url": "https://mmbiz.qpic.cn/mmbiz_png/xxxxxxxxx/0?wx_fmt=png",
       "wxa_path": "/page/index/index"
   },
   "shop_no": "12345678",
   "sub_biz_id": "sub_biz_id_1",
   "shop_order_id": "SFTC_001",
   "shopid": "122222222",
}

返回示例

下单成功

{
  "resultcode": 0,
  "resultmsg": "ok",
  "fee": 10,
  "deliverfee": 10,
  "couponfee": 0,
  "tips": 0,
  "insurancfee": 0,
  "distance": 1000,
  "dispatch_duration": 300,
  "delivery_token": "1111111"
}

下单失败

{
  "resultcode": 1010,
  "resultmsg": "收件人信息不正确"
}


微信小程序 小程序使用·openDelivery
微信小程序 小程序使用·preCancelOrder
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

微信小程序 指南

目录结构

开放能力

微信小程序 调试

微信小程序 实时日志

微信小程序 小程序测速

微信小程序 基础组件

微信小程序 API

媒体

界面

微信小程序API 绘图

微信小程序 服务端

接口调用凭证

统一服务消息

微信小程序 服务市场

微信小程序 生物认证

微信小程序 云开发

服务端

微信小程序云开发服务端API 数据库

SDK文档

微信小程序 扩展能力

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }