This commit is contained in:
suyl
2021-05-08 15:50:56 +08:00
parent 317fdd59a1
commit 2ae4b513dd
7 changed files with 122 additions and 4 deletions

View File

@@ -108,3 +108,14 @@ func (a *API) ListActivitys() (listActivitysResult []*ListActivitysResult, err e
}
return listActivitysResult, err
}
func (a *API) UnionPromotion(PID string) (err error) {
_, err = a.AccessStorePage("https://api.m.jd.com/api", map[string]interface{}{
"functionId": "unionPromotion",
"appid": "u",
"_": time.Now().UnixNano(),
"loginType": 3,
"body": "{\"funName\":\"savePromotionSite\",\"param\":{\"siteId\":4100279071,\"spaceName\":" + PID + ",\"type\":3,\"unionType\":1}}",
}, false)
return err
}

View File

@@ -30,3 +30,11 @@ func TestListActivitys(t *testing.T) {
}
t.Log(utils.Format4Output(result, false))
}
func TestUnionPromotion(t *testing.T) {
err := api.UnionPromotion("18160030913903")
if err != nil {
t.Fatal(err)
}
//t.Log(utils.Format4Output(result, false))
}

View File

@@ -2,8 +2,40 @@ package tbunionapi
import "git.rosy.net.cn/baseapi/utils"
type OptimusMaterialResult struct {
CategoryID int `json:"category_id"`
ClickURL string `json:"click_url"`
CommissionRate string `json:"commission_rate"`
CouponAmount int `json:"coupon_amount"`
CouponClickURL string `json:"coupon_click_url,omitempty"`
CouponEndTime string `json:"coupon_end_time"`
CouponRemainCount int `json:"coupon_remain_count"`
CouponShareURL string `json:"coupon_share_url,omitempty"`
CouponStartFee string `json:"coupon_start_fee"`
CouponStartTime string `json:"coupon_start_time"`
CouponTotalCount int `json:"coupon_total_count"`
ItemDescription string `json:"item_description"`
ItemID int64 `json:"item_id"`
JhsPriceUspList string `json:"jhs_price_usp_list"`
LevelOneCategoryID int `json:"level_one_category_id"`
LevelOneCategoryName string `json:"level_one_category_name"`
Nick string `json:"nick"`
PictURL string `json:"pict_url"`
ReservePrice string `json:"reserve_price"`
SellerID int64 `json:"seller_id"`
ShopTitle string `json:"shop_title"`
ShortTitle string `json:"short_title"`
SmallImages []string `json:"small_images,omitempty"`
SubTitle string `json:"sub_title"`
Title string `json:"title"`
UserType int `json:"user_type"`
Volume int `json:"volume"`
WhiteImage string `json:"white_image"`
ZkFinalPrice string `json:"zk_final_price"`
}
//物料精选
func (a *API) OptimusMaterial(materialID, adzoneID, pageNo, pageSize int) (activityInfoGetResult *ActivityInfoGetResult, err error) {
func (a *API) OptimusMaterial(materialID, adzoneID, pageNo, pageSize int) (activityInfoGetResult []*OptimusMaterialResult, err error) {
result, err := a.AccessAPI("taobao.tbk.dg.optimus.material", false, map[string]interface{}{
"material_id": materialID,
"adzone_id": adzoneID,
@@ -11,7 +43,30 @@ func (a *API) OptimusMaterial(materialID, adzoneID, pageNo, pageSize int) (activ
"page_size": pageSize,
})
if err == nil {
utils.Map2StructByJson(result, &activityInfoGetResult, false)
utils.Map2StructByJson(result["result_list"], &activityInfoGetResult, false)
}
return activityInfoGetResult, err
}
type MaterialOptionalParam struct {
AdzoneID int `json:"adzone_id,omitempty"`
Q string `json:"q,omitempty"`
ListID string `json:"list_id,omitempty"`
PageNo int `json:"page_no,omitempty"`
PageSize int `json:"page_size,omitempty"`
Sort int `json:"sort,omitempty"`
}
//物料搜索
func (a *API) MaterialOptional(materialID, adzoneID, pageNo, pageSize int) (activityInfoGetResult []*OptimusMaterialResult, err error) {
result, err := a.AccessAPI("taobao.tbk.dg.material.optional", false, map[string]interface{}{
"material_id": materialID,
"adzone_id": adzoneID,
"page_no": pageNo,
"page_size": pageSize,
})
if err == nil {
utils.Map2StructByJson(result["result_list"], &activityInfoGetResult, false)
}
return activityInfoGetResult, err
}

View File

@@ -6,7 +6,7 @@ import (
)
func TestOptimusMaterial(t *testing.T) {
result, err := api.OptimusMaterial(13366, 111339100149, 1, 20)
result, err := api.OptimusMaterial(28026, 111339100149, 1, 20)
if err != nil {
t.Fatal(err)
}

View File

@@ -14,7 +14,7 @@ import (
)
const (
prodURL = "http://gw.api.taobao.com/router/rest"
prodURL = "https://gw.api.taobao.com/router/rest"
testURL = "http://gw.api.tbsandbox.com/router/rest"
sigKey = "sign"
)
@@ -70,6 +70,7 @@ func (a *API) AccessAPI(action string, isPost bool, bizParams map[string]interfa
params["timestamp"] = utils.Time2Str(time.Now())
params["v"] = "2.0"
params["format"] = "json"
params["simplify"] = true
params = utils.MergeMaps(params, bizParams)
signStr := a.signParam(params)
params[sigKey] = signStr

View File

@@ -123,3 +123,30 @@ func (a *API) GatewayUnionpub() (gatewayUnionpubResult []*GatewayUnionpubResult,
}
return gatewayUnionpubResult, err
}
//长链转短链
func (a *API) SpreadGet(url string) (result string, err error) {
data, err := a.AccessAPI("taobao.tbk.spread.get", false, map[string]interface{}{
"requests": "[{\"url\":\"" + url + "\"}]",
})
if err == nil {
return data["results"].([]interface{})[0].(map[string]interface{})["content"].(string), err
}
return result, err
}
type TpwdCreateResult struct {
Model string `json:"model"`
PasswordSimple string `json:"password_simple"`
}
//淘口令生成
func (a *API) TpwdCreate(url string) (tpwdCreateResult *TpwdCreateResult, err error) {
result, err := a.AccessAPI("taobao.tbk.tpwd.create", false, map[string]interface{}{
"url": url,
})
if err == nil {
utils.Map2StructByJson(result["data"], &tpwdCreateResult, false)
}
return tpwdCreateResult, err
}

View File

@@ -52,3 +52,19 @@ func TestGatewayUnionpub(t *testing.T) {
}
t.Log(utils.Format4Output(result, false))
}
func TestSpreadGet(t *testing.T) {
result, err := api.SpreadGet("https://s.click.taobao.com/t?e=m%3D2%26s%3D2gqN73exILFw4vFB6t2Z2ueEDrYVVa64Dne87AjQPk9yINtkUhsv0NoOB2fLPTMnkVwhSHgXrieh50lqdFqzEbW9xosplKRRRCvhzyw83VKVDvy6A0dAZeLisOrebtw4UyNpxLfgKr0jWpzpm6nEC0AG4SvB2excV3hN7ukc%2BfWwcfTMMtg5PxhC2gPyIPYTElgJOKaPvK1xKmPmpIKZsA%3D%3D&scm=1007.15348.115058.0_28026&pvid=a6cb6b60-9b39-4d8e-bcec-eef56cfeac8a&app_pvid=59590_33.8.141.241_825_1620441096797&ptl=floorId:28026;originalFloorId:28026;pvid:a6cb6b60-9b39-4d8e-bcec-eef56cfeac8a;app_pvid:59590_33.8.141.241_825_1620441096797&union_lens=lensId%3AMAPI%401620441096%40a6cb6b60-9b39-4d8e-bcec-eef56cfeac8a_591944957973%401")
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestTpwdCreate(t *testing.T) {
result, err := api.TpwdCreate("https://s.click.taobao.com/t?e=m%3D2%26s%3D2gqN73exILFw4vFB6t2Z2ueEDrYVVa64Dne87AjQPk9yINtkUhsv0NoOB2fLPTMnkVwhSHgXrieh50lqdFqzEbW9xosplKRRRCvhzyw83VKVDvy6A0dAZeLisOrebtw4UyNpxLfgKr0jWpzpm6nEC0AG4SvB2excV3hN7ukc%2BfWwcfTMMtg5PxhC2gPyIPYTElgJOKaPvK1xKmPmpIKZsA%3D%3D&scm=1007.15348.115058.0_28026&pvid=a6cb6b60-9b39-4d8e-bcec-eef56cfeac8a&app_pvid=59590_33.8.141.241_825_1620441096797&ptl=floorId:28026;originalFloorId:28026;pvid:a6cb6b60-9b39-4d8e-bcec-eef56cfeac8a;app_pvid:59590_33.8.141.241_825_1620441096797&union_lens=lensId%3AMAPI%401620441096%40a6cb6b60-9b39-4d8e-bcec-eef56cfeac8a_591944957973%401")
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}