package sfps2 import ( "git.rosy.net.cn/baseapi/platformapi" "net/http" "sync" ) const ( BaseCatchUrl = "http://sfapi-proxy.jsonce.com" //抓包调试路由 BaseURL = "https://openic.sf-express.com/open/api/external" // 正式环境 RequestPost = "POST" HttpStatusSuccessCode = 200 //http返回成功状态码 SuccessCode = 0 //成功code SuccessMsg = "success" //成功 msg FailCode = -1 FailMsg = "fail" SFShopTestOpenStoreID = "3263670062849" //测试店铺ID SFShopStoreID = "3270357468929" //正式店铺ID DefaultVersion = 19 //参照文档主版本号填写 如:文档版本号1.9,version=19,推荐使用版本19 ) // SFCityStoreIDs 各城市正式店铺id var SFCityStoreIDs = map[string]string{ "怀化市": "3270454065601", "郴州市": "3270454085329", "岳阳市": "3270454110257", "益阳市": "3270454134001", "常德市": "3270454048865", "湘潭市": "3270454033889", "株洲市": "3270454017249", "长沙市": "3270454000177", "衡阳市": "3270454177265", "邵阳市": "3270454197138", "娄底市": "3270454222193", "张家界市": "3270454152001", "深圳市": "3270426486881", "东莞市": "3270426562113", "惠州市": "3270428815889", "汕头市": "3270428863057", "汕尾市": "3270428939649", "揭阳市": "3270428979601", "潮州市": "3270429008433", "河源市": "3270429030993", "眉山市": "3270426822721", "内江市": "3270426793857", "泸州市": "3270426600177", "成都市": "3270426476337", "郑州市": "3270357468929", "洛阳市": "3270458229665", "许昌市": "3270458247585", "开封市": "3270458296977", "商丘市": "3270641341457", "驻马市": "3270641372769", "新乡市": "3270641398977", "信阳市": "3270641464177", "安阳市": "3270641489553", "漯河市": "3270641515137", "濮阳市": "3270641538305", "石家庄市": "3270457532273", "邢台市": "3270457476081", "邯郸市": "3270457457489", "保定市": "3270457563057", "沧州市": "3270458242321", "廊坊市": "3270458672993", "唐山市": "3270459104593", "承德市": "3270459200625", "秦皇岛市": "3270459223617", "张家口市": "3270459240321", "武汉市": "3270468391969", "襄阳市": "3270468418785", "宜昌市": "3270468434017", "荆州市": "3270468445137", "荆门市": "3270468456545", "孝感市": "3270468472897", "鄂州店": "3270527285137", "黄石市": "3270527303521", "南宁市": "3270650685793", "桂林市": "3270650714881", "三亚市": "3270650742017", "海口市": "3270650813681", "柳州市": "3270650844193", "北海市": "3270650890577", "贵港市": "3270650914065", } const ( OrderTypeSF = 1 //1、顺丰订单号 OrderTypeStore = 2 //2、商家订单号 // 物品类型product_type枚举值: ProductTypeFastFood = 1 // 快餐 ProductTypeDrugs = 2 // 药品 ProductTypeDepartmentStore = 3 // 百货 ProductTypeOldClothes = 4 // 脏衣服收 ProductTypeNewClothes = 5 // 干净衣服派 ProductTypeFresh = 6 // 生鲜 目前默认 ProductTypeHighDrinks = 8 // 高端饮品 ProductTypeSiteInspection = 9 // 现场勘验 ProductTypeExpress = 10 // 快递 ProductTypeFile = 12 // 文件 ProductTypeCake = 13 // 蛋糕 ProductTypeFlower = 14 // 鲜花 ProductTypeDigital = 15 // 数码 ProductTypeClothing = 16 // 服装 ProductTypeCar = 17 // 汽配 ProductTypeJewellery = 18 // 珠宝 ProductTypePizza = 20 // 披萨 ProductTypeChineseFood = 21 // 中餐 ProductTypeFreshwaterFresh = 22 // 水产 ProductTypeDirectDelivery = 27 // 专人直送 ProductTypeMidRangeDrinks = 32 // 中端饮品 ProductTypeConvenienceStore = 33 // 便利店 ProductTypeBakeries = 34 // 面包糕点 ProductTypeHotPot = 35 // 火锅 ProductTypeLicence = 36 // 证照 ProductTypeCrayfish = 40 // 烧烤小龙虾 ProductTypeOtherInfo = 41 // 外部落地配 ProductTypeAlcoholAndTobacco = 47 // 烟酒行 ProductTypeAdultEroticaProducts = 48 // 成人用品 ProductTypeOther = 99 // 其他 //订单接入来源 OrderSourceMt = "1" //美团 OrderSourceELM = "2" //饿了么 OrderSourceEBAI = "3" //饿了么零售 OrderSourceKB = "4" //口碑 //坐标类型 LbsTypeBD = 1 //百度地图 LbsTypeGD = 2 //高德地图 //物流流向 RiderPickUpMethodSTU = 1 //从门店取件送至用户(默认) RiderPickUpMethodUTS = 2 //从用户取件送至门店(仅连锁店铺支持) //取消代码 CancelCodeChangePlan = 300 //计划有变,暂时不需要寄件了 CancelCodeWrongInfo = 302 //填错订单信息,取消后重新提交 CancelCodeRiderCancel = 303 //骑士要求取消 CancelCodeCanNotDelivery = 304 //暂时无法提供待配送物品 CancelCodeRepeatOrder = 306 //重复下单,取消此单 CancelCodeRiderTooLong = 309 //骑士上门时间太长 CancelCodeNoneTake = 312 //无人接单,换用其他平台寄件 CancelCodeOther = 313 //其他,请注明原因 //订单状态 OrderStatusNewOrder = 1 //1:订单创建 OrderStatusNewOrderDesc = "订单创建" //1:订单创建 OrderStatusTakeOrder = 10 //10:配送员接单 OrderStatusArrivedStore = 12 //12:配送员到店 OrderStatusRiderArriving = 15 //15:配送员配送中(已取货) OrderStatusRiderCancel = 22 //配送员撤单 OrderStatusFinished = 17 //17:配送员完成订单 OrderStatusOrderCancel = 2 //订单取消 OrderStatusError = 91 //订单异常 //异常情况枚举 ExIDLoseOrBroke = 4003 //托寄物丢失或损坏 ExIDStoreSlow = 1001 //商家出货慢 ExIDUserRefuseCertifying = 2010 //顾客拒绝实名认证 ExIDCertifyingFail = 3004 //实名认证校验失败 ExIDChangeStoreAddress = 1007 //更改取货地址 ExIDUserDisconnect = 2001 //顾客电话无法接通 ExIDChangeExpectTime = 2004 //更改期望送达时间 ExIDUserReject = 2005 //顾客拒收 ExIDUserNotHome = 2008 //顾客不在家 ExIDChangeUserAddress = 2009 //更改送货地址 ExIDWrongAddress = 4001 //配送地址错误 ExIDOther = 4002 //其他 ) var CancelCode = map[int]string{ CancelCodeChangePlan: "计划有变,暂时不需要寄件了", CancelCodeWrongInfo: "填错订单信息,取消后重新提交", CancelCodeRiderCancel: "骑士要求取消", CancelCodeCanNotDelivery: "暂时无法提供待配送物品", CancelCodeRepeatOrder: "重复下单,取消此单", CancelCodeRiderTooLong: "骑士上门时间太长", CancelCodeNoneTake: "无人接单,换用其他平台寄件", CancelCodeOther: "其他,请注明原因", } // API 注册请求api type API struct { devId int64 `json:"dev_id"` devKey string `json:"dev_key"` sign string `json:"sign"` pushTime int64 `json:"push_time"` locker sync.RWMutex client *http.Client config *platformapi.APIConfig } /************************************************订单*****************************************************/ // PreCreateOrderReq 预创建订单(店铺)请求 type PreCreateOrderReq struct { // 必填 DevId int64 `json:"dev_id"` // 同城开发者ID ShopId string `json:"shop_id"` // 店铺ID UserLng string `json:"user_lng"` //用户地址经度 UserLat string `json:"user_lat"` //用户地址纬度 UserAddress string `json:"user_address"` //用户详细地址 Weight int64 `json:"weight"` //物品重量(单位:克) ProductType int64 `json:"product_type"` //物品类型 PushTime int64 `json:"push_time"` // 推单时间 秒级时间戳 // 非必填 ShopType int64 `json:"shop_type"` // 店铺ID类型 1:顺丰店铺ID ;2:接入方店铺ID CityName string `json:"city_name"` //发单城市 用来校验是否跨城;请填写城市的中文名称,如北京市、深圳市 TotalPrice int64 `json:"total_price"` //用户订单总金额(单位:分) IsAppoint int `json:"is_appoint"` //是否是预约单 0:非预约单;1:预约单 AppointType int `json:"appoint_type"` //预约单类型 预约单的时候传入,1:预约单送达单;2:预约单上门单 ExpectTime int64 `json:"expect_time"` // 用户期望送达时间 若传入自此段且时间大于配送时效,则按照预约送达单处理,时间小于配送时效按照立即单处理;appoint_type=1时需必传,秒级时间戳; //ExpectPickupTime int64 `json:"expect_pickup_time"` // 用户期望上门时间 appoint_type=2时需必传,秒级时间戳 LbsType int `json:"lbs_type"` // 坐标类型 1:百度坐标,2:高德坐标 IsInsured int64 `json:"is_insured"` // 是否保价,0:非保价;1:保价 IsPersonDirect int64 `json:"is_person_direct"` // 是否是专人直送订单,0:否;1:是 Vehicle int `json:"vehicle"` // 配送交通工具,0:否;1:电动车;2:小轿车 DeclaredValue int64 `json:"declared_value"` // 保价金额(单位:分) GratuityFee int64 `json:"gratuity_fee"` // 订单小费,不传或者传0为不加小费 单位分,加小费最低不能少于100分 RiderPickMethod int64 `json:"rider_pick_method"` // 物流流向 1:从门店取件送至用户; 2:从用户取件送至门店 ReturnFlag int `json:"return_flag"` // 返回字段控制标志位(二进制) 1:商品总价格,2:配送距离,4:物品重量,8:起送时间,16:期望送达时间,32:支付费用,64:实际支付金额,128:优惠券总金额,256:结算方式 例如全部返回为填入511 Shop *SfShopInfo `json:"shop"` // 发货店铺信息 Obj,详见shop结构, 平台级开发者(如饿了么)需传入如无特殊说明此字段可忽略 MultiPickupInfo []*MultiPickupInfo `json:"multi_pickup_info"` // 多点取货信息 } // PreCreateOrderResp 预创建订单(店铺)响应 type PreCreateOrderResp struct { ChargePriceList *ChargePriceList `json:"charge_price_list"` DeliveryType float64 `json:"delivery_type"` //0:预约送达单 1:立即单 3:预约上门单 EstimateCouponDetail interface{} `json:"estimate_coupon_detail"` EstimateCouponTotalFee float64 `json:"estimate_coupon_total_fee"` EstimatePayMoney float64 `json:"estimate_pay_money"` ExpectTime float64 `json:"expect_time"` OrderToken string `json:"order_token"` OverflowExpectTime float64 `json:"overflow_expect_time"` OverflowFee float64 `json:"overflow_fee"` PromiseDeliveryTime float64 `json:"promise_delivery_time"` //预计配送时间(单位: 分) GratuityFee float64 `json:"gratuity_fee"` //订单小费 PushTime float64 `json:"push_time"` //时间戳 } type ChargePriceList struct { ChargeDetail *ChargeDetail `json:"charge_detail"` InsuredCeilingRule *InsuredCeilingRule `json:"insured_ceiling_rule"` ShopPayPrice float64 `json:"shop_pay_price"` //配送费总额(单位:分) IsInsuredRule float64 `json:"is_insured_rule"` ShopDeductionPrice float64 `json:"shop_deduction_price"` Vehicle float64 `json:"vehicle"` } type ChargeDetail struct { BasicFee float64 `json:"basic_fee"` //常规配送费=起步价+超距离费+超重量费 Basic float64 `json:"basic"` //起步价 CancelExcessFee float64 `json:"cancel_excess_fee"` //拒收扣费 ExtraFee float64 `json:"extra_fee"` //附加费 ExtraFeeDetail struct { GeographyFee float64 `json:"geography_fee"` } GratuityFee float64 `json:"gratuity_fee"` OverDistance float64 `json:"over_distance"` //超距离费用 OverWeight float64 `json:"over_weight"` //超重量费用 OverflowFee float64 `json:"overflow_fee"` SpecialTimeFee float64 `json:"special_time_fee"` //特殊时段费 VasFee float64 `json:"vas_fee"` //增值服务费 VasFeeDetail *VasFeeDetail `json:"vas_fee_detail"` //增值服务费详情 } type InsuredCeilingRule struct { End float64 `json:"end"` InsuredType float64 `json:"insured_type"` Start float64 `json:"start"` Status float64 `json:"status"` Type float64 `json:"type"` Value string `json:"value"` } // VasFeeDetail 增值服务费详情 type VasFeeDetail struct { AcceptFasterFee float64 `json:"accept_faster_fee"` AddressChangeFee float64 `json:"address_change_fee"` AppointmentFasterFee float64 `json:"appointment_faster_fee"` AppointmentFee float64 `json:"appointment_fee"` BigOrder struct { Fee float64 `json:"fee"` //大额单费 } `json:"big_order"` Collection struct { Fee float64 `json:"fee"` //代收货款费用 } `json:"collection"` Countersign struct { Fee float64 `json:"fee"` } `json:"countersign"` DigitalServiceFee float64 `json:"digital_service_fee"` DwPackageFee float64 `json:"dw_package_fee"` ExpectFasterFee float64 `json:"expect_faster_fee"` FileBagFee float64 `json:"file_bag_fee"` Insured struct { DeclaredPrice float64 `json:"declared_price"` Fee float64 `json:"fee"` } `json:"insured"` LineupTimeFee float64 `json:"lineup_time_fee"` LowTempFee float64 `json:"low_temp_fee"` MultiPickup struct { Fee int `json:"fee"` } `json:"multipickup"` OutOrderRateFee float64 `json:"out_order_rate_fee"` PackageServiceFee float64 `json:"package_service_fee"` PackingFee float64 `json:"packing_fee"` PersonDirectFee float64 `json:"person_direct_fee"` ResidentServiceFee float64 `json:"resident_service_fee"` ScanPayFee float64 `json:"scan_pay_fee"` ServiceFee float64 `json:"service_fee"` TakeGoodsSmsFee float64 `json:"take_goods_sms_fee"` UavFee float64 `json:"uav_fee"` VehicleCarFee float64 `json:"vehicle_car_fee"` } // CreateOrderReq 创建订单(店铺) type CreateOrderReq struct { // 必填 DevId int64 `json:"dev_id"` // 同城开发者ID ShopId string `json:"shop_id"` // 店铺ID ShopOrderId string `json:"shop_order_id"` // 不允许重复(使用相同商家订单号会幂等返回) OrderSource string `json:"order_source"` // 订单接入来源 1:美团;2:饿了么;3:百度;4:口碑;其他请直接填写中文字符串值 PayType int64 `json:"pay_type"` // 用户支付方式 1:已付款 0:货到付款 OrderTime int64 `json:"order_time"` // 用户下单时间 秒级时间戳 IsAppoint int `json:"is_appoint"` // 是否是预约单 0:非预约单;1:预约单 IsInsured int64 `json:"is_insured"` // 是否保价,0:非保价;1:保价 IsPriorityAssign int64 `json:"is_priority_assign"` // 是否优先派单,0:否 1:是 IsPersonDirect int64 `json:"is_person_direct"` // 是否是专人直送订单,0:否;1:是 PushTime int64 `json:"push_time"` // 推单时间 秒级时间戳 Version int64 `json:"version"` // 版本号 参照文档主版本号填写 如:文档版本号1.7,version=17 Receive *ReceiveAddress `json:"receive"` // 收货人信息 Shop *SfShopInfo `json:"shop"` // 发货店铺信息 Obj,详见shop结构, 平台级开发者(如饿了么)需传入如无特殊说明此字段可忽略 OrderDetail *OrderDetail `json:"order_detail"` // 订单详情 MultiPickupInfo []*MultiPickupDetails `json:"multi_pickup_info"` // 多点取货信息 // 非必填 LbsType int `json:"lbs_type"` // 坐标类型 1:百度坐标,2:高德坐标 ShopType int64 `json:"shop_type"` // 店铺ID类型 1:顺丰店铺ID ;2:接入方店铺ID ShopPreparationTime int64 `json:"shop_preparation_time"` // 商家预计备餐时长(分10) OrderSequence string `json:"order_sequence"` // 取货序号 与order_source配合使用 如:饿了么10号单,表示如下:order_source=2;order_sequence=10。用于骑士快速寻找配送物 AppointType int `json:"appoint_type"` // 预约单类型 预约单的时候传入,1:预约单送达单;2:预约单上门单 ExpectTime int64 `json:"expect_time"` // 用户期望送达时间 若传入自此段且时间大于配送时效,则按照预约送达单处理,时间小于配送时效按照立即单处理;appoint_type=1时需必传,秒级时间戳; ExpectPickupTime int64 `json:"expect_pickup_time"` // 用户期望上门时间 appoint_type=2时需必传,秒级时间戳 ShopExpectTime int64 `json:"shop_expect_time"` // 商家期望送达时间 只展示给骑士,不参与时效考核;秒级时间戳 Vehicle int `json:"vehicle"` // 配送交通工具,0:否;1:电动车;2:小轿车 DeclaredValue int64 `json:"declared_value"` // 保价金额(单位:分) GratuityFee int64 `json:"gratuity_fee"` // 订单小费,不传或者传0为不加小费 单位分,加小费最低不能少于100分 Remark string `json:"remark"` // 订单备注 RiderPickMethod int64 `json:"rider_pick_method"` // 物流流向 1:从门店取件送至用户; 2:从用户取件送至门店 ReturnFlag int `json:"return_flag"` // 返回字段控制标志位(二进制) 1:商品总价格,2:配送距离,4:物品重量,8:起送时间,16:期望送达时间,32:支付费用,64:实际支付金额,128:优惠券总金额,256:结算方式 例如全部返回为填入511 } // CreateOrderResp 创建订单(店铺) type CreateOrderResp struct { SFOrderID string `json:"sf_order_id"` //顺丰订单号, 请注意:新版本V1.9及以后,该订单号升级为JS开头的15位订单号,类型为字符串(老版本仍为int类型) SFBillID string `json:"sf_bill_id"` //顺丰运单号(需要在顺丰后台配置门店后返回此字段) ShopOrderID string `json:"shop_order_id"` //商家订单号 PushTime int `json:"push_time"` //推送时间 //以下字段受请求参数中 return_flag 控制:return_flag中未包含的,此字段将不存在,请注意! TotalPrice float64 `json:"total_price"` //配送费总额,当return_flag中包含1时返回,单位分(值为计算出来此单总价) DeliveryDistanceMeter float64 `json:"delivery_distance_meter"` //配送距离,当return_flag中包含2时返回,单位米(值为计算出来实际配送距离) WeightGram float64 `json:"weight_gram"` //商品重量,当return_flag中包含4时返回,单位克(值为下单传入参数回传) StartTime float64 `json:"start_time"` //起送时间,当return_flag中包含8时返回,时间格式为Unix时间戳,注意转换 ExpectTime float64 `json:"expect_time"` //预计送达时间,当return_flag中包含16时返回,时间格式为Unix时间戳,注意转换 TotalPayMoney float64 `json:"total_pay_money"` //支付费用,当return_flag中包含32时返回,单位分 RealPayMoney float64 `json:"real_pay_money"` //实际支付金额,当return_flag中包含64时返回,单位分(实际支付金额=总金额-优惠券总金额) CouponsTotalFee float64 `json:"coupons_total_fee"` //优惠券总金额,当return_flag中包含128时返回,单位分 SettlementType float64 `json:"settlement_type"` //结算方式,当return_flag中包含256时返回 PickUPCode float64 `json:"pick_up_code"` //取件码。在顺丰同城商户侧配置,配置后有此字段 CompleteCode float64 `json:"complete_code"` //签收码。在顺丰同城商户侧配置,配置后有此字段 OverflowFee float64 `json:"overflow_fee"` //爆单费,单位分 InsureFee float64 `json:"insure_fee"` //保价费,单位分 SubsidyFee float64 `json:"subsidy_fee"` } // PreCancelOrderReq 预取消订单 type PreCancelOrderReq struct { //必填 DevId int64 `json:"dev_id"` // 同城开发者ID OrderID string `json:"order_id"` //新版本V1.9+升级为JS开头的15位字符串类型:“JS1234567890123”, 老版本int类型订单号会长期兼容 PushTime int64 `json:"push_time"` //取消时间;秒级时间戳 //非必填 ShopId string `json:"shop_id"` // 店铺ID ShopType int64 `json:"shop_type"` //1、顺丰店铺ID 2、接入方店铺ID CancelReason string `json:"cancel_reason"` //其他取消原因 } // PreCancelOrderResp 预取消订单 type PreCancelOrderResp struct { OrderType float64 `json:"order_type"` PromiseDeliveryTime float64 `json:"promise_delivery_time"` //预计配送时间(单位: 分) DeliveryType float64 `json:"delivery_type"` //订单类型 0:预约送达单,1:立即单,2:预约上门单 ExpectPickUpTime float64 `json:"expect_pickup_time"` //原始期望上门时间 ExpectTime float64 `json:"expect_time"` //预约时间 ShopCancelTimes float64 `json:"shop_cancel_times"` //店铺每日取消次数 FreeCancelTimes float64 `json:"free_cancel_times"` //每日免费取消次数 IsCancelChargePriceRule float64 `json:"is_cancel_charge_price_rule"` //取消收费规则 IsOverFreeCancelTimes float64 `json:"is_over_free_cancel_times"` //是否超出免费取消次数 IsDeductionFee float64 `json:"is_deduction_fee"` //是否有取消收费 DeductionFee float64 `json:"deduction_fee"` //取消收费 //CancelChargePriceRule CouldCancel bool `json:"could_cancel"` //能否取消 PushTime float64 `json:"push_time"` //推单时间 SFOrderID string `json:"sf_order_id"` //顺丰订单号, 请注意:新版本V1.9及以后,该订单号升级为JS开头的15位订单号,类型为字符串(老版本仍为int类型) ShopOrderID string `json:"shop_order_id"` //商家订单号 } // CancelOrderReq 取消订单 type CancelOrderReq struct { //必填 DevId int64 `json:"dev_id"` // 同城开发者ID OrderID string `json:"order_id"` //新版本V1.9+升级为JS开头的15位字符串类型:“JS1234567890123”, 老版本int类型订单号会长期兼容 PushTime int64 `json:"push_time"` //取消时间;秒级时间戳 //非必填 OrderType int64 `json:"order_type"` //1、顺丰订单号 2、商家订单号 ShopId string `json:"shop_id"` // 店铺ID ShopType int64 `json:"shop_type"` //1、顺丰店铺ID 2、接入方店铺ID CancelCode int64 `json:"cancel_code"` //不填时默认cancel_code=313,cancel_reason=商家发起取消 CancelReason string `json:"cancel_reason"` //其他取消原因 } // CancelOrderResp 取消订单 type CancelOrderResp struct { SFOrderID string `json:"sf_order_id"` //顺丰订单号, 请注意:新版本V1.9及以后,该订单号升级为JS开头的15位订单号,类型为字符串(老版本仍为int类型) ShopOrderID string `json:"shop_order_id"` //商家订单号 DeductionDetails struct { DeductionFee int `json:"deduction_fee"` //取消收费金额(单位:分) ShopCancelTimes int `json:"shop_cancel_times"` //店铺维度累计的取消次数 FreeCancelTimes int `json:"free_cancel_times"` //配置的免费取消次数 } PushTime int `json:"push_time"` //接口返回时间 } // GetOrderStatusReq 订单实时信息查询 type GetOrderStatusReq struct { //必填 DevId int64 `json:"dev_id"` // 同城开发者ID OrderID string `json:"order_id"` //新版本V1.9+升级为JS开头的15位字符串类型:“JS1234567890123”, 老版本int类型订单号会长期兼容 PushTime int64 `json:"push_time"` //取消时间;秒级时间戳 //非必填 OrderType int64 `json:"order_type"` //1、顺丰订单号 2、商家订单号 ShopId string `json:"shop_id"` // 店铺ID ShopType int64 `json:"shop_type"` //1、顺丰店铺ID 2、接入方店铺ID } // GetOrderStatusResp 订单实时信息查询 type GetOrderStatusResp struct { OrderID string `json:"order_id"` //新版本V1.9+升级为JS开头的15位字符串类型:“JS1234567890123”, 老版本int类型订单号会长期兼容 ShopId float64 `json:"shop_id"` // 店铺ID OutOrderID string `json:"out_order_id"` //商家订单ID OrderStatus float64 `json:"order_status"` //当前状态 StatusDesc string `json:"status_desc"` //当前状态描述 RiderName string `json:"rider_name"` //骑士名称 RiderPhone string `json:"rider_phone"` //骑手电话 PushTime int64 `json:"push_time"` //订单推送生成的时间 TotalPrice float64 `json:"total_price"` //配送费总额 DeliveryDistanceMeter float64 `json:"delivery_distance_meter"` //配送距离 WeightGram float64 `json:"weight_gram"` //商品重量 StartTime int64 `json:"start_time"` //起送时间 ExpectTime int64 `json:"expect_time"` //预计送达时间 TotalPayMoney float64 `json:"total_pay_money"` //支付费用 RealPayMoney float64 `json:"real_pay_money"` //实际支付金额 CouponsTotalFee float64 `json:"coupons_total_fee"` //优惠券总金额 SettlementType float64 `json:"settlement_type"` //结算方式 PickUpCode float64 `json:"pick_up_code"` //取件码 CompleteCode float64 `json:"complete_code"` //签收码 OverflowFee float64 `json:"overflow_fee"` //爆单费,单位分 } // RiderLatestPositionReq 获取配送员实时坐标接口 type RiderLatestPositionReq struct { DevId int64 `json:"dev_id"` // 同城开发者ID OrderID string `json:"order_id"` //新版本V1.9+升级为JS开头的15位字符串类型:“JS1234567890123”, 老版本int类型订单号会长期兼容 PushTime int64 `json:"push_time"` //非必填 OrderType int64 `json:"order_type"` //查询订单ID类型:1、顺丰订单号 2、商家订单号 ShopID int64 `json:"shop_id"` //order_type=2时必传shop_id与shop_type ShopType int64 `json:"shop_type"` //1、顺丰店铺ID 2、接入方店铺ID } // RiderLatestPositionResp 获取配送员实时坐标接口 type RiderLatestPositionResp struct { SFOrderID string `json:"sf_order_id"` //顺丰订单号,新版本V1.9+升级为JS开头的15位字符串类型, 老版本为int类型 ShopOrderID string `json:"shop_order_id"` //商家订单号 RiderName string `json:"rider_name"` //配送员姓名 RiderPhone string `json:"rider_phone"` //配送员联系方式 RiderLng string `json:"rider_lng"` //配送员经度 RiderLat string `json:"rider_lat"` //配送员纬度 UploadTime string `json:"upload_time"` //坐标上传时间(秒级时间戳) } // SfShopInfo 发货店铺信息,必填 type SfShopInfo struct { ShopName string `json:"shop_name"` // 店铺名称 ShopPhone string `json:"shop_phone"` // 店铺电话 ShopAddress string `json:"shop_address"` // 店铺地址 ShopLng string `json:"shop_lng"` // 店铺经度 ShopLat string `json:"shop_lat"` // 店铺纬度 } // ReceiveAddress 收货人信息 type ReceiveAddress struct { // 必填 UserName string `json:"user_name"` // 用户姓名 UserPhone string `json:"user_phone"` // 用户电话 UserAddress string `json:"user_address"` // 用户地址 UserLng string `json:"user_lng"` // 用户经度 UserLat string `json:"user_lat"` // 用户纬度 // 非必填 CityName string `json:"city_name"` // 发单城市 } // OrderDetail 订单详情 type OrderDetail struct { // 必填 TotalPrice int64 `json:"total_price"` // 订单金额 分 ProductType int64 `json:"product_type"` // 物品类型 枚举值见下面定义 WeightGram int64 `json:"weight_gram"` // 物品重量(单位:克) ProductNum int64 `json:"product_num"` // 物品个数 ProductTypeNum int64 `json:"product_type_num"` // 物品种类个数 ProductDetail []*ProductDetail `json:"product_detail"` // 物品详情;数组结构,详见product_detail结构 // 非必填 UserMoney int64 `json:"user_money"` // 用户实付商家金额(单位:分) ShopMoney int `json:"shop_money"` // 商家实收用户金额(单位:分) VolumeLitre int64 `json:"volume_litre"` // 物品体积(单位:升) DeliveryMoney int64 `json:"delivery_money"` // 商家收取用户的配送费(单位:分) } // ProductDetail 购买物品详情清单 type ProductDetail struct { // 必填 ProductName string `json:"product_name"` // 物品名称 ProductNum int64 `json:"product_num"` // 物品数量 // 非必填 ProductId int64 `json:"product_id"` // 物品ID ProductPrice int64 `json:"product_price"` // 物品价格 ProductUnit string `json:"product_unit"` // 物品单位 ProductRemark string `json:"product_remark"` // 备注 ItemDetail string `json:"item_detail"` // 详情 } // MultiPickupDetails 取货地址详情 type MultiPickupDetails struct { PickupShopAddress string `json:"pickup_shop_address"` // 取货点地址 PickupShopPhone string `json:"pickup_shop_phone"` // 取货点店铺手机号 PickupShopName string `json:"pickup_shop_name"` // 取货点店铺名称 PickupLng string `json:"pickup_lng"` // 取货点经度 PickupLat string `json:"pickup_lat"` // 取货点纬度 PickupProducts string `json:"pickup_products"` // 取货点店铺物品信息 } // MultiPickupInfo 多点取货信息 type MultiPickupInfo struct { PickupShopAddress string `json:"pickup_shop_address"` // 取货点地址 PickupLng string `json:"pickup_lng"` // 取货点经度 PickupLat string `json:"pickup_lat"` // 取货点纬度 } //#endregion // 添加小费请求参数 type Addordergratuityfee struct { DevId int64 `json:"dev_id"` // 开发者ID OrderId string `json:"order_id"` // 订单id PushTime int64 `json:"push_time"` // 推送时间;秒级时间戳 GratuityFee int64 `json:"gratuity_fee"` // 订单小费,单位分,加小费最低不能少于100分 OrderType int64 `json:"order_type"` // 订单ID类型 ShopId int64 `json:"shop_id"` // 店铺id ShopType int64 `json:"shop_type"` // 店铺ID类型 serialNumber string `json:"serial_number"` // 加小费传入的唯一标识,用来幂等处理 } // 添加小费返回参数 type AddordergratuityfeeResp struct { SfOrderId string `json:"sf_order_id"` // 顺丰订单号 ShopOrderId string `json:"shop_order_id"` // 商家订单号 GratuityFee int `json:"gratuity_fee"` // 本次加小费金额 TotalGratuityFee int `json:"total_gratuity_fee"` // 该订单总的加小费金额 PushTime string `json:"push_time"` // 推送时间 }