gwdt

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 13, 2024 License: MIT Imports: 10 Imported by: 0

README

Gwdt 旺店通旗舰版Go语言SDK

本SDK非官方SDK,为方便使用Go语言的开发者,按照旺店通官方文档,封装了签名及调用方法,使用本SDK可以根据业务需求直接调用相关方法。 请注意:调用旺店通API需要提前在旺店通开放平台申请API权限。

1.安装方法:go get github.com/BernardSimon/gwdt

2.参考示例代码

// 实例化一个客户端
wdtClient := gwdt.NewGwdtClient(gwdt.Config{
	Url:       "http://wdt.wangdian.cn/openapi",
	V:         "1.0",
	Sid:       "", //填入你的卖家账号
	AppKey:    "", //填入你的appkey,建议使用环境变量
	AppSecret: "", //填入你的appSecret,注意需要包含salt,建议使用环境变量
})
//实例化一个请求,如果不是分页请求,请将Pager置为nil
request := gwdt.Request{
	Method: "",
	Params: nil,
	Pager: &gwdt.Pager{
		PageSize: 100,
		PageNo:   0,
		CalcTotal:   true,
	},
}
//调用call方法,得到一个Response实例
response := wdtClient.Call(&request)
//处理返回结果,判断错误在前
if response.Error != nil {
	panic(response.Error)
}
//Data是一个json的字符串,为旺店通返回的data字段内容
println(response.Data)
//为了方便记录和分析问题,我们在Response中增加了几个常用方法和变量
1.内置请求指针 Response.Request
2.计算的签名值 Response.Sign
3.请求的时间戳(按照旺店通计算方法) Response.Timestamp
4.请求的总条数 Response.TotalCount,请注意只有当分页请求且CalcTotal为true时,才返回该值
5.GetByte方法,将返回结果转换为[]byte
6.HasMore方法,判断是否还有更多数据

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	Config Config
}

func NewGwdtClient

func NewGwdtClient(config Config) *Client

func (Client) Call

func (c Client) Call(request *Request) *Response

type Config

type Config struct {
	Url       string `json:"url"` // 接口请求地址
	V         string `json:"v"`
	Sid       string `json:"sid"`       // 卖家账号
	AppKey    string `json:"appkey"`    // 旺店通旗舰版appkey
	AppSecret string `json:"appsecret"` // 旺店通旗舰版appsecret
}

func (Config) GetSecret

func (c Config) GetSecret() (secret string, salt string, error error)

type Pager

type Pager struct {
	PageSize  int  // 每页数量
	PageNo    int  // 页码
	CalcTotal bool // 是否计算总条数
}

type QimenClient added in v0.0.7

type QimenClient struct {
	Config QimenConfig
}

func NewGwdtQimenClient added in v0.0.7

func NewGwdtQimenClient(qimenConfig QimenConfig) *QimenClient

func (QimenClient) Call added in v0.0.7

func (c QimenClient) Call(request *QimenRequest) *QimenResponse

type QimenConfig added in v0.0.7

type QimenConfig struct {
	QimenUrl       string `json:"qimen_url"`
	QimenAppKey    string `json:"qimen_appkey"`
	QimenAppSecret string `json:"qimen_appsecret"`
	Sid            string `json:"sid"`           // 卖家账号
	WdtAppKey      string `json:"wdt_appkey"`    // 旺店通旗舰版appkey
	WdtAppSecret   string `json:"wdt_appsecret"` // 旺店通旗舰版appsecret
	TargetAppkey   string `json:"target_appkey"`
}

func (QimenConfig) GetSecret added in v0.0.7

func (c QimenConfig) GetSecret() (secret string, salt string, error error)

type QimenError added in v0.0.7

type QimenError struct {
	Flag         string
	RequestId    string
	Code         string
	Message      string
	SubCode      string
	SubMsg       string
	RequestError error
}

type QimenRequest added in v0.0.7

type QimenRequest = Request

type QimenResponse added in v0.0.7

type QimenResponse struct {
	Request    *QimenRequest
	Status     int64
	Error      *QimenError
	DateTime   string // 按照旺店通规则的请求时间戳
	Sign       string
	WdtSign    string // 按照旺店通规则的签名
	Data       string
	TotalCount int64
}

type Request

type Request struct {
	Method string
	Params map[string]interface{}
	Pager  *Pager
}

type Response

type Response struct {
	Request    *Request
	Status     int64
	Error      *WdtError
	Timestamp  int64  // 按照旺店通规则的请求时间戳
	Sign       string // 按照旺店通规则的签名
	Data       string
	TotalCount int64
}

func (Response) Get

func (c Response) Get(key string) string

func (Response) GetByte

func (c Response) GetByte() []byte

func (Response) HasMore

func (c Response) HasMore() bool

type WdtError added in v0.0.7

type WdtError struct {
	Message      string `json:"Message"`
	RequestError error  `json:"request_error"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL