From e1cb934fbed3c7ee53efb8f60df28e3399d6f028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 31 Oct 2022 15:19:10 +0800 Subject: [PATCH 1/5] 1 --- platformapi/tiktok_shop/tiktok_api/logistics_express.go | 2 ++ platformapi/tiktok_shop/tiktok_api/order.go | 3 +++ platformapi/tiktok_shop/tiktok_api/order_type_const.go | 1 + 3 files changed, 6 insertions(+) diff --git a/platformapi/tiktok_shop/tiktok_api/logistics_express.go b/platformapi/tiktok_shop/tiktok_api/logistics_express.go index b842462c..0825e9ff 100644 --- a/platformapi/tiktok_shop/tiktok_api/logistics_express.go +++ b/platformapi/tiktok_shop/tiktok_api/logistics_express.go @@ -152,6 +152,8 @@ func (a *APIExpress) OrderStatusAndPsInfo(param map[string]interface{}) error { a.RefreshToken() } result, err := request.Execute(a.accessTokenObj) + globals.SugarLogger.Debugf("OrderStatusAndPsInfo result :%s", utils.Format4Output(request, 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..47ae4965 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 ( From 6cf7948e6c171e888fd7db0471ce6c9302382874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 31 Oct 2022 15:25:19 +0800 Subject: [PATCH 2/5] 1 --- platformapi/tiktok_shop/tiktok_api/logistics_express.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformapi/tiktok_shop/tiktok_api/logistics_express.go b/platformapi/tiktok_shop/tiktok_api/logistics_express.go index 0825e9ff..bedf489f 100644 --- a/platformapi/tiktok_shop/tiktok_api/logistics_express.go +++ b/platformapi/tiktok_shop/tiktok_api/logistics_express.go @@ -152,7 +152,7 @@ func (a *APIExpress) OrderStatusAndPsInfo(param map[string]interface{}) error { a.RefreshToken() } result, err := request.Execute(a.accessTokenObj) - globals.SugarLogger.Debugf("OrderStatusAndPsInfo result :%s", utils.Format4Output(request, false)) + globals.SugarLogger.Debugf("OrderStatusAndPsInfo result :%s", utils.Format4Output(result, false)) globals.SugarLogger.Debugf("OrderStatusAndPsInfo err :%s", err) if err != nil { return err From 04add8697ee3b420f1300b164a9c79d279e3491e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 31 Oct 2022 17:48:48 +0800 Subject: [PATCH 3/5] 1 --- platformapi/tiktok_shop/tiktok_api/afs_test.go | 2 +- platformapi/tiktok_shop/tiktok_api/api_test.go | 11 +++++++++++ .../tiktok_shop/tiktok_api/logistics_express.go | 4 ++-- 3 files changed, 14 insertions(+), 3 deletions(-) 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 fa6c2df8..843d2525 100644 --- a/platformapi/tiktok_shop/tiktok_api/api_test.go +++ b/platformapi/tiktok_shop/tiktok_api/api_test.go @@ -96,3 +96,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"] = "1412943984034971648" + param["logistics_context"] = "骑手接单" + 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 bedf489f..836744e3 100644 --- a/platformapi/tiktok_shop/tiktok_api/logistics_express.go +++ b/platformapi/tiktok_shop/tiktok_api/logistics_express.go @@ -127,7 +127,7 @@ func (a *APIExpress) OrderStatusAndPsInfo(param map[string]interface{}) error { Traces: []logistics_indTrackPush_reqeust.TracesList{ { Opcode: "ORDER_RECEIVED", - OpTime: utils.Time2TimeStr(time.Now()), + OpTime: utils.Time2Str(time.Now()), Content: param["logistics_context"].(string), Rider: logistics_indTrackPush_reqeust.ReiderInfo{ Name: param["courier_name"].(string), @@ -148,7 +148,7 @@ 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) From 1f8a1a8a226188d90ae9ba1e62c79fd28d7d6d9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 31 Oct 2022 18:25:53 +0800 Subject: [PATCH 4/5] 1 --- platformapi/tiktok_shop/tiktok_api/api_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platformapi/tiktok_shop/tiktok_api/api_test.go b/platformapi/tiktok_shop/tiktok_api/api_test.go index 843d2525..ea37345c 100644 --- a/platformapi/tiktok_shop/tiktok_api/api_test.go +++ b/platformapi/tiktok_shop/tiktok_api/api_test.go @@ -101,8 +101,8 @@ 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"] = "1412943984034971648" - param["logistics_context"] = "骑手接单" + param["third_carrier_order_id"] = "1412986874296139776" + param["logistics_context"] = "骑手送达2" param["courier_name"] = "刘磊" param["courier_phone"] = "18981810340" a.OrderStatusAndPsInfo(param) From 473c5cba35885d90b931251ec5b045140490885a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 31 Oct 2022 19:23:57 +0800 Subject: [PATCH 5/5] 1 --- platformapi/mtpsapi/riderInfo.go | 1 + .../tiktok_api/logistics_express.go | 18 +++++++++++------- .../tiktok_shop/tiktok_api/order_type_const.go | 12 ++++++++++++ 3 files changed, 24 insertions(+), 7 deletions(-) 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/logistics_express.go b/platformapi/tiktok_shop/tiktok_api/logistics_express.go index 836744e3..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.Time2Str(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 diff --git a/platformapi/tiktok_shop/tiktok_api/order_type_const.go b/platformapi/tiktok_shop/tiktok_api/order_type_const.go index 47ae4965..f8bf1b04 100644 --- a/platformapi/tiktok_shop/tiktok_api/order_type_const.go +++ b/platformapi/tiktok_shop/tiktok_api/order_type_const.go @@ -184,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" // 订单配送取消 +)