From 30cdc02508a2cdc7e0530a118829f12af1512f5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 9 Oct 2022 13:43:16 +0800 Subject: [PATCH 1/7] 1 --- platformapi/tiktok_shop/tiktok_api/api.go | 12 +++++++++--- platformapi/tiktok_shop/tiktok_api/api_test.go | 18 ++++++++++++++++++ .../tiktok_api/sku_warehouse_test.go | 2 +- 3 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 platformapi/tiktok_shop/tiktok_api/api_test.go diff --git a/platformapi/tiktok_shop/tiktok_api/api.go b/platformapi/tiktok_shop/tiktok_api/api.go index e336448e..43881afe 100644 --- a/platformapi/tiktok_shop/tiktok_api/api.go +++ b/platformapi/tiktok_shop/tiktok_api/api.go @@ -35,7 +35,8 @@ func New(appKey, appSecret, accessToken string) *API { globals.SugarLogger.Debug("accessToken init err :", err) return nil } - return &API{ + + api := &API{ appKey: appKey, appSecret: appSecret, accessToken: access.AccessToken, @@ -43,6 +44,10 @@ func New(appKey, appSecret, accessToken string) *API { expiresIn: access.ExpiresIn, accessTokenObj: access, } + if access.ExpiresIn > time.Now().Unix() { + api.RefreshToken() + } + return api } return &API{ appKey: appKey, @@ -145,11 +150,12 @@ func (a *API) SetAccessToken(token string) { return } + a.accessToken = access.AccessToken + a.refreshToken = access.RefreshToken + a.expiresIn = access.ExpiresIn if access.ExpiresIn > time.Now().Unix() { a.accessTokenObj = access } else { - a.accessToken = access.AccessToken - a.refreshToken = access.RefreshToken a.RefreshToken() } diff --git a/platformapi/tiktok_shop/tiktok_api/api_test.go b/platformapi/tiktok_shop/tiktok_api/api_test.go new file mode 100644 index 00000000..b73980e3 --- /dev/null +++ b/platformapi/tiktok_shop/tiktok_api/api_test.go @@ -0,0 +1,18 @@ +package tiktok_api + +import ( + "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/globals" + "testing" +) + +func TestApi(t *testing.T) { + token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652230,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authority_id":""}` + + a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token) + a.SetAccessToken(token) + globals.SugarLogger.Debugf("%v", utils.Format4Output(a, false)) + globals.SugarLogger.Debugf("%v", utils.Format4Output(a.accessTokenObj, false)) + globals.SugarLogger.Debugf("%v", utils.Format4Output(a.appKey, false)) + globals.SugarLogger.Debugf("%v", utils.Format4Output(a.appSecret, false)) +} diff --git a/platformapi/tiktok_shop/tiktok_api/sku_warehouse_test.go b/platformapi/tiktok_shop/tiktok_api/sku_warehouse_test.go index 7e2b9913..e035a6e6 100644 --- a/platformapi/tiktok_shop/tiktok_api/sku_warehouse_test.go +++ b/platformapi/tiktok_shop/tiktok_api/sku_warehouse_test.go @@ -47,7 +47,7 @@ func TestUploadImg(t *testing.T) { } func TestRefundToken(t *testing.T) { - token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":604800,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专 用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authority_id ":""}` + token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652252,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对 接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authorit y_id":""}` a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token) a.RefreshToken() From 665653c4ed09b08c775bd9fef8f49cb7ec09c607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 9 Oct 2022 13:46:45 +0800 Subject: [PATCH 2/7] 1 --- platformapi/tiktok_shop/tiktok_api/store.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/platformapi/tiktok_shop/tiktok_api/store.go b/platformapi/tiktok_shop/tiktok_api/store.go index 878736c6..30631e6e 100644 --- a/platformapi/tiktok_shop/tiktok_api/store.go +++ b/platformapi/tiktok_shop/tiktok_api/store.go @@ -214,7 +214,9 @@ func (a *API) GetStoreBindTemp(storeId int64) (freightId int64, err error) { if err != nil { return 0, err } - + if len(result.Data.StoreFreights) == 0 { + return 0, nil + } for _, v := range result.Data.StoreFreights { if v.StoreId == storeId { return v.FreightId, nil From 1fc2ff91f1d1baa5fe8109aa35605f1dbf1aa1eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 9 Oct 2022 13:52:34 +0800 Subject: [PATCH 3/7] 1 --- platformapi/tiktok_shop/tiktok_api/api.go | 2 +- platformapi/tiktok_shop/tiktok_api/store.go | 2 +- platformapi/tiktok_shop/tiktok_api/store_test.go | 7 +++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/platformapi/tiktok_shop/tiktok_api/api.go b/platformapi/tiktok_shop/tiktok_api/api.go index 43881afe..3bc368c1 100644 --- a/platformapi/tiktok_shop/tiktok_api/api.go +++ b/platformapi/tiktok_shop/tiktok_api/api.go @@ -44,7 +44,7 @@ func New(appKey, appSecret, accessToken string) *API { expiresIn: access.ExpiresIn, accessTokenObj: access, } - if access.ExpiresIn > time.Now().Unix() { + if access.ExpiresIn < time.Now().Unix() { api.RefreshToken() } return api diff --git a/platformapi/tiktok_shop/tiktok_api/store.go b/platformapi/tiktok_shop/tiktok_api/store.go index 30631e6e..d0cbe57a 100644 --- a/platformapi/tiktok_shop/tiktok_api/store.go +++ b/platformapi/tiktok_shop/tiktok_api/store.go @@ -214,7 +214,7 @@ func (a *API) GetStoreBindTemp(storeId int64) (freightId int64, err error) { if err != nil { return 0, err } - if len(result.Data.StoreFreights) == 0 { + if result.Data == nil || len(result.Data.StoreFreights) == 0 { return 0, nil } for _, v := range result.Data.StoreFreights { diff --git a/platformapi/tiktok_shop/tiktok_api/store_test.go b/platformapi/tiktok_shop/tiktok_api/store_test.go index d7ee17ed..b0c50501 100644 --- a/platformapi/tiktok_shop/tiktok_api/store_test.go +++ b/platformapi/tiktok_shop/tiktok_api/store_test.go @@ -35,3 +35,10 @@ func TestCreateStore(t *testing.T) { func TestSysnc(t *testing.T) { fmt.Println((2 & 2) != 0) // 创建 } + +func TestStoreTemp(t *testing.T) { + token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652230,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authority_id":""}` + + a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token) + a.GetStoreBindTemp(63114504) +} From d7d551c7ee14259fa70be4efe0a3fc4ce409d6cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 9 Oct 2022 14:03:05 +0800 Subject: [PATCH 4/7] 1 --- .../tiktok_shop/tiktok_api/store_test.go | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/platformapi/tiktok_shop/tiktok_api/store_test.go b/platformapi/tiktok_shop/tiktok_api/store_test.go index b0c50501..56f224e4 100644 --- a/platformapi/tiktok_shop/tiktok_api/store_test.go +++ b/platformapi/tiktok_shop/tiktok_api/store_test.go @@ -2,7 +2,10 @@ package tiktok_api import ( "fmt" + freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request" shop_batchCreateStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_batchCreateStore/request" + "git.rosy.net.cn/baseapi/utils" + "math/rand" "testing" ) @@ -42,3 +45,21 @@ func TestStoreTemp(t *testing.T) { a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token) a.GetStoreBindTemp(63114504) } + +func TestAPI_CreateTradeLimitTemplate(t *testing.T) { + token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652230,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authority_id":""}` + + a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token) + a.FreightTemplateCreate(&freightTemplate_create_request.FreightTemplateCreateParam{ + Template: &freightTemplate_create_request.Template{ + TemplateName: "小时购" + "_" + utils.Int64ToStr(rand.Int63n(19930)) + "_系统模板", + ProductProvince: 51, + ProductCity: 510100, + CalculateType: 2, + TransferType: 1, // 快递 + RuleType: 1, + FixedAmount: 500, + }, + Columns: nil, + }) +} From 90ce416eba2e417509c740d65b7a82a853691940 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 9 Oct 2022 15:48:05 +0800 Subject: [PATCH 5/7] 1 --- platformapi/tiktok_shop/tiktok_api/sku.go | 26 ++++++++++++++++--- .../tiktok_shop/tiktok_api/sku_test.go | 10 +++++++ 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/platformapi/tiktok_shop/tiktok_api/sku.go b/platformapi/tiktok_shop/tiktok_api/sku.go index 7d6fe303..929d9bdb 100644 --- a/platformapi/tiktok_shop/tiktok_api/sku.go +++ b/platformapi/tiktok_shop/tiktok_api/sku.go @@ -14,6 +14,7 @@ import ( product_listV2_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_listV2/response" product_setOffline_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_setOffline/request" shop_getShopCategory_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_getShopCategory/request" + sku_editPrice_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_editPrice/request" sku_syncStock_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_syncStock/request" sku_syncStockBatch_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_syncStockBatch/request" ) @@ -179,15 +180,19 @@ func (a *API) ProductSetOffline(productId int64) error { func (a *API) GetSkuDetail(productId, outProductId string) (*product_detail_response.ProductDetailData, error) { request := product_detail_request.New() param := request.GetParams() - param.ProductId = productId - param.OutProductId = outProductId + if productId != "" { + param.ProductId = productId + } + if outProductId != "" { + param.OutProductId = outProductId + } result, err := request.Execute(a.accessTokenObj) if err != nil { return nil, err } if result.Code != RequestSuccessCode { - return nil, err + return nil, errors.New(result.SubMsg) } return result.Data, nil } @@ -207,3 +212,18 @@ func (a *API) GetSkuDetailList(param *product_listV2_request.ProductListV2Param) return result.Data, nil } + +// EditPrice 编辑商品价格 +func (a *API) EditPrice(skuPrice *sku_editPrice_request.SkuEditPriceParam) error { + request := sku_editPrice_request.New() + request.Param = skuPrice + + result, err := request.Execute(a.accessTokenObj) + if err != nil { + return err + } + if result.Code != RequestSuccessCode { + return errors.New(result.SubMsg) + } + return nil +} diff --git a/platformapi/tiktok_shop/tiktok_api/sku_test.go b/platformapi/tiktok_shop/tiktok_api/sku_test.go index edcc54f6..c484f12a 100644 --- a/platformapi/tiktok_shop/tiktok_api/sku_test.go +++ b/platformapi/tiktok_shop/tiktok_api/sku_test.go @@ -6,6 +6,7 @@ import ( "git.rosy.net.cn/baseapi" product_addV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_addV2/request" "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/globals" "go.uber.org/zap" "strings" "testing" @@ -214,3 +215,12 @@ func TestCreateStoreCommodity(t *testing.T) { func TestInt16(t *testing.T) { fmt.Println(utils.Str2Int16(strings.ReplaceAll("08:00", ":", ""))) } + +func TestGetSkuDetail(t *testing.T) { + token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652230,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authority_id":""}` + + a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token) + data, err := a.GetSkuDetail("3574180746237226525", "") + fmt.Println(err) + globals.SugarLogger.Debugf("====%s", utils.Format4Output(data, false)) +} From 3baab718b1cb44ce5c5cec8fe54da6f58f4e3f02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 9 Oct 2022 17:47:14 +0800 Subject: [PATCH 6/7] 1 --- .../tiktok_shop/tiktok_api/store_test.go | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/platformapi/tiktok_shop/tiktok_api/store_test.go b/platformapi/tiktok_shop/tiktok_api/store_test.go index 56f224e4..03dcf494 100644 --- a/platformapi/tiktok_shop/tiktok_api/store_test.go +++ b/platformapi/tiktok_shop/tiktok_api/store_test.go @@ -4,6 +4,8 @@ import ( "fmt" freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request" shop_batchCreateStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_batchCreateStore/request" + warehouse_bindStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_bindStore/request" + warehouse_createBatch_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_createBatch/request" "git.rosy.net.cn/baseapi/utils" "math/rand" "testing" @@ -63,3 +65,40 @@ func TestAPI_CreateTradeLimitTemplate(t *testing.T) { Columns: nil, }) } + +// 批量创建区域仓 +func TestCreateWarehouse(t *testing.T) { + token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652230,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authority_id":""}` + a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token) + + data, err := a.BatchCreateWarehouse(&warehouse_createBatch_request.WarehouseCreateBatchParam{ + OutWarehouseList: []warehouse_createBatch_request.OutWarehouseListItem{ + { + OutWarehouseId: "666667", + Name: "火车南站仓库", + Intro: "这是一个火车南站的仓库,仓库id为京西门店id", + AddressDetail: "四川省成都市新都区大丰镇南丰大道37号", + WarehouseLocation: &warehouse_createBatch_request.WarehouseLocation{ + AddressId1: 51, + AddressId2: 510100, + AddressId3: 510114, + AddressId4: 0, + }, + }, + }}) + fmt.Println(data) + fmt.Println(err) +} + +// 仓库绑定门店 +func TestBindWarehouseToStore(t *testing.T) { + token := `{"access_token":"a1746210-a8a3-4497-a87b-09d1f10dbb95","expires_in":1665652230,"scope":"SCOPE","shop_id":"","shop_name":"小时达开放平台对接专用店","refresh_token":"c1cf8d88-0983-4f2a-b969-3746fae6b0cd","authority_id":""}` + a := New("7136048270014416392", "c397aa9f-3927-47c4-8cfe-4d84e02602e0", token) + + data, err := a.StoreBindWarehouse(&warehouse_bindStore_request.WarehouseBindStoreParam{ + StoreIds: []int64{63114504}, + OutWarehouseId: "666667", + }) + fmt.Println(data) + fmt.Println(err) +} From 4721c24be51ec8b88fb7ef87a10ba7bea2da3882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 9 Oct 2022 17:48:47 +0800 Subject: [PATCH 7/7] 1 --- .../api/warehouse_create/response/warehouse_create_response.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platformapi/tiktok_shop/sdk-golang/api/warehouse_create/response/warehouse_create_response.go b/platformapi/tiktok_shop/sdk-golang/api/warehouse_create/response/warehouse_create_response.go index 209b91e9..1ca1423f 100644 --- a/platformapi/tiktok_shop/sdk-golang/api/warehouse_create/response/warehouse_create_response.go +++ b/platformapi/tiktok_shop/sdk-golang/api/warehouse_create/response/warehouse_create_response.go @@ -1,5 +1,7 @@ package warehouse_create_response +import doudian_sdk "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/core" + type WarehouseCreateResponse struct { doudian_sdk.BaseDoudianOpApiResponse Data *WarehouseCreateData `json:"data"`