From 6cace4189ed90229e5e9f3015362c0067395058e Mon Sep 17 00:00:00 2001 From: fir <417516752@qq.com> Date: Mon, 14 Oct 2019 10:46:39 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=B7=98=E5=AE=9D=E5=AE=A2-=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=95=86-=E6=89=80=E6=9C=89=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constants.go | 20 +++++----- tkl_convert.go | 104 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 113 insertions(+), 11 deletions(-) diff --git a/constants.go b/constants.go index 99f9801..0038fcc 100644 --- a/constants.go +++ b/constants.go @@ -1,15 +1,16 @@ package tbksdk type constants struct { - AlimamaKey string - AlimamaSecret string - AlimamaApiUrl string - AlimamaTpwdConvertUrl string - AlimamaItemInfoGetUrl string - AlimamaPrivilegeGet string - AlimamaTklCreate string - AlimamaScMaterialOptional string - AlimamaTbkCouponGet string + AlimamaKey string + AlimamaSecret string + AlimamaApiUrl string + AlimamaTpwdConvertUrl string + AlimamaItemInfoGetUrl string + AlimamaPrivilegeGet string + AlimamaTklCreate string + AlimamaScMaterialOptional string + AlimamaTbkCouponGet string + AlimamaTbkScOrderDetailsGet string } var Constants = constants{} @@ -26,4 +27,5 @@ func init() { Constants.AlimamaTklCreate = "taobao.tbk.tpwd.create" Constants.AlimamaScMaterialOptional = "taobao.tbk.sc.material.optional" Constants.AlimamaTbkCouponGet = "taobao.tbk.coupon.get" + Constants.AlimamaTbkScOrderDetailsGet = "taobao.tbk.sc.order.details.get" } diff --git a/tkl_convert.go b/tkl_convert.go index b4d55ff..2c87f46 100644 --- a/tkl_convert.go +++ b/tkl_convert.go @@ -343,6 +343,106 @@ func TbkCouponGet(itemId int64, couponId string) (*TbkCouponGetData, error) { return &respData.TbkCouponGetResponse.Data, nil } +type tbkScOrderDetailsGetResponseData struct { + TbkScOrderDetailsGetResponse TbkScOrderDetailsGetResponse `json:"tbk_sc_order_details_get_response"` +} +type TbkScOrderDetailsGetResponse struct { + Data struct { + Results struct { + PublisherOrderDto []PublisherOrderDto `json:"publisher_order_dto"` + } `json:"results"` + HasPre bool `json:"has_pre"` + PositionIndex string `json:"position_index"` + HasNext bool `json:"has_next"` + PageNo int64 `json:"page_no"` + PageSize int64 `json:"page_size"` + } `json:"data"` +} +type PublisherOrderDto struct { + TbPaidTime string `json:"tb_paid_time"` + TkPaidTime string `json:"tk_paid_time"` + PayPrice string `json:"pay_price"` + PubShareFee string `json:"pub_share_fee"` + TradeId string `json:"trade_id"` + TkOrderRole int64 `json:"tk_order_role"` + TkEarningTime string `json:"tk_earning_time"` + AdzoneId int64 `json:"adzone_id"` + PubShareRate string `json:"pub_share_rate"` + RefundTag int64 `json:"refund_tag"` + SubsidyRate string `json:"subsidy_rate"` + TkTotalRate string `json:"tk_total_rate"` + ItemCategoryName string `json:"item_category_name"` + SellerNick string `json:"seller_nick"` + PubId int64 `json:"pub_id"` + AlimamaRate string `json:"alimama_rate"` + SubsidyType string `json:"subsidy_type"` + ItemImg string `json:"item_img"` + PubSharePreFee string `json:"pub_share_pre_fee"` + AlipayTotalPrice string `json:"alipay_total_price"` + ItemTitle string `json:"item_title"` + SiteName string `json:"site_name"` + ItemNum int64 `json:"item_num"` + SubsidyFee string `json:"subsidy_fee"` + AlimamaShareFee string `json:"alimama_share_fee"` + TradeParentId string `json:"trade_parent_id"` + OrderType string `json:"order_type"` + TkCreateTime string `json:"tk_create_time"` + FlowSource string `json:"flow_source"` + TerminalType string `json:"terminal_type"` + ClickTime string `json:"click_time"` + TkStatus int8 `json:"tk_status"` + ItemPrice string `json:"item_price"` + ItemId int64 `json:"item_id"` + AdzoneName string `json:"adzone_name"` + TotalCommissionRate string `json:"total_commission_rate"` + ItemLink string `json:"item_link"` + SiteId int64 `json:"site_id"` + SellerShopTitle string `json:"seller_shop_title"` + IncomeRate string `json:"income_rate"` + TotalCommissionFee string `json:"total_commission_fee"` + TkCommissionPreFeeForMediaPlatform string `json:"tk_commission_pre_fee_for_media_platform"` + TkCommissionFeeForMediaPlatform string `json:"tk_commission_fee_for_media_platform"` + TkCommissionRateForMediaPlatform string `json:"tk_commission_rate_for_media_platform"` + SpecialId int64 `json:"special_id"` + RelationId int64 `json:"relation_id"` +} + +/** +淘宝客-服务商-所有订单查询 +https://open.taobao.com/api.htm?spm=a219a.7386653.0.0.2b43669aJY6jMz&source=search&docId=43755&docType=2 +*/ +func TbkScOrderDetailsGet(startTime string, endTime string, session string, pageNo int64, pageSize int64, positionIndex string, queryType int64) (*TbkScOrderDetailsGetResponse, error) { + var paramsMap = map[string]string{ + "start_time": startTime, + "end_time": endTime, + "session": session, + "page_no": strconv.FormatInt(pageNo, 10), + "page_size": strconv.FormatInt(pageSize, 10), + "position_index": positionIndex, + "query_type": strconv.FormatInt(queryType, 10), + "jump_type": "1", + "order_scene": "1", + } + var bodyByte, err = apply(Constants.AlimamaTbkScOrderDetailsGet, paramsMap) + if err != nil { + return nil, err + } + var respData = tbkScOrderDetailsGetResponseData{} + err = json.Unmarshal(*bodyByte, &respData) + if err != nil { + return nil, err + } + if respData.TbkScOrderDetailsGetResponse.Data.PageNo == 0 { + errorResponse := ErrorResponse{} + _ = json.Unmarshal(*bodyByte, &errorResponse) + if errorResponse.ErrorResponse.Code != 0 { + return nil, errors.New(string(*bodyByte)) + } + return nil, errors.New("data is empty") + } + return &respData.TbkScOrderDetailsGetResponse, nil +} + func apply(api string, params map[string]string) (*[]byte, error) { paramMap := map[string]string{ "app_key": Constants.AlimamaKey, @@ -387,9 +487,9 @@ func createSign(paramMap map[string]string) string { sign := Constants.AlimamaSecret var paramKeySlice []string - for k, v := range paramMap { + for k, _ := range paramMap { //&& k != "session" - if k != "" && v != "" { + if k != "" { paramKeySlice = append(paramKeySlice, k) } } From 29ad002ebfa89aa2d0bd5156baa25d0c409942ba Mon Sep 17 00:00:00 2001 From: "15338215615@163.com" <15338215615@163.com> Date: Wed, 30 Oct 2019 15:20:18 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E8=BD=AC=E9=93=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tkl_convert.go | 75 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 2 deletions(-) diff --git a/tkl_convert.go b/tkl_convert.go index 2c87f46..3244909 100644 --- a/tkl_convert.go +++ b/tkl_convert.go @@ -170,7 +170,7 @@ func PrivilegeGet(session string, itemId int64, adzoneId string, siteId string) if err != nil { return nil, err } - //得到了返回,但不是item信息,尝试解析为ErrorResponse + // 得到了返回,但不是item信息,尝试解析为ErrorResponse if respData.TbkPrivilegeGetResponse.Result.Data.ItemID == 0 { errorResponse := ErrorResponse{} _ = json.Unmarshal(*bodyByte, &errorResponse) @@ -407,6 +407,16 @@ type PublisherOrderDto struct { RelationId int64 `json:"relation_id"` } +type TbkScActivityResponse struct { + TbkScActivitylinkToolgetResponse struct { + ResultMsg string `json:"result_msg"` + Data string `json:"data"` + ResultCode int64 `json:"result_code"` + BizErrorDesc string `json:"biz_error_desc"` + BizErrorCode int64 `json:"biz_error_code"` + } `json:"tbk_sc_activitylink_toolget_response"` +} + /** 淘宝客-服务商-所有订单查询 https://open.taobao.com/api.htm?spm=a219a.7386653.0.0.2b43669aJY6jMz&source=search&docId=43755&docType=2 @@ -443,6 +453,67 @@ func TbkScOrderDetailsGet(startTime string, endTime string, session string, page return &respData.TbkScOrderDetailsGetResponse, nil } +// 官方活动转链 https://open.taobao.com/api.htm?docId=41921&docType=2&source=search +func TbkScActivityLinkToolGet(activityId int64, adzoneId, siteId, session string) (string, error) { + paramMap := map[string]string{ + "adzone_id": adzoneId, + "site_id": siteId, + "promotion_scene_id": strconv.FormatInt(activityId, 10), + "platform": "2", + "session": session, + } + var bodyByte, err = apply(Constants.AlimamaTbkScActivityLinkToolGet, paramMap) + if err != nil { + return "", err + } + var respData = TbkScActivityResponse{} + err = json.Unmarshal(*bodyByte, &respData) + if err != nil { + return "", err + } + return respData.TbkScActivitylinkToolgetResponse.Data, nil +} + +type TbkSpreadGetResponse struct { + TbkSpreadGetResponse struct { + Results struct { + TbkSpread []struct { + Content string `json:"content"` + ErrMsg string `json:"err_msg"` + } `json:"tbk_spread"` + } `json:"results"` + TotalResults int `json:"total_results"` + RequestID string `json:"request_id"` + } `json:"tbk_spread_get_response"` +} + +// 长链转短链 https://open.taobao.com/api.htm?spm=a219a.7386797.0.0.723f669aQgtoLl&source=search&docId=27832&docType=2 +func TbkSpreadGet(url, session string) (string, error) { + paramMap := map[string]string{ + "app_key": Constants.AlimamaKey, + "method": Constants.AlimamaTbkSpreadGet, + "session": session, + "format": "json", + "v": "2.0", + "sign_method": "md5", + "timestamp": time.Now().Format("2006-01-02 15:04:05"), + "requests": `[{"url":"` + url + `"}]`, + } + var bodyByte, err = apply(Constants.AlimamaTbkSpreadGet, paramMap) + if err != nil { + return "", err + } + var respData = TbkSpreadGetResponse{} + err = json.Unmarshal(*bodyByte, &respData) + if err != nil { + return "", err + } + if len(respData.TbkSpreadGetResponse.Results.TbkSpread) > 0 { + return respData.TbkSpreadGetResponse.Results.TbkSpread[0].Content, nil + } + return "", nil +} + func apply(api string, params map[string]string) (*[]byte, error) { paramMap := map[string]string{ "app_key": Constants.AlimamaKey, @@ -488,7 +559,7 @@ func createSign(paramMap map[string]string) string { var paramKeySlice []string for k, _ := range paramMap { - //&& k != "session" + // && k != "session" if k != "" { paramKeySlice = append(paramKeySlice, k) } From f5a220b94ce5321691ffc7cb17cbea3d7a451868 Mon Sep 17 00:00:00 2001 From: "15338215615@163.com" <15338215615@163.com> Date: Wed, 30 Oct 2019 16:19:19 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E8=BD=AC=E9=93=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constants.go | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/constants.go b/constants.go index 0038fcc..f7303c3 100644 --- a/constants.go +++ b/constants.go @@ -1,25 +1,27 @@ package tbksdk type constants struct { - AlimamaKey string - AlimamaSecret string - AlimamaApiUrl string - AlimamaTpwdConvertUrl string - AlimamaItemInfoGetUrl string - AlimamaPrivilegeGet string - AlimamaTklCreate string - AlimamaScMaterialOptional string - AlimamaTbkCouponGet string - AlimamaTbkScOrderDetailsGet string + AlimamaKey string + AlimamaSecret string + AlimamaApiUrl string + AlimamaTpwdConvertUrl string + AlimamaItemInfoGetUrl string + AlimamaPrivilegeGet string + AlimamaTklCreate string + AlimamaScMaterialOptional string + AlimamaTbkCouponGet string + AlimamaTbkScOrderDetailsGet string + AlimamaTbkScActivityLinkToolGet string + AlimamaTbkSpreadGet string } var Constants = constants{} func init() { // alimama related - Constants.AlimamaKey = "" - Constants.AlimamaSecret = "" - //api + Constants.AlimamaKey = "27709680" + Constants.AlimamaSecret = "639563ff1c0f63837c1cb1a72134a86e" + // api Constants.AlimamaApiUrl = "http://gw.api.taobao.com/router/rest?" Constants.AlimamaTpwdConvertUrl = "taobao.tbk.sc.tpwd.convert" Constants.AlimamaItemInfoGetUrl = "taobao.tbk.item.info.get" @@ -28,4 +30,6 @@ func init() { Constants.AlimamaScMaterialOptional = "taobao.tbk.sc.material.optional" Constants.AlimamaTbkCouponGet = "taobao.tbk.coupon.get" Constants.AlimamaTbkScOrderDetailsGet = "taobao.tbk.sc.order.details.get" + Constants.AlimamaTbkScActivityLinkToolGet = "taobao.tbk.sc.activitylink.toolget" // 官方活动转链 + Constants.AlimamaTbkSpreadGet = "taobao.tbk.spread.get" // 官方活动长链转短链 } From 6f7331732eaf78f74fb2668eacc7ebd16cfd8bf4 Mon Sep 17 00:00:00 2001 From: "15338215615@163.com" <15338215615@163.com> Date: Wed, 30 Oct 2019 16:25:01 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constants.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/constants.go b/constants.go index f7303c3..c21939c 100644 --- a/constants.go +++ b/constants.go @@ -19,8 +19,8 @@ var Constants = constants{} func init() { // alimama related - Constants.AlimamaKey = "27709680" - Constants.AlimamaSecret = "639563ff1c0f63837c1cb1a72134a86e" + Constants.AlimamaKey = "" + Constants.AlimamaSecret = "" // api Constants.AlimamaApiUrl = "http://gw.api.taobao.com/router/rest?" Constants.AlimamaTpwdConvertUrl = "taobao.tbk.sc.tpwd.convert" From 788bccd1bc0afafba95b5403227146202f7550ea Mon Sep 17 00:00:00 2001 From: "15338215615@163.com" <15338215615@163.com> Date: Tue, 7 Jan 2020 18:40:38 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tkl_convert.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tkl_convert.go b/tkl_convert.go index 3244909..6531960 100644 --- a/tkl_convert.go +++ b/tkl_convert.go @@ -421,7 +421,11 @@ type TbkScActivityResponse struct { 淘宝客-服务商-所有订单查询 https://open.taobao.com/api.htm?spm=a219a.7386653.0.0.2b43669aJY6jMz&source=search&docId=43755&docType=2 */ -func TbkScOrderDetailsGet(startTime string, endTime string, session string, pageNo int64, pageSize int64, positionIndex string, queryType int64) (*TbkScOrderDetailsGetResponse, error) { +func TbkScOrderDetailsGet(startTime string, endTime string, session string, pageNo int64, pageSize int64, positionIndex string, queryType, orderScene int64) (*TbkScOrderDetailsGetResponse, error) { + orderSceneStr := "1" + if orderScene != 0 { + orderSceneStr = strconv.FormatInt(orderScene, 10) + } var paramsMap = map[string]string{ "start_time": startTime, "end_time": endTime, @@ -431,7 +435,7 @@ func TbkScOrderDetailsGet(startTime string, endTime string, session string, page "position_index": positionIndex, "query_type": strconv.FormatInt(queryType, 10), "jump_type": "1", - "order_scene": "1", + "order_scene": orderSceneStr, } var bodyByte, err = apply(Constants.AlimamaTbkScOrderDetailsGet, paramsMap) if err != nil {