聚推客api对接
This commit is contained in:
parent
52694b22e5
commit
a470a5ebb8
11
index.go
11
index.go
@ -5,6 +5,7 @@ import (
|
||||
|
||||
didiunion "gitee.com/chengdu-lenntc/third-platform-sdk/platform/didi-union"
|
||||
elemeunion "gitee.com/chengdu-lenntc/third-platform-sdk/platform/eleme-union"
|
||||
"gitee.com/chengdu-lenntc/third-platform-sdk/platform/jutuike"
|
||||
meituancsr "gitee.com/chengdu-lenntc/third-platform-sdk/platform/meituan-csr"
|
||||
"gitee.com/chengdu-lenntc/third-platform-sdk/platform/meituan-media"
|
||||
meituanunion "gitee.com/chengdu-lenntc/third-platform-sdk/platform/meituan-union"
|
||||
@ -25,6 +26,8 @@ const (
|
||||
PlatformT3Union = "t3_union"
|
||||
// PlatformMeituanMedia 美团-美天赚
|
||||
PlatformMeituanMedia = "meituan_media"
|
||||
// PlatformJutuike 聚推客
|
||||
PlatformJutuike = "jutuike"
|
||||
)
|
||||
|
||||
// PlatformNameMap 平台名称
|
||||
@ -35,6 +38,7 @@ var PlatformNameMap = map[string]string{
|
||||
PlatformDidiUnion: "滴滴联盟",
|
||||
PlatformT3Union: "t3联盟",
|
||||
PlatformMeituanMedia: "美团-美天赚",
|
||||
PlatformJutuike: "聚推客",
|
||||
}
|
||||
|
||||
// GetPlatformName 获取平台名称
|
||||
@ -62,10 +66,17 @@ func NewDidiUnionApi(log logx.Logger, conf didiunion.AuthConfig) didiunion.DidiU
|
||||
return didiunion.NewApiClient(log, conf)
|
||||
}
|
||||
|
||||
// NewT3UnionApi t3联盟
|
||||
func NewT3UnionApi(log logx.Logger, conf t3_union.AuthConfig) t3_union.T3UnionApi {
|
||||
return t3_union.NewApiClient(log, conf)
|
||||
}
|
||||
|
||||
// NewMeituanMediaApi 美团-美天赚
|
||||
func NewMeituanMediaApi(log logx.Logger, conf meituan_media.AuthConfig) meituan_media.MeituanMediaApi {
|
||||
return meituan_media.NewApiClient(log, conf)
|
||||
}
|
||||
|
||||
// NewJutuikeApi 聚推客
|
||||
func NewJutuikeApi(log logx.Logger, conf jutuike.AuthConfig) jutuike.JutuikeApi {
|
||||
return jutuike.NewApiClient(log, conf)
|
||||
}
|
||||
|
||||
70
platform/jutuike/api.go
Normal file
70
platform/jutuike/api.go
Normal file
@ -0,0 +1,70 @@
|
||||
package jutuike
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
|
||||
"gitee.com/chengdu-lenntc/third-platform-sdk/client"
|
||||
"gitee.com/chengdu-lenntc/third-platform-sdk/util"
|
||||
)
|
||||
|
||||
// JutuikeApi 美团-美天赚
|
||||
// Api defines the interface of jutuike api
|
||||
type JutuikeApi interface {
|
||||
// GenerateLink 生成推广链接
|
||||
GenerateLink(ctx context.Context, req GenerateLinkRequest) (*GenerateLinkData, error)
|
||||
// QueryOrderList 查询订单列表
|
||||
QueryOrderList(ctx context.Context, req QueryOrderListRequest) (*QueryOrderListData, error)
|
||||
}
|
||||
|
||||
type jutuikeApiImpl struct {
|
||||
log logx.Logger
|
||||
client *Client
|
||||
}
|
||||
|
||||
func newJutuikeApiImpl(log logx.Logger, client *Client) JutuikeApi {
|
||||
return &jutuikeApiImpl{
|
||||
log: log,
|
||||
client: client,
|
||||
}
|
||||
}
|
||||
|
||||
// GenerateLink 生成推广链接
|
||||
func (a *jutuikeApiImpl) GenerateLink(ctx context.Context, req GenerateLinkRequest) (*GenerateLinkData, error) {
|
||||
if len(req.ApiKey) == 0 {
|
||||
req.ApiKey = a.client.authConfig.ApiKey
|
||||
}
|
||||
args := util.StructToMap(req)
|
||||
request := &client.HttpRequest{Headers: a.client.headers, QueryArgs: args}
|
||||
response := new(GenerateLinkResponse)
|
||||
if err := a.client.HttpGet(GetLinkUrl, request, &client.HttpResponse{Result: response}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if response.Code != 1 {
|
||||
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": response}}).
|
||||
Errorf("[jutuikeApiImpl][GenerateLink] response result error: %s", response.Msg)
|
||||
return nil, errors.New(response.Msg)
|
||||
}
|
||||
return response.Data, nil
|
||||
}
|
||||
|
||||
// QueryOrderList 查询订单列表
|
||||
func (a *jutuikeApiImpl) QueryOrderList(ctx context.Context, req QueryOrderListRequest) (*QueryOrderListData, error) {
|
||||
if len(req.ApiKey) == 0 {
|
||||
req.ApiKey = a.client.authConfig.ApiKey
|
||||
}
|
||||
args := util.StructToMap(req)
|
||||
request := &client.HttpRequest{Headers: a.client.headers, BodyArgs: args}
|
||||
response := new(QueryOrderListResponse)
|
||||
if err := a.client.HttpPost(GetOrderListUrl, request, &client.HttpResponse{Result: response}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if response.Code != 1 {
|
||||
a.log.WithFields(logx.LogField{Key: "data", Value: map[string]any{"req": req, "resp": response}}).
|
||||
Errorf("[jutuikeApiImpl][QueryOrderList] response result error: %s", response.Msg)
|
||||
return nil, errors.New(response.Msg)
|
||||
}
|
||||
return response.Data, nil
|
||||
}
|
||||
61
platform/jutuike/api_test.go
Normal file
61
platform/jutuike/api_test.go
Normal file
@ -0,0 +1,61 @@
|
||||
package jutuike
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/suite"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
// api-单元测试
|
||||
type apiClientSuite struct {
|
||||
suite.Suite
|
||||
api JutuikeApi
|
||||
}
|
||||
|
||||
func TestApiClient(t *testing.T) {
|
||||
suite.Run(t, new(apiClientSuite))
|
||||
}
|
||||
|
||||
func (a *apiClientSuite) SetupSuite() {
|
||||
log := logx.WithContext(context.Background())
|
||||
apiClient := NewApiClient(log, AuthConfig{
|
||||
ApiKey: "IyftVpzDVqDIRDqPZByW5xVpj9MgZSB7",
|
||||
})
|
||||
a.api = apiClient
|
||||
}
|
||||
|
||||
func (a *apiClientSuite) Test_GenerateLink() {
|
||||
req := GenerateLinkRequest{
|
||||
ActId: 3,
|
||||
Sid: "f3a8c1",
|
||||
}
|
||||
result, err := a.api.GenerateLink(context.Background(), req)
|
||||
if !a.NoError(err) {
|
||||
a.T().Errorf("========[Test_GenerateLink] response error:%s", err)
|
||||
return
|
||||
}
|
||||
resultByte, err := json.Marshal(result)
|
||||
if err != nil {
|
||||
a.T().Errorf("========[Test_GenerateLink] json_marshal error:%s", err)
|
||||
return
|
||||
}
|
||||
a.T().Logf("=====[Test_GenerateLink] result: %s", string(resultByte))
|
||||
}
|
||||
|
||||
func (a *apiClientSuite) Test_QueryOrderList() {
|
||||
req := QueryOrderListRequest{}
|
||||
result, err := a.api.QueryOrderList(context.Background(), req)
|
||||
if !a.NoError(err) {
|
||||
a.T().Errorf("========[Test_QueryOrderList] response error:%s", err)
|
||||
return
|
||||
}
|
||||
resultByte, err := json.Marshal(result)
|
||||
if err != nil {
|
||||
a.T().Errorf("========[Test_QueryOrderList] json_marshal error:%s", err)
|
||||
return
|
||||
}
|
||||
a.T().Logf("=====[Test_QueryOrderList] result: %s", string(resultByte))
|
||||
}
|
||||
36
platform/jutuike/client.go
Normal file
36
platform/jutuike/client.go
Normal file
@ -0,0 +1,36 @@
|
||||
package jutuike
|
||||
|
||||
import (
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
|
||||
"gitee.com/chengdu-lenntc/third-platform-sdk/client"
|
||||
)
|
||||
|
||||
// AuthConfig api鉴权参数
|
||||
type AuthConfig struct {
|
||||
ApiKey string // api key
|
||||
}
|
||||
|
||||
// 连接第三方平台的client
|
||||
type Client struct {
|
||||
log logx.Logger
|
||||
authConfig AuthConfig
|
||||
client.HttpClient
|
||||
headers map[string]string
|
||||
}
|
||||
|
||||
func NewApiClient(log logx.Logger, conf AuthConfig) JutuikeApi {
|
||||
clt := newClient(log, conf)
|
||||
return newJutuikeApiImpl(log, clt)
|
||||
}
|
||||
|
||||
func newClient(log logx.Logger, conf AuthConfig) *Client {
|
||||
return &Client{
|
||||
log: log,
|
||||
authConfig: conf,
|
||||
HttpClient: client.NewHttpClient(log),
|
||||
headers: map[string]string{
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
}
|
||||
}
|
||||
18
platform/jutuike/consts.go
Normal file
18
platform/jutuike/consts.go
Normal file
@ -0,0 +1,18 @@
|
||||
package jutuike
|
||||
|
||||
// 相关地址
|
||||
const (
|
||||
SiteDomain = "https://pub.jutuike.com" // Domain 后台域名
|
||||
SiteUrl = "https://pub.jutuike.com/login" // SiteUrl 后台地址
|
||||
DocUrl = "https://www.jutuike.com/document" // DocUrl 文档地址
|
||||
ApiDocUrl = "https://www.jutuike.com/doc/48" // ApiDocUrl api文档地址
|
||||
)
|
||||
|
||||
// 接口地址
|
||||
const (
|
||||
ApiDomain = "http://api.jutuike.com" // Domain api域名
|
||||
GetLinkUri = "/union/act"
|
||||
GetOrderListUri = "/union/orders"
|
||||
GetLinkUrl = ApiDomain + GetLinkUri
|
||||
GetOrderListUrl = ApiDomain + GetOrderListUri
|
||||
)
|
||||
80
platform/jutuike/types.go
Normal file
80
platform/jutuike/types.go
Normal file
@ -0,0 +1,80 @@
|
||||
package jutuike
|
||||
|
||||
import "time"
|
||||
|
||||
type GenerateLinkRequest struct {
|
||||
ApiKey string `json:"apikey"` // api key
|
||||
ActId int64 `json:"act_id"` // 活动id
|
||||
Sid string `json:"sid"` // 自定义参数
|
||||
}
|
||||
|
||||
// GenerateLinkResponse 生成推广链接响应
|
||||
type GenerateLinkResponse struct {
|
||||
Code int32 `json:"code"` // 错误码
|
||||
Msg string `json:"msg"` // 错误消息
|
||||
Data *GenerateLinkData `json:"data"` // 数据结构
|
||||
}
|
||||
|
||||
type GenerateLinkData struct {
|
||||
H5 string `json:"h5"` // 推广短链接(部分活动没有,请注意判断)
|
||||
WeAppInfo WeAppInfo `json:"we_app_info"` // 小程序信息(部分活动没有,请注意判断)
|
||||
ActName string `json:"act_name"` // 活动名称
|
||||
LongH5 string `json:"long_h5"` // 推广长链接(部分活动没有,请注意判断)
|
||||
}
|
||||
|
||||
type WeAppInfo struct {
|
||||
AppId string `json:"app_id"` // 小程序ID
|
||||
PagePath string `json:"page_path"` // 小程序路径
|
||||
MiniCode string `json:"miniCode"` // 小程序码(部分活动没有,请注意判断)
|
||||
}
|
||||
|
||||
// 查询订单列表请求
|
||||
type QueryOrderListRequest struct {
|
||||
ApiKey string `json:"api_key"` // api key
|
||||
StartTime time.Time `json:"start_time"` // 是 2021-06-05 00:00:00 开始时间与结束时间不能超过1小时
|
||||
EndTime time.Time `json:"end_time"` // 是 2021-06-05 00:00:00 结束时间与开始时间不能超过1小时
|
||||
QueryType int32 `json:"query_type"` // 否 1 1: 按支付时间 2:按更新时间 3:创建时间 ,默认:3
|
||||
Sid string `json:"sid"` // 否 自定义参数跟单
|
||||
BrandId int32 `json:"brand_id"` // 否 1 品牌id 1 美团 2 饿了么 3 拼多多 4 京东 5 肯德基 6 电影 7 麦当劳 8 话费充值 9 百果园 10 奈雪的茶 11 瑞幸咖啡 12 星巴克 13 喜茶 14 唯品会 15 滴滴/花小猪 16 汉堡王 17 高德打车 18 电费充值 19 会员充值 20 特价快递 21 联联周边游 22 抖音联盟 23 必胜客 24 旅划算 25 大牌餐券 26 千千惠生活 27 流量卡 28 同程出行 29 华莱士 30 T3出行 31 景点门票 32 淘宝
|
||||
Status int32 `json:"status"` // 否 1 订单统一状态,0:未付款 1:已付款 2:待结算 3:已结算 4:无效订单
|
||||
OrderSn string `json:"order_sn"` // 否 1234567 订单号
|
||||
RelationFlagName string `json:"relation_flag_name"` // 否 第三方渠道标识
|
||||
Page int32 `json:"page"` // 否 1 页码 默认 1
|
||||
PageSize int32 `json:"pageSize"` // 否 20 每页显示多少 默认 20 最大 100
|
||||
}
|
||||
|
||||
// 查询订单列表响应
|
||||
type QueryOrderListResponse struct {
|
||||
Code int32 `json:"code"` // 错误码
|
||||
Msg string `json:"msg"` // 错误消息
|
||||
Data *QueryOrderListData `json:"data"` // 数据结构
|
||||
}
|
||||
|
||||
type QueryOrderListData struct {
|
||||
Total int32 `json:"total"` // 总数
|
||||
PerPage int32 `json:"per_page"` // 上一页
|
||||
CurrentPage int32 `json:"current_page"` // 当前页码
|
||||
LastPage int32 `json:"last_page"` // 下一页
|
||||
Data []*OrderItem `json:"data"` // 数据
|
||||
}
|
||||
|
||||
type OrderItem struct {
|
||||
ActName string `json:"act_name"` // 美团外卖 活动名称
|
||||
ActId int32 `json:"act_id"` // 活动id,jd:19 、考拉:35、 pdd:14 、 淘宝:40 、vip:39 、47-高德打车 对应该接口 https://www.jutuike.com/doc/34
|
||||
Sid string `json:"sid"` // 123456 渠道标识
|
||||
PubId int32 `json:"pub_id"` // 推广者id,平台用户唯一id
|
||||
JtkShareRate string `json:"jtk_share_rate"` // 佣金比例,0.1 则代表10% (实际佣金比率 = 比例x100)
|
||||
JtkShareFee string `json:"jtk_share_fee"` // 佣金, 如1.2
|
||||
OrderSn string `json:"order_sn"` // 订单号,如12345678
|
||||
OrderTitle string `json:"order_title"` // 北京烤鸭 商品名称
|
||||
CreateTime time.Time `json:"create_time"` // 2021-06-05 21:41:52 下单时间
|
||||
PayTime *time.Time `json:"pay_time"` // 2021-06-05 21:41:52 付款时间
|
||||
ModifiedTime *time.Time `json:"modified_time"` // 2021-06-05 21:41:52 最后一次更新时间
|
||||
OrderPrice string `json:"order_price"` // 商品单价
|
||||
PayPrice string `json:"pay_price"` // 实际付款金额
|
||||
Status int32 `json:"status"` // 订单统一状态,0:未付款 1:已付款 2:待结算 3:已结算 4:无效订单
|
||||
StatusDesc string `json:"status_desc"` // 状态描述,如已付款
|
||||
Extension string `json:"extension"` // 扩展参数,可根据需要解析
|
||||
BrandId int32 `json:"brand_id"` // 品牌id 1 美团 2 饿了么 3 拼多多 4 京东 5 肯德基 6 电影 7 麦当劳 8 话费充值 9 百果园 10 奈雪的茶 11 瑞幸咖啡 12 星巴克 13 喜茶 14 唯品会 15 滴滴/花小猪 16 汉堡王 17 高德打车 18 电费充值 19 会员充值 20 特价快递 21 联联周边游 22 抖音联盟 23 必胜客 24 旅划算 25 大牌餐券 26 千千惠生活 27 流量卡 28 同程出行 29 华莱士 30 T3出行 31 景点门票 32 淘宝
|
||||
InvalidReason string `json:"invalid_reason"` // 失效原因
|
||||
}
|
||||
@ -12,7 +12,7 @@ import (
|
||||
)
|
||||
|
||||
// MeituanMediaApi 美团-美天赚
|
||||
// Api defines the interface of t3_union api
|
||||
// Api defines the interface of meituan_media api
|
||||
type MeituanMediaApi interface {
|
||||
// Sign 签名
|
||||
Sign(methodType string, url string, data map[string]interface{}) string
|
||||
|
||||
@ -39,7 +39,9 @@ func (a *apiClientSuite) Test_Sign() {
|
||||
|
||||
func (a *apiClientSuite) Test_GenerateLink() {
|
||||
req := GenerateLinkRequest{
|
||||
//LinkType: 1,
|
||||
LinkType: 1,
|
||||
ActId: "7",
|
||||
Sid: "f3a8c1",
|
||||
}
|
||||
result, err := a.api.GenerateLink(context.Background(), req)
|
||||
if !a.NoError(err) {
|
||||
|
||||
@ -2,9 +2,9 @@ package meituan_media
|
||||
|
||||
import (
|
||||
"crypto/hmac"
|
||||
"crypto/md5"
|
||||
"crypto/sha256"
|
||||
"encoding/base64"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
@ -31,8 +31,9 @@ func (s *Sign) BuildHeader(methodType string, uri string, data map[string]any) m
|
||||
headers := map[string]string{
|
||||
SCaApp: s.AppKey, // 应用app_key
|
||||
SCaTimestamp: fmt.Sprintf("%d", time.Now().UnixMilli()), // 请求发起时间戳(毫秒),有效时1分钟
|
||||
SCaSignatureHeaders: "S-Ca-App,S-Ca-Timestamp", // 将需要签名的header
|
||||
SCaSignatureHeaders: "S-Ca-Timestamp,S-Ca-App", // 将需要签名的header
|
||||
ContentMd5: s.contentMD5(methodType, data), // body数据Md5加密
|
||||
//"Content-Type": "application/json",
|
||||
}
|
||||
headers[SCaSignature] = s.GetSign(methodType, uri, data, headers)
|
||||
return headers
|
||||
@ -44,9 +45,11 @@ func (s *Sign) GetSign(methodType string, uri string, data map[string]any, signH
|
||||
headers := s.headers(signHeaders)
|
||||
url := s.url(methodType, uri, data)
|
||||
strSign := httpMethod + `\n` + contentMD5 + `\n` + headers + url
|
||||
fmt.Printf("======= strSign:%s \n", strSign)
|
||||
hm := hmac.New(sha256.New, []byte(s.AppSecret))
|
||||
hm.Write([]byte(strSign))
|
||||
signStr := base64.StdEncoding.EncodeToString([]byte(hex.EncodeToString(hm.Sum([]byte("")))))
|
||||
//hash := hex.EncodeToString(hm.Sum(nil))
|
||||
signStr := base64.StdEncoding.EncodeToString(hm.Sum(nil))
|
||||
return signStr
|
||||
}
|
||||
|
||||
@ -60,7 +63,9 @@ func (s *Sign) contentMD5(methodType string, data map[string]any) string {
|
||||
methodType = s.httpMethod(methodType)
|
||||
if (methodType == http.MethodPost || methodType == http.MethodPut) && data != nil {
|
||||
dataByte, _ := json.Marshal(data)
|
||||
return base64.StdEncoding.EncodeToString([]byte(util.Md5String(string(dataByte))))
|
||||
h := md5.New()
|
||||
h.Write(dataByte)
|
||||
return base64.StdEncoding.EncodeToString(h.Sum(nil))
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
|
||||
@ -21,20 +21,20 @@ type GenerateLinkResponse struct {
|
||||
|
||||
// QueryOrderListRequest 查询订单列表请求
|
||||
type QueryOrderListRequest struct {
|
||||
Platform int32 `json:"platform"` // 非必填 商品所属业务一级分类类型:1 到家及其他业务类型,2 到店业务类型(包含到店美食、休闲生活、酒店、门票);不填则默认1
|
||||
BusinessLine []int32 `json:"businessLine"` // 非必填 业务线标识;1)当platform为1,选择到家及其他业务类型时,业务线枚举为1:外卖订单 WAIMAI 2:闪购红包 3:酒旅 4:美团电商订单(团好货) 5:医药 6:拼好饭 7:商品超值券包 COUPON 8:买菜 MAICAI 11:闪购商品;不传则默认传空表示非售卖券包订单类型的全部查询。若输入参数含7 商品超值券包,则只返回商品超值券包订单;2)当platform为2,选择到店业务类型 时,业务线枚举1:到餐 2:到综 3:酒店 4:门票,不填则默认传1
|
||||
ActId int64 `json:"actId"` // 非必填 活动物料id,我要推广-活动推广中第一列的id信息,不传则返回所有actId的数据,建议查询订单时传入actId
|
||||
Sid string `json:"sid"` // 非必填 二级推广位id,最长64位,不传则返回所有sid的数据
|
||||
OrderId string `json:"orderId"` // 非必填 订单id,入参后可与业务线标识businessLine配合使用,输入的orderId需要与businessLine能对应上。举例:如查询商品超值券包订单时orderId传券包订单号,businessLine传7;除此以外其他查询筛选条件不生效,不传业务线标识businessLine则默认仅查非券包订单
|
||||
StartTime int32 `json:"startTime"` // 非必填 查询时间类型对应的查询开始时间,10位时间戳表示,单位秒
|
||||
EndTime int32 `json:"endTime"` // 非必填 查询时间类型对应的查询结束时间,10位时间戳表示,单位秒
|
||||
Page int32 `json:"page"` // 非必填 页码,默认1,从1开始,若searchType选择2,本字段必须传1,若不传参数默认1
|
||||
Limit int32 `json:"limit"` // 非必填 每页限制条数,默认100,最大支持100
|
||||
QueryTimeType int32 `json:"queryTimeType"` // 非必填 查询时间类型,枚举值, 1 按订单支付时间查询, 2 按照更新时间查询, 默认为1
|
||||
TradeType int32 `json:"tradeType"` // 非必填 交易类型,1表示CPS,2表示CPA
|
||||
ScrollId string `json:"scrollId"` // 非必填 分页id,当searchType选择2逐页查询时,本字段为必填。若不填写,默认查询首页。取值为上一页查询时出参的scrollId字段
|
||||
SearchType int32 `json:"searchType"` // 非必填 订单分页查询方案选择,不填则默认为1。1 分页查询(最多能查询到1万条订单),当选择本查询方案,page参数不能为空。此查询方式后续不再维护,建议使用2逐页查询。2 逐页查询(不限制查询订单数,只能逐页查询,不能指定页数),当选择本查询方案,需配合scrollId参数使用
|
||||
CityNames []string `json:"cityNames"` // 非必填 可输入城市名称圈定特定城市的订单,单次最多查询10个城市(英文逗号分隔)。不传则默认全部城市订单。 注:如需确认城市具体名称,可参考后台订单明细页的城市筛选项,或参考具体活动的城市命名。目前只支持到家业务类型-商品超值券包业务线。
|
||||
Platform int32 `json:"platform,omitempty"` // 非必填 商品所属业务一级分类类型:1 到家及其他业务类型,2 到店业务类型(包含到店美食、休闲生活、酒店、门票);不填则默认1
|
||||
BusinessLine []int32 `json:"businessLine,omitempty"` // 非必填 业务线标识;1)当platform为1,选择到家及其他业务类型时,业务线枚举为1:外卖订单 WAIMAI 2:闪购红包 3:酒旅 4:美团电商订单(团好货) 5:医药 6:拼好饭 7:商品超值券包 COUPON 8:买菜 MAICAI 11:闪购商品;不传则默认传空表示非售卖券包订单类型的全部查询。若输入参数含7 商品超值券包,则只返回商品超值券包订单;2)当platform为2,选择到店业务类型 时,业务线枚举1:到餐 2:到综 3:酒店 4:门票,不填则默认传1
|
||||
ActId int64 `json:"actId,omitempty"` // 非必填 活动物料id,我要推广-活动推广中第一列的id信息,不传则返回所有actId的数据,建议查询订单时传入actId
|
||||
Sid string `json:"sid,omitempty"` // 非必填 二级推广位id,最长64位,不传则返回所有sid的数据
|
||||
OrderId string `json:"orderId,omitempty"` // 非必填 订单id,入参后可与业务线标识businessLine配合使用,输入的orderId需要与businessLine能对应上。举例:如查询商品超值券包订单时orderId传券包订单号,businessLine传7;除此以外其他查询筛选条件不生效,不传业务线标识businessLine则默认仅查非券包订单
|
||||
StartTime int32 `json:"startTime,omitempty"` // 非必填 查询时间类型对应的查询开始时间,10位时间戳表示,单位秒
|
||||
EndTime int32 `json:"endTime,omitempty"` // 非必填 查询时间类型对应的查询结束时间,10位时间戳表示,单位秒
|
||||
Page int32 `json:"page,omitempty"` // 非必填 页码,默认1,从1开始,若searchType选择2,本字段必须传1,若不传参数默认1
|
||||
Limit int32 `json:"limit,omitempty"` // 非必填 每页限制条数,默认100,最大支持100
|
||||
QueryTimeType int32 `json:"queryTimeType,omitempty"` // 非必填 查询时间类型,枚举值, 1 按订单支付时间查询, 2 按照更新时间查询, 默认为1
|
||||
TradeType int32 `json:"tradeType,omitempty"` // 非必填 交易类型,1表示CPS,2表示CPA
|
||||
ScrollId string `json:"scrollId,omitempty"` // 非必填 分页id,当searchType选择2逐页查询时,本字段为必填。若不填写,默认查询首页。取值为上一页查询时出参的scrollId字段
|
||||
SearchType int32 `json:"searchType,omitempty"` // 非必填 订单分页查询方案选择,不填则默认为1。1 分页查询(最多能查询到1万条订单),当选择本查询方案,page参数不能为空。此查询方式后续不再维护,建议使用2逐页查询。2 逐页查询(不限制查询订单数,只能逐页查询,不能指定页数),当选择本查询方案,需配合scrollId参数使用
|
||||
CityNames []string `json:"cityNames,omitempty"` // 非必填 可输入城市名称圈定特定城市的订单,单次最多查询10个城市(英文逗号分隔)。不传则默认全部城市订单。 注:如需确认城市具体名称,可参考后台订单明细页的城市筛选项,或参考具体活动的城市命名。目前只支持到家业务类型-商品超值券包业务线。
|
||||
}
|
||||
|
||||
// QueryOrderListResponse 查询订单列表响应
|
||||
|
||||
Loading…
Reference in New Issue
Block a user