diff --git a/platformapi/mtpsapi/riderInfo.go b/platformapi/mtpsapi/riderInfo.go index e17129cb..8b21ca16 100644 --- a/platformapi/mtpsapi/riderInfo.go +++ b/platformapi/mtpsapi/riderInfo.go @@ -17,4 +17,5 @@ type RiderInfo struct { LogisticsContext string `json:"logistics_context"` // 配送状态描述 Latitude string `json:"latitude"` // 骑手当前的纬度,美团使用的是高德坐标系。 Longitude string `json:"longitude"` // 骑手当前的经度,美团使用的是高德坐标系。 + OpCode string `json:"opcode"` // 抖音状态(抖音才需要) } diff --git a/platformapi/tiktok_shop/tiktok_api/afs_test.go b/platformapi/tiktok_shop/tiktok_api/afs_test.go index cc94fb17..01310670 100644 --- a/platformapi/tiktok_shop/tiktok_api/afs_test.go +++ b/platformapi/tiktok_shop/tiktok_api/afs_test.go @@ -8,7 +8,7 @@ import ( ) var token = `{"access_token":"c4afc5bc-7ddf-4244-b35a-0c393f3dca32","expires_in":1667203717,"scope":"SCOPE","shop_id":57939570,"shop_name":"京西菜市速食","refresh_token":"5a4f9dfe-306b-4bca-8b35-2ae9afc0245e","authority_id":""}` -var a = New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token) +var a = New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", "") // 查询售后单详情 func TestAfsOrder(t *testing.T) { diff --git a/platformapi/tiktok_shop/tiktok_api/api_test.go b/platformapi/tiktok_shop/tiktok_api/api_test.go index e5a2547c..a2d50b21 100644 --- a/platformapi/tiktok_shop/tiktok_api/api_test.go +++ b/platformapi/tiktok_shop/tiktok_api/api_test.go @@ -98,3 +98,14 @@ func TestYearDay(t *testing.T) { func TestApplyMarketAfterSale(t *testing.T) { a.ApplyMarketAfterSale(4994383659114192282, 2, 3) } + +func TestOrderStatusAndPsInfo(t *testing.T) { + a := NewExpress("7153997323561879075", "3517d3ea-b96b-4379-a7a4-2d9389e8ffeb", "") + a.CreateToken() + param := make(map[string]interface{}, 0) + param["third_carrier_order_id"] = "1412986874296139776" + param["logistics_context"] = "骑手送达2" + param["courier_name"] = "刘磊" + param["courier_phone"] = "18981810340" + a.OrderStatusAndPsInfo(param) +} diff --git a/platformapi/tiktok_shop/tiktok_api/logistics_express.go b/platformapi/tiktok_shop/tiktok_api/logistics_express.go index b842462c..d6a3208e 100644 --- a/platformapi/tiktok_shop/tiktok_api/logistics_express.go +++ b/platformapi/tiktok_shop/tiktok_api/logistics_express.go @@ -126,13 +126,9 @@ func (a *APIExpress) OrderStatusAndPsInfo(param map[string]interface{}) error { TrackNo: param["third_carrier_order_id"].(string), Traces: []logistics_indTrackPush_reqeust.TracesList{ { - Opcode: "ORDER_RECEIVED", - OpTime: utils.Time2TimeStr(time.Now()), - Content: param["logistics_context"].(string), - Rider: logistics_indTrackPush_reqeust.ReiderInfo{ - Name: param["courier_name"].(string), - Mobile: param["courier_phone"].(string), - }, + Opcode: param["opcode"].(string), + OpTime: utils.Time2Str(time.Now()), + Content: param["logistics_context"].(string), ThirdPartyCompany: TiktokExpressCode, ExceptionCode: "", ExceptionDesc: "", @@ -141,6 +137,14 @@ func (a *APIExpress) OrderStatusAndPsInfo(param map[string]interface{}) error { }, }, } + if param["courier_name"] != "" && param["courier_name"] != nil { + rider := logistics_indTrackPush_reqeust.ReiderInfo{ + Name: param["courier_name"].(string), + Mobile: param["courier_phone"].(string), + } + traceMsg.Traces[0].Rider = rider + } + traceMsgs = append(traceMsgs, traceMsg) psInfo.TraceMsgs = traceMsgs request.Param = psInfo @@ -148,10 +152,12 @@ func (a *APIExpress) OrderStatusAndPsInfo(param map[string]interface{}) error { globals.SugarLogger.Debugf("OrderStatusAndPsInfo=========:%s", utils.Format4Output(request.Param, false)) if a.accessTokenObj == nil || a.accessTokenObj.CreateTokenData.AccessToken == "" { a.CreateToken() - } else if a.accessTokenObj.CreateTokenData.ExpiresIn < time.Now().Unix() { + } else if a.expiresIn < time.Now().Unix() { a.RefreshToken() } result, err := request.Execute(a.accessTokenObj) + globals.SugarLogger.Debugf("OrderStatusAndPsInfo result :%s", utils.Format4Output(result, false)) + globals.SugarLogger.Debugf("OrderStatusAndPsInfo err :%s", err) if err != nil { return err } diff --git a/platformapi/tiktok_shop/tiktok_api/order.go b/platformapi/tiktok_shop/tiktok_api/order.go index 4e096a17..9e91608e 100644 --- a/platformapi/tiktok_shop/tiktok_api/order.go +++ b/platformapi/tiktok_shop/tiktok_api/order.go @@ -605,6 +605,9 @@ func (a *API) OrderDelivering(param *order_logisticsAdd_request.OrderLogisticsAd if err != nil { return err } + if result.Code == RequestSuccessRepeatedShipment { + return nil + } if result.Code != RequestSuccessCode { return errors.New(result.SubMsg) } diff --git a/platformapi/tiktok_shop/tiktok_api/order_type_const.go b/platformapi/tiktok_shop/tiktok_api/order_type_const.go index 8a9c5f98..f8bf1b04 100644 --- a/platformapi/tiktok_shop/tiktok_api/order_type_const.go +++ b/platformapi/tiktok_shop/tiktok_api/order_type_const.go @@ -1,6 +1,7 @@ package tiktok_api const RequestSuccessCode = 10000 +const RequestSuccessRepeatedShipment = 50002 // 订单已发货,不允许再次执行发货 const TiktokExpressCode = "chengdouruoxi" const ( @@ -183,3 +184,15 @@ const ( MaxRetailDiscountCreateBatchSize = 200 MaxRetailDiscountDeleteBatchSize = 100 ) + +const ( + TiktokLogisticsStatusCALLRIDER = "CALL_RIDER" // 呼叫骑手 + TiktokLogisticsORDERRECEIVED = "ORDER_RECEIVED" // 已接单 + TiktokLogisticsRIDERARRIVED = "RIDER_ARRIVED" // 已到店 + TiktokLogisticsRIDERPICKUP = "RIDER_PICK_UP" // 已取货 + TiktokLogisticsDELIVERED = "DELIVERED" // 已送达 + TiktokLogisticsDELIVERYOFFLINE = "DELIVERY_OFFLINE" // 此单由商家自行配送,具体配送进度请咨询商家 + TiktokLogisticsCHANGERIDER = "CHANGE_RIDER" // 更换骑手,继续为您配送 + TiktokLogisticsINDDELIVERYEXCEPTION = "IND_DELIVERY_EXCEPTION" // 订单配送异常,异常原因 + TiktokLogisticsCANCELDELIVERY = "CANCEL_DELIVERY" // 订单配送取消 +)