package fnpsapi import ( "git.rosy.net.cn/baseapi/platformapi" "net/http" "sync" ) const ( ApiURL = "https://openic.sf-express.com" // 正式环境 RequestPost = "POST" ) // 物品类型product_type枚举值: const ( FastFood = 1 // 快餐 Drugs = 2 // 药品 DepartmentStore = 3 // 百货 OldClothes = 4 // 脏衣服收 NewClothes = 5 // 干净衣服派 Fresh = 6 // 生鲜 HighDrinks = 8 // 高端饮品 SiteInspection = 9 // 现场勘验 Express = 10 // 快递 File = 12 // 文件 Cake = 13 // 蛋糕 Flower = 14 // 鲜花 Digital = 15 // 数码 Clothing = 16 // 服装 Car = 17 // 汽配 Jewellery = 18 // 珠宝 Pizza = 20 // 披萨 ChineseFood = 21 // 中餐 FreshwaterFresh = 22 // 水产 DirectDelivery = 27 // 专人直送 MidRangeDrinks = 32 // 中端饮品 ConvenienceStore = 33 // 便利店 Bakeries = 34 // 面包糕点 HotPot = 35 // 火锅 licence = 36 // 证照 Crayfish = 40 // 烧烤小龙虾 OtherInfo = 41 // 外部落地配 AlcoholAndTobacco = 47 // 烟酒行 AdultEroticaProducts = 48 // 成人用品 Other = 99 // 其他 ) // 注册请求api type API struct { devId string `json:"dev_id"` devKey string `json:"dev_key"` signature string `json:"sign"` pushTime int64 `json:"push_time"` locker sync.RWMutex client *http.Client config *platformapi.APIConfig } /************************************************订单*****************************************************/ //#region 获取蜂鸟门店信息 // 创建订单 type CreateOrder 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:口碑;其他请直接填写中文字符串值 LbsType int `json:"lbs_type"` // 坐标类型 1:百度坐标,2:高德坐标 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 *OrderDetails `json:"order_detail"` // 订单详情 MultiPickupInfo []*MultiPickupDetails `json:"multi_pickup_info"` // 多点取货信息 // 非必填 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 } // 发货店铺信息,必填 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"` // 店铺纬度 } // 收货人信息 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"` // 发单城市 } // 订单详情 type OrderDetails 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"` // 商家收取用户的配送费(单位:分) } // 购买物品详情清单 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"` // 详情 } // 取货地址详情 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"` // 取货点店铺物品信息 } //#endregion