- update
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details

master v1.0.2
李光春 2 years ago
parent 1de02f0a0e
commit c3743b396e

@ -8,8 +8,8 @@ import (
)
// 记录日志
func (app *App) postgresqlLog(api string, request gorequest.Response) {
app.log.Record(golog.ApiPostgresqlLog{
func (c *Client) postgresqlLog(api string, request gorequest.Response) {
c.log.Record(golog.ApiPostgresqlLog{
RequestTime: golog.TimeString{Time: request.RequestTime}, //【请求】时间
RequestUri: request.RequestUri, //【请求】链接
RequestUrl: gorequest.UriParse(request.RequestUri).Url, //【请求】链接

@ -26,19 +26,19 @@ func NewParamsWithType(_type string, params ...Params) Params {
return p
}
func (app *App) Sign(p Params) {
p["client_id"] = app.clientId
func (c *Client) Sign(p Params) {
p["client_id"] = c.config.ClientId
// 排序所有的 key
var keys []string
for key := range p {
keys = append(keys, key)
}
sort.Strings(keys)
signStr := app.clientSecret
signStr := c.config.ClientSecret
for _, key := range keys {
signStr += key + getString(p[key])
}
signStr += app.clientSecret
signStr += c.config.ClientSecret
p["sign"] = createSign(signStr)
}

@ -62,12 +62,12 @@ func NewCmsPromUrlGenerateResult(result CmsPromUrlGenerateResponse, body []byte,
// CmsPromUrlGenerate 生成商城-频道推广链接
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.cms.prom.url.generate
func (app *App) CmsPromUrlGenerate(notMustParams ...Params) *CmsPromUrlGenerateResult {
func (c *Client) CmsPromUrlGenerate(notMustParams ...Params) *CmsPromUrlGenerateResult {
// 参数
params := NewParamsWithType("pdd.ddk.cms.prom.url.generate", notMustParams...)
params.Set("p_id_list", []string{app.Pid})
params.Set("p_id_list", []string{c.config.Pid})
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response CmsPromUrlGenerateResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -97,12 +97,12 @@ func NewGoodsDetailResult(result GoodsDetailResponse, body []byte, http goreques
// GoodsDetail 多多进宝商品详情查询
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.detail
func (app *App) GoodsDetail(notMustParams ...Params) *GoodsDetailResult {
func (c *Client) GoodsDetail(notMustParams ...Params) *GoodsDetailResult {
// 参数
params := NewParamsWithType("pdd.ddk.goods.detail", notMustParams...)
params.Set("pid", app.Pid)
params.Set("pid", c.config.Pid)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response GoodsDetailResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -30,11 +30,11 @@ func NewGoodsPidGenerateResult(result GoodsPidGenerateResponse, body []byte, htt
// GoodsPidGenerate 创建多多进宝推广位
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.pid.generate
func (app *App) GoodsPidGenerate(notMustParams ...Params) *GoodsPidGenerateResult {
func (c *Client) GoodsPidGenerate(notMustParams ...Params) *GoodsPidGenerateResult {
// 参数
params := NewParamsWithType("pdd.ddk.goods.pid.generate", notMustParams...)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response GoodsPidGenerateResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -50,12 +50,12 @@ func NewGoodsPromotionUrlGenerateResult(result GoodsPromotionUrlGenerateResponse
// GoodsPromotionUrlGenerate 多多进宝推广链接生成
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.promotion.url.generate
func (app *App) GoodsPromotionUrlGenerate(notMustParams ...Params) *GoodsPromotionUrlGenerateResult {
func (c *Client) GoodsPromotionUrlGenerate(notMustParams ...Params) *GoodsPromotionUrlGenerateResult {
// 参数
params := NewParamsWithType("pdd.ddk.goods.promotion.url.generate", notMustParams...)
params.Set("p_id", app.Pid)
params.Set("p_id", c.config.Pid)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response GoodsPromotionUrlGenerateResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -79,12 +79,12 @@ func NewGoodsRecommendGetResult(result GoodsRecommendGetResponse, body []byte, h
// GoodsRecommendGet 多多进宝商品推荐API
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.recommend.get
func (app *App) GoodsRecommendGet(notMustParams ...Params) *GoodsRecommendGetResult {
func (c *Client) GoodsRecommendGet(notMustParams ...Params) *GoodsRecommendGetResult {
// 参数
params := NewParamsWithType("pdd.ddk.goods.recommend.get", notMustParams...)
params.Set("pid", app.Pid)
params.Set("pid", c.config.Pid)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response GoodsRecommendGetResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -93,12 +93,12 @@ func NewGoodsSearchResult(result GoodsSearchResponse, body []byte, http goreques
// GoodsSearch 多多进宝商品查询
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.search
func (app *App) GoodsSearch(notMustParams ...Params) *GoodsSearchResult {
func (c *Client) GoodsSearch(notMustParams ...Params) *GoodsSearchResult {
// 参数
params := NewParamsWithType("pdd.ddk.goods.search", notMustParams...)
params.Set("pid", app.Pid)
params.Set("pid", c.config.Pid)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response GoodsSearchResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -25,12 +25,12 @@ func NewMemberAuthorityQueryResult(result MemberAuthorityQueryResponse, body []b
// MemberAuthorityQuery 查询是否绑定备案
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.search
func (app *App) MemberAuthorityQuery(notMustParams ...Params) *MemberAuthorityQueryResult {
func (c *Client) MemberAuthorityQuery(notMustParams ...Params) *MemberAuthorityQueryResult {
// 参数
params := NewParamsWithType("pdd.ddk.member.authority.query", notMustParams...)
params.Set("pid", app.Pid)
params.Set("pid", c.config.Pid)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response MemberAuthorityQueryResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -66,13 +66,13 @@ func NewOrderDetailGetResult(result OrderDetailGetResponse, body []byte, http go
}
// OrderDetailGet 多多进宝商品查询 https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.order.detail.get
func (app *App) OrderDetailGet(orderSn string) *OrderDetailGetResult {
func (c *Client) OrderDetailGet(orderSn string) *OrderDetailGetResult {
// 参数
param := NewParams()
param.Set("order_sn", orderSn)
params := NewParamsWithType("pdd.ddk.order.detail.get", param)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response OrderDetailGetResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -71,11 +71,11 @@ func NewOrderListIncrementGetResult(result OrderListIncrementGetResponse, body [
// OrderListIncrementGet 最后更新时间段增量同步推广订单信息
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.order.list.increment.get
func (app *App) OrderListIncrementGet(notMustParams ...Params) *OrderListIncrementGetResult {
func (c *Client) OrderListIncrementGet(notMustParams ...Params) *OrderListIncrementGetResult {
// 参数
params := NewParamsWithType("pdd.ddk.order.list.increment.get", notMustParams...)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response OrderListIncrementGetResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -71,11 +71,11 @@ func NewOrderListRangeGetResult(result OrderListRangeGetResponse, body []byte, h
// OrderListRangeGet 用时间段查询推广订单接口
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.order.list.range.get
func (app *App) OrderListRangeGet(notMustParams ...Params) *OrderListRangeGetResult {
func (c *Client) OrderListRangeGet(notMustParams ...Params) *OrderListRangeGetResult {
// 参数
params := NewParamsWithType("pdd.ddk.order.list.range.get", notMustParams...)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response OrderListRangeGetResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -51,12 +51,12 @@ func NewResourceUrlGenResult(result ResourceUrlGenResponse, body []byte, http go
// ResourceUrlGen 生成多多进宝频道推广
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.goods.pid.generate
func (app *App) ResourceUrlGen(notMustParams ...Params) *ResourceUrlGenResult {
func (c *Client) ResourceUrlGen(notMustParams ...Params) *ResourceUrlGenResult {
// 参数
params := NewParamsWithType("pdd.ddk.resource.url.gen", notMustParams...)
params.Set("pid", app.Pid)
params.Set("pid", c.config.Pid)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response ResourceUrlGenResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -66,12 +66,12 @@ func NewRpPromUrlGenerateResult(result RpPromUrlGenerateResponse, body []byte, h
// RpPromUrlGenerate 生成营销工具推广链接
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.rp.prom.url.generate
func (app *App) RpPromUrlGenerate(notMustParams ...Params) *RpPromUrlGenerateResult {
func (c *Client) RpPromUrlGenerate(notMustParams ...Params) *RpPromUrlGenerateResult {
// 参数
params := NewParamsWithType("pdd.ddk.rp.prom.url.generate", notMustParams...)
params.Set("p_id_list", []string{app.Pid})
params.Set("p_id_list", []string{c.config.Pid})
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response RpPromUrlGenerateResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -59,12 +59,12 @@ func NewTopGoodsListQueryResult(result TopGoodsListQueryResponse, body []byte, h
// TopGoodsListQuery 多多客获取爆款排行商品接口
// https://jinbao.pinduoduo.com/third-party/api-detail?apiName=pdd.ddk.top.goods.list.query
func (app *App) TopGoodsListQuery(notMustParams ...Params) *TopGoodsListQueryResult {
func (c *Client) TopGoodsListQuery(notMustParams ...Params) *TopGoodsListQueryResult {
// 参数
params := NewParamsWithType("pdd.ddk.top.goods.list.query", notMustParams...)
params.Set("p_id", app.Pid)
params.Set("p_id", c.config.Pid)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response TopGoodsListQueryResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -29,13 +29,13 @@ func NewGoodsCatsGetResult(result GoodsCatsGetResponse, body []byte, http gorequ
// GoodsCatsGet 商品标准类目接口
// https://open.pinduoduo.com/application/document/api?id=pdd.goods.cats.get
func (app *App) GoodsCatsGet(parentOptId int) *GoodsCatsGetResult {
func (c *Client) GoodsCatsGet(parentOptId int) *GoodsCatsGetResult {
// 参数
param := NewParams()
param.Set("parent_cat_id", parentOptId)
params := NewParamsWithType("pdd.goods.cats.get", param)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response GoodsCatsGetResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -29,13 +29,13 @@ func NewGoodsOptGetResult(result GoodsOptGetResponse, body []byte, http goreques
// GoodsOptGet 查询商品标签列表
// https://open.pinduoduo.com/application/document/api?id=pdd.goods.opt.get
func (app *App) GoodsOptGet(parentOptId int) *GoodsOptGetResult {
func (c *Client) GoodsOptGet(parentOptId int) *GoodsOptGetResult {
// 参数
param := NewParams()
param.Set("parent_opt_id", parentOptId)
params := NewParamsWithType("pdd.goods.opt.get", param)
// 请求
request, err := app.request(params)
request, err := c.request(params)
// 定义
var response GoodsOptGetResponse
err = json.Unmarshal(request.ResponseBody, &response)

@ -11,33 +11,39 @@ import (
"strings"
)
// App 公共请求参数
type App struct {
clientId string // POP分配给应用的client_id
clientSecret string // POP分配给应用的client_secret
mediaId string // 媒体ID
Pid string // 推广位
pgsql *gorm.DB // pgsql数据库
type ConfigClient struct {
ClientId string // POP分配给应用的client_id
ClientSecret string // POP分配给应用的client_secret
MediaId string // 媒体ID
Pid string // 推广位
PgsqlDb *gorm.DB // pgsql数据库
}
type Client struct {
client *gorequest.App // 请求客户端
log *golog.Api // 日志服务
logTableName string // 日志表名
logStatus bool // 日志状态
config *ConfigClient // 配置
}
func NewApp(clientId string, clientSecret string, mediaId string, pid string, pgsql *gorm.DB) *App {
app := &App{clientId: clientId, clientSecret: clientSecret, mediaId: mediaId, Pid: pid}
app.client = gorequest.NewHttp()
app.client.Uri = "https://gw-api.pinduoduo.com/api/router"
if pgsql != nil {
app.pgsql = pgsql
app.logStatus = true
app.logTableName = "pinduoduo"
app.log = golog.NewApi(&golog.ApiConfig{
Db: pgsql,
TableName: app.logTableName,
func NewClient(config *ConfigClient) *Client {
c := &Client{config: config}
c.config = config
c.client = gorequest.NewHttp()
c.client.Uri = "https://gw-api.pinduoduo.com/api/router"
if c.config.PgsqlDb != nil {
c.logStatus = true
c.logTableName = "pinduoduo"
c.log = golog.NewApi(&golog.ApiConfig{
Db: c.config.PgsqlDb,
TableName: c.logTableName,
})
}
return app
return c
}
type ErrResp struct {
@ -55,13 +61,13 @@ type CustomParametersResult struct {
Uid string `json:"uid"`
}
func (app *App) request(params map[string]interface{}) (resp gorequest.Response, err error) {
func (c *Client) request(params map[string]interface{}) (resp gorequest.Response, err error) {
// 签名
app.Sign(params)
c.Sign(params)
// 创建请求
client := app.client
client := c.client
// 设置参数
client.SetParams(params)
@ -73,14 +79,14 @@ func (app *App) request(params map[string]interface{}) (resp gorequest.Response,
}
// 日志
if app.logStatus == true {
go app.postgresqlLog(gostring.ToString(params["type"]), request)
if c.logStatus == true {
go c.postgresqlLog(gostring.ToString(params["type"]), request)
}
return request, err
}
func (app *App) SalesTipParseInt64(salesTip string) int64 {
func (c *Client) SalesTipParseInt64(salesTip string) int64 {
parseInt, err := strconv.ParseInt(salesTip, 10, 64)
if err != nil {
salesTipStr := salesTip
@ -103,6 +109,6 @@ func (app *App) SalesTipParseInt64(salesTip string) int64 {
}
}
func (app *App) CommissionIntegralToInt64(GoodsPrice, CouponProportion int64) int64 {
func (c *Client) CommissionIntegralToInt64(GoodsPrice, CouponProportion int64) int64 {
return (GoodsPrice * CouponProportion) / 1000
}

@ -1,3 +1,3 @@
package pinduoduo
const Version = "1.0.1"
const Version = "1.0.2"

Loading…
Cancel
Save