# 生成订单

# 接口调用请求说明

该接口仅用于在微信侧生成一笔业务订单,若需要拉起收银台,则需要调用生成支付订单接口。

注:

  1. 接口只支持创建,不支持更新,重复创建以第一次创建为准
  2. 调用该接口成单后,如果想要修改订单,需要调用更新订单相关接口
  3. 如果传入trace_id,则在解析完毕之后会发出回调订单归因成功回调
  4. 创建订单时可传入aftersale_duration,该参数表示确认收货后x天完成结算,结算后订单不可再发起售后,如果创建订单时无法确定售后期,可在确认售后后,调用更新售后期接口
  5. 订单超时时间expire_time会影响支付参数的时效,时间到期之后,微信会流转订单超时取消(status = 181)
  6. 生成业务订单时,微信侧会对金额进行校验,请确保金额相关信息满足:
order_price = sum(sale_price) + freight - discounted_price + additional_price
order_price = sum(sku_real_price) + freight + additional_price

否则将生成订单失败。其中sku_real_price为相同sku_id的总实付款,e.g. out_sku_id = "10010"买了10件,此处sku_real_price应传入此10个sku的总实付价。

http请求方式:POST
https://api.weixin.qq.com/shop/order/add?access_token=xxxxxxxxx

# 请求参数示例

{
    "create_time": "2020-03-25 13:05:25",
    "out_order_id": "xxxxx",  
    "openid": "oTVP50O53a7jgmawAmxKukNlq3XI",
    "path": "/pages/order.html?out_order_id=xxxxx", 
    "out_user_id": "323232323",
    "order_detail": {
        "product_infos": [
            {
                "out_product_id": "12345",
                "out_sku_id":"23456",
                "product_cnt": 10,
                "sale_price": 100,   
                "sku_real_price":1000, 
                "path": "pages/productDetail/productDetail?productId=2176180",
                "title" : "加湿器",
                "head_img": "https://mmecimage.cn/p/wx255b67a1403adbc2/HAxwRwmaEQFm9zsSF58f9b-YljQkYbG1Hcyx6t5WvQ",
                
            }
        ],
        "pay_info": {
            "pay_method_type": 0
        },
        "price_info": {  
            "order_price": 1600,
            "freight": 500,
            "discounted_price": 100,
            "additional_price": 200,
            "additional_remarks": "税费"
        }
    },
    "delivery_detail": {
        "delivery_type": 1
    },
    "address_info": {
        "receiver_name": "张三",
        "detailed_address": "详细收货地址信息",
        "tel_number": "收货人电话",
        "country": "国家,选填",
        "province": "省份,选填",
        "city": "城市,选填",
        "town": "区县,选填"
    },
    "fund_type": 1,
    "expire_time": 1642076428,
    "trace_id": "1_lkbvxXM-MpYZMC5hoIa8c1rqdFyUjMLoKNYsaKBFRoE",
    "aftersale_duration": 7,
    "default_receiving_address": {
        "city": "广州市",
        "country": "中国",
        "detailed_address": "龙洞250号",
        "province": "广东省",
        "receiver_name": "我爱我家",
        "tel_number": "18712345678",
        "town": "温柔乡"
    },
    "stringify_64bits_number": true
}

# 回包示例

{
    "errcode":0,
    "errmsg":"ok",
    "order_id": 3302968738502279424,
    "out_order_id": "***************"
}

# 请求参数说明

# Order

字段名 类型 是否必填 说明
create_time string 创建时间,yyyy-MM-dd HH:mm:ss,与微信服务器不得超过5秒偏差
out_order_id string 商家自定义订单ID(字符集包括大小写字母数字,长度小于128个字符)
openid string 用户的openid
order_detail OrderDetail 订单详细数据
delivery_detail DeliveryDetail 配送信息
path string 订单详情页路径
address_info AddressInfo 地址信息
fund_type number 订单类型:0,普通单,1,二级商户单
expire_time number unix秒级时间戳,订单超时时间,取值:[15min, 1d]
aftersale_duration number 选填 取值范围,[7,3 * 365],单位:天
trace_id string 会影响主播归因、分享员归因等,从下单前置检查获取
default_receiving_address AddressInfo 选填 默认退货地址,退货售后超时时,会让用户将货物寄往此地址
stringify_64bits_number bool 选填 生成的order_id以字符串形式返回(微信侧订单id为63位,某些语言会丢失精度)

# OrderDetail

字段名 类型 是否必填 说明
product_infos OrderProductInfo[] 商品列表
price_info PriceInfo 价格信息
pay_info PayInfo fund_type = 0 必传|

# PayInfo

字段名 类型 是否必填 说明
pay_method_type enum 0: 微信支付, 1: 货到付款, 2: 商家会员储蓄卡(默认0)

# DeliveryDetail

字段名 类型 是否必填 说明
delivery_type enum 1: 正常快递, 2: 无需快递, 3: 线下配送, 4: 用户自提,视频号场景目前只支持 1,正常快递

# AddressInfo

字段名 类型 是否必填 说明
receiver_name string 收件人姓名
detailed_address string 详细收货地址信息
tel_number string 收件人手机号码
country string 国家
province string
city string
town string

# OrderProductInfo

字段名 类型 是否必填 说明
out_product_id string 外部商品spuid,可以不在商品库里,但是会响销售统计
out_sku_id string 外部商品skuid,可以不在商品库里,但是会响销售统计
product_cnt number 商品个数
sale_price number 生成订单时商品的售卖价(单位:分),可以跟上传商品接口的价格不一致
sku_real_price number sku总实付价 (单位:分),必须 > 0
title string 生成订单时商品的标题
head_img string 生成订单时商品的头图
path string 绑定的小程序商品路径

# PriceInfo

字段名 类型 是否必填 说明
freight number 运费
discounted_price number 折扣费用
additional_price number 其他费用
additional_remarks string 其他费用说明
order_price number 订单总价

# 返回参数说明

字段名 类型 说明
errcode number 错误码
errmsg string 错误信息
data Object 订单id信息
data.order_id number/string 交易组件平台订单ID,类型取决于stringify_64bits_number参数
data.out_order_id string 交易组件第三方订单ID