# 生成订单
# 接口调用请求说明
该接口仅用于在微信侧生成一笔业务订单,若需要拉起收银台,则需要调用生成支付订单接口。
注:
- 接口只支持创建,不支持更新,重复创建以第一次创建为准
- 调用该接口成单后,如果想要修改订单,需要调用更新订单相关接口
- 如果传入trace_id,则在解析完毕之后会发出回调订单归因成功回调
- 创建订单时可传入
aftersale_duration
,该参数表示确认收货后x天完成结算,结算后订单不可再发起售后,如果创建订单时无法确定售后期,可在确认售后后,调用更新售后期接口 - 订单超时时间
expire_time
会影响支付参数的时效,时间到期之后,微信会流转订单超时取消(status = 181) - 生成业务订单时,微信侧会对金额进行校验,请确保金额相关信息满足:
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 |