bytedance

package module
v0.0.0-...-a854141 Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2023 License: Apache-2.0 Imports: 15 Imported by: 0

README

抖音相关接口(简易版)

抖音担保交易、小程序登录、生成小程序二维码、订单同步

安装

启用 Go module
go get github.com/Caiqm/bytedance
import "github.com/Caiqm/bytedance"
未启用 Go module
go get github.com/Caiqm/bytedance
import "github.com/Caiqm/bytedance"

如何使用

var client, err = bytedance.New(appID, Secret)
关于密钥(Secret)

是应用的唯一凭证密钥,可以在开发者后台获取

加载配置

// 加载支付系统秘钥SALT
client.LoadOptionFunc(WithSalt(SALT))

// 或者一开始就加载支付系统秘钥SALT
var client, err = bytedance.New(appID, Secret, WithSalt(SALT))
关于支持的配置
// 设置请求链接,可自定义请求接口,传入host字符串
WithApiHost(HOST)

// 设置支付系统秘钥SALT
WithSalt(SALT)

// 设置支付系统回调TOKEN
WithToken(TOKEN)

// 也可自定义传入配置,返回以下类型即可
type OptionFunc func(c *Client)

小程序登录

// 小程序登录
func TestClient_Code2Session(t *testing.T) {
	t.Log("========== Code2Session ==========")
	client.LoadOptionFunc(WithApiHost("https://open-sandbox.douyin.com/api/apps/v2/jscode2session"))
	var p = Code2Session{}
	p.Code = "647f16afe0b44c49a8eb1cb3c02aXX31"
	rsp, err := client.Code2Session(p)
	if err != nil {
		t.Fatal(err)
	}
	t.Logf("%v", rsp)
}

小程序支付

// 担保支付
func TestClient_TradeEcPay(t *testing.T) {
	t.Log("========== TradeEcPay ==========")
	client.LoadOptionFunc(WithApiHost("https://developer.toutiao.com/api/apps/ecpay/v1/create_order"))
	var p = TradeEcPay{}
	p.OutOrderNo = "TEST2023112717521212345678"
	p.TotalAmount = 1
	p.Subject = "支付测试"
	p.Body = "支付测试"
	p.ValidTime = 300
	rsp, err := client.TradeEcPay(p)
	if err != nil {
		t.Fatal(err)
	}
	t.Logf("%+v", rsp)
}

小程序订单同步

// 同步订单
func TestClient_OrderPush(t *testing.T) {
	t.Log("========== OrderPush ==========")
	client.LoadOptionFunc(WithApiHost("https://developer.toutiao.com/api/apps/order/v2/push"))
	// 小程序订单商品类型
	var itemLists []ItemListApplet
	var i ItemListApplet
	i.ItemCode = "111" // 开发者侧商品 ID
	i.Img = ""
	i.Title = "麻花零食"
	i.SubTitle = "开心麻花"
	i.Amount = 1 // 单类商品的数目
	i.Price = 1  // 单类商品的总价,单位为分
	// 添加到数组
	itemLists = append(itemLists, i)
	// 根据类型获取那种类型的POI订单
	var o OrderDetailPoiApplet
	o.OrderId = "" // 开发者侧业务单号。用作幂等控制。该订单号是和担保支付的支付单号绑定的,也就是预下单时传入的 out_order_no 字段
	o.CreateTime = 1694761323
	o.Status = "待支付"
	o.Amount = 1                            // 订单商品总数
	o.TotalPrice = 1                        // 订单总价,单位为分
	o.DetailUrl = "pages/order/orderDetail" // 小程序订单详情页 path
	o.ItemList = itemLists
	// 转化为json
	orderDetailJson, _ := json.Marshal(o)
	// 主要参数
	var p OrderPush
	p.AccessToken = ""
	p.AppName = "douyin"
	p.OpenId = ""
	p.OrderStatus = 0
	p.OrderType = 0
	p.UpdateTime = 1694761323
	p.Extra = "额外参数"
	p.OrderDetail = string(orderDetailJson)
	// 主方法
	r, err := client.OrderPush(p)
	if err != nil {
		t.Fatal(err)
	}
	t.Logf("%+v", r)
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrBdNullParams     = errors.New("bytedance: bad params")
	ErrBdDataNullParams = errors.New("bytedance: bad data")
)

Functions

This section is empty.

Types

type Applet

type Applet struct {
	AuxParam
}

func (Applet) NeedSecret

func (a Applet) NeedSecret() bool

func (Applet) NeedSign

func (a Applet) NeedSign() bool

type AuxParam

type AuxParam struct {
}

func (AuxParam) ContentType

func (aux AuxParam) ContentType() string

func (AuxParam) NeedAccessToken

func (aux AuxParam) NeedAccessToken() bool

func (AuxParam) NeedAppId

func (aux AuxParam) NeedAppId() bool

func (AuxParam) NeedSecret

func (aux AuxParam) NeedSecret() bool

func (AuxParam) NeedSign

func (aux AuxParam) NeedSign() bool

type Background

type Background struct {
	R int `json:"r"`
	G int `json:"g"`
	B int `json:"b"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func New

func New(appId, secret string, opts ...OptionFunc) (nClient *Client, err error)

初始化

func (*Client) LoadOptionFunc

func (c *Client) LoadOptionFunc(opts ...OptionFunc)

加载配置

func (*Client) OnReceivedData

func (c *Client) OnReceivedData(fn func(method string, data []byte))

返回内容

func (*Client) URLValues

func (c *Client) URLValues(param Param) (value url.Values, valueMaps map[string]interface{}, err error)

请求参数

func (*Client) VerifySign

func (c *Client) VerifySign(values url.Values) bool

验证回调签名

type ClientToken

type ClientToken struct {
	AuxParam
	ClientKey    string `json:"client_key"`    // 应用唯一标识,对应小程序id
	ClientSecret string `json:"client_secret"` // 应用唯一标识对应的密钥,对应小程序的app secret,可以在开发者后台获取
	GrantType    string `json:"grant_type"`    // 固定值“client_credential”
}

ClientToken 获取应用授权调用凭证 https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/interface-request-credential/non-user-authorization/get-client_token

func (ClientToken) ContentType

func (a ClientToken) ContentType() string

func (ClientToken) NeedAppId

func (a ClientToken) NeedAppId() bool

func (ClientToken) NeedSecret

func (a ClientToken) NeedSecret() bool

func (ClientToken) NeedSign

func (a ClientToken) NeedSign() bool

type ClientTokenRsp

type ClientTokenRsp struct {
	Data struct {
		AccessToken string `json:"access_token,omitempty"` // client_token 接口调用凭证
		Description string `json:"description,omitempty"`  // 错误码描述
		ErrorCode   int    `json:"error_code,omitempty"`   // 错误码
		ExpiresIn   int    `json:"expires_in,omitempty"`   // client_token 接口调用凭证超时时间,单位(秒)
	} `json:"data"` // client_token信息
	Message string `json:"message,omitempty"` // 请求响应
	Extra   struct {
		Logid string `json:"logid"` // 日志记录ID
		Now   int64  `json:"now"`   // 当前时间戳
	} `json:"extra"`
}

ClientTokenRsp 获取应用授权调用凭证响应参数

type Code2Session

type Code2Session struct {
	Applet
	AnonymousCode string `json:"anonymous_code,omitempty"` // login 接口返回的匿名登录凭证
	Code          string `json:"code,omitempty"`           // login 接口返回的登录凭证
}

Code2Session 小程序登录 https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/log-in/code-2-session

type Code2SessionRsp

type Code2SessionRsp struct {
	Error
	Data struct {
		SessionKey      string `json:"session_key"`      // 会话密钥,如果请求时有 code 参数才会返回
		Openid          string `json:"openid"`           // 用户在当前小程序的 ID,如果请求时有 code 参数才会返回
		AnonymousOpenid string `json:"anonymous_openid"` // 匿名用户在当前小程序的 ID,如果请求时有 anonymous_code 参数才会返回
		Unionid         string `json:"unionid"`          // 用户在小程序平台的唯一标识符,请求时有 code 参数才会返回。如果开发者拥有多个小程序,可通过 unionid 来区分用户的唯一性。
	} `json:"data"`
}

Code2SessionRsp 小程序登录响应参数

type CpsInfo

type CpsInfo struct {
	ShareAmount string `json:"share_amount"` // 达人分佣金额,单位为分。后续商户在进行分账时需要注意可分账金额应扣除达人分佣金额。
	DouyinId    string `json:"douyin_id"`    // 达人抖音号
	Nickname    string `json:"nickname"`     // 达人昵称
}

CpsInfo CPS相关信息

type Err

type Err struct {
	ErrCode int64  `json:"err_code"`
	ErrMsg  string `json:"err_msg"`
}

Err 错误提示

func (Err) Error

func (e Err) Error() string

type Error

type Error struct {
	ErrNo   int    `json:"err_no"`
	ErrTips string `json:"err_tips"`
	ErrMsg  string `json:"err_msg"`
}

Error 支付错误类

func (Error) Error

func (e Error) Error() string

错误日志

type ExpandOrderInfo

type ExpandOrderInfo struct {
	OriginalDeliveryFee int `json:"original_delivery_fee,omitempty"` // 配送费原价,单位为[分],仅外卖小程序需要传对应信息
	ActualDeliveryFee   int `json:"actual_delivery_fee,omitempty"`   // 实付配送费,单位为[分],仅外卖小程序需要传对应信息
}

ExpandOrderInfo 参数

type GetAccessToken

type GetAccessToken struct {
	Applet
	GrantType string `json:"grant_type"` // 获取 access_token 时值为 client_credential
}

GetAccessToken 小程序的全局唯一调用凭据 https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/interface-request-credential/non-user-authorization/get-access-token

type GetAccessTokenRsp

type GetAccessTokenRsp struct {
	Error
	Data struct {
		AccessToken string `json:"access_token"` // 获取的 access_token
		ExpiresIn   int64  `json:"expires_in"`   // access_token 有效时间,单位:秒
	} `json:"data"`
}

GetAccessTokenRsp 小程序的全局唯一调用凭据响应参数

type GetPhoneNumber

type GetPhoneNumber struct {
	EncryptedData string `json:"encrypted_data"`
	SessionKey    string `json:"session_key"`
	Iv            string `json:"iv"`
}

GetPhoneNumber 获取手机号 https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/guide/open-capabilities/acquire-phone-number-acquire/

type GetPhoneNumberRsp

type GetPhoneNumberRsp struct {
	PhoneNumber     string        `json:"phoneNumber"`     // 用户绑定的手机号(国外手机号会有区号)
	PurePhoneNumber string        `json:"purePhoneNumber"` // 没有区号的手机号
	CountryCode     string        `json:"countryCode"`     // 区号
	Watermark       WatermarkData `json:"watermark"`
}

GetPhoneNumberRsp 获取手机号响应参数

type ItemListApplet

type ItemListApplet struct {
	ItemCode string `json:"item_code"` // 开发者侧商品 ID,长度 <= 64 byte
	Img      string `json:"img"`       // 子订单商品图片 URL, 长度 <= 512 byte
	Title    string `json:"title"`     // 子订单商品介绍标题,长度 <= 256 byte
	SubTitle string `json:"sub_title"` // 子订单商品介绍副标题,长度 <= 256 byte
	Amount   int64  `json:"amount"`    // 单类商品的数目
	Price    int64  `json:"price"`     // 单类商品的总价,单位为分
}

普通小程序订单item_list字段说明

type LineColor

type LineColor struct {
	R int `json:"r"`
	G int `json:"g"`
	B int `json:"b"`
}

type OptionFunc

type OptionFunc func(c *Client)

func WithApiHost

func WithApiHost(host string) OptionFunc

设置请求连接

func WithSalt

func WithSalt(salt string) OptionFunc

设置支付系统秘钥SALT

func WithToken

func WithToken(token string) OptionFunc

设置支付系统回调TOKEN

type OrderDetailPoiApplet

type OrderDetailPoiApplet struct {
	OrderId    string           `json:"order_id"`    // 开发者侧业务单号。用作幂等控制。该订单号是和担保支付的支付单号绑定的,也就是预下单时传入的 out_order_no 字段,长度 <= 64byte
	Status     string           `json:"status"`      // 订单状态,建议采用以下枚举值: 待支付 已支付 已取消 已超时 已核销 退款中 已退款 退款失败
	CreateTime int64            `json:"create_time"` // 订单创建的时间,13 位毫秒时间戳
	Amount     int64            `json:"amount"`      // 订单商品总数
	TotalPrice int64            `json:"total_price"` // 订单总价,单位为分
	DetailUrl  string           `json:"detail_url"`  // 小程序订单详情页 path,长度<=1024 byte (备注:该路径需要保证在小程序内配置过,相对路径即可)
	ItemList   []ItemListApplet `json:"item_list"`   // 子订单商品列表,不可为空
}

普通小程序订单参数(order_detail 字段说明)

type OrderDetailPoiGroup

type OrderDetailPoiGroup struct {
	ExtOrderId        string `json:"ext_order_id"`                // 开发者系统侧业务单号。用作幂等控制。该订单号是和担保支付的支付单号绑定的,即预下单时传入的 out_order_no 字段,长度 <= 64byte
	Status            int64  `json:"status"`                      // 枚举值: 10:已取消(抖音订单中心可看到,状态为"已取消") 110:待支付 310:未使用 340:已使用 410:退款中 420: 退款成功 430: 退款失败
	ShopName          string `json:"shop_name"`                   // 商铺名字,长度 <= 256 byte
	EntryType         int64  `json:"entry_type"`                  // 订单详情页的外链跳转类型,通过该接口上传的都为 2, 1:H5 2:抖音小程序
	EntrySchema       string `json:"entry_schema"`                // 订单详情页的外链跳转 schema 参数,格式为 json 字符串。长度 <= 512byte
	CreateOrderTime   int64  `json:"create_order_time"`           // 下单时间(13位毫秒时间戳)
	Description       string `json:"description,omitempty"`       // 订单描述,长度<=500 byte
	TotalPrice        int64  `json:"total_price"`                 // 订单总金额(单位:分)
	PayTime           int64  `json:"pay_time,omitempty"`          // 支付时间(13位毫秒时间戳),未付款时不用传。
	ExtValidShopId    string `json:"ext_valid_shop_id,omitempty"` // 开发者侧卡劵核销门店ID,未核销时不用传,长度 <= 256 byte
	ValidPoiIdStr     string `json:"valid_poi_id_str,omitempty"`  // 开发者侧卡劵核销门店对应的抖音poiId,ext_valid_shop_id未匹配抖音POI时不用传,长度<= 128 byte
	ExtGoodsId        string `json:"ext_goods_id"`                // 开发者侧商品ID,长度<= 64 byte 备注:如果该商品没有接入抖音商品库,该字段为空
	GoodsName         string `json:"goods_name"`                  // 商品名称,长度 <= 256 byte
	GoodsInfo         string `json:"goods_info,omitempty"`        // 商品描述信息。向用户介绍商品,长度 <= 120byte。
	GoodsCoverImage   string `json:"goods_cover_image"`           // 商品图片,完整的url地址 长度 <= 512 byte
	GoodsEntryType    string `json:"goods_entry_type"`            // 商品详情页的外链跳转类型, 通过该接口上传的都为2, 1: H5 2: 抖音小程序
	GoodsEntrySchema  string `json:"goods_entry_schema"`          // 商品详情页的外链跳转schema参数,格式为 JSON 字符串,长度 <= 512 byte
	StartValidTime    string `json:"start_valid_time"`            // 生效时间,yyyy-MM-dd HH:mm:ss 格式字符串,24 小时制
	EndValidTime      string `json:"end_valid_time"`              // 失效时间,yyyy-MM-dd HH:mm:ss格式字符串,24小时制
	TicketNum         int64  `json:"ticket_num"`                  // 用户购买团购券的数量
	ExtTicketIds      string `json:"ext_ticket_ids"`              // 开发者侧券 ID,该信息用于用户可以明确的感知是哪一张券。格式为 JSON 数组字符串,每个 ID 长度 <= 64byte,例如:["123", "abc"]
	TicketDescription string `json:"ticket_description"`          // 券的使用说明。JSON 数组字符串,最多可以有10条,每条长度 <= 50byte。必须写明券的使用条件、领取条件、退款规则。例如:["1、本券不可兑换现金,不可找零。","2、每个用户最多可以领取1张。","3、如果订单发生退款,优惠券无法退还。"]
}

团购券类型订单参数(order_detail 字段说明)

type OrderDetailPoiTicket

type OrderDetailPoiTicket struct {
	ExtOrderId        string `json:"ext_order_id"`               // 开发者系统侧业务单号。用作幂等控制。该订单号是和担保支付的支付单号绑定的,即预下单时传入的 out_order_no 字段,长度 <= 64byte
	Status            int64  `json:"status"`                     // 枚举值,如下: 10:已取消(抖音订单中心可看到,状态为"已取消") 110:待支付 210:待确认 340:预订成功 410:退款中 420:退款成功 430:退款失败
	ShopName          string `json:"shop_name"`                  // 商铺名字,长度 <= 256 byte
	EntryType         int64  `json:"entry_type"`                 // 订单详情页的外链跳转类型,通过该接口上传的都为 2, 1:H5 2:抖音小程序
	EntrySchema       string `json:"entry_schema"`               // 订单详情页的外链跳转 schema 参数,格式为 json 字符串。长度 <= 512byte
	CreateOrderTime   int64  `json:"create_order_time"`          // 下单时间(13位毫秒时间戳)
	Description       string `json:"description,omitempty"`      // 订单描述,长度<=500 byte
	TotalPrice        int64  `json:"total_price"`                // 订单总金额(单位:分)
	PayTime           int64  `json:"pay_time,omitempty"`         // 支付时间(13位毫秒时间戳),未付款时不用传。
	ExtGoodsId        string `json:"ext_goods_id,omitempty"`     // 开发者侧商品ID,长度<= 64 byte 备注:如果该商品没有接入抖音商品库,该字段为空
	GoodsName         string `json:"goods_name"`                 // 商品名称,长度 <= 256 byte
	GoodsInfo         string `json:"goods_info,omitempty"`       // 商品描述信息。向用户介绍商品,长度 <= 120byte。
	GoodsCoverImage   string `json:"goods_cover_image"`          // 商品图片,完整的url地址 长度 <= 512 byte
	GoodsEntryType    string `json:"goods_entry_type"`           // 商品详情页的外链跳转类型, 通过该接口上传的都为2, 1: H5 2: 抖音小程序
	ValidPoiIdStr     string `json:"valid_poi_id_str,omitempty"` // 开发者侧卡劵核销门店对应的抖音poiId,ext_valid_shop_id未匹配抖音POI时不用传,长度<= 128 byte
	GoodsEntrySchema  string `json:"goods_entry_schema"`         // 商品详情页的外链跳转schema参数,格式为 JSON 字符串,长度 <= 512 byte
	StartValidTime    string `json:"start_valid_time"`           // 生效时间,yyyy-MM-dd HH:mm:ss 格式字符串,24 小时制
	EndValidTime      string `json:"end_valid_time"`             // 失效时间,yyyy-MM-dd HH:mm:ss格式字符串,24小时制
	TicketNum         int64  `json:"ticket_num"`                 // 用户购买团购券的数量
	ExtTicketIds      string `json:"ext_ticket_ids"`             // 开发者侧券 ID,该信息用于用户可以明确的感知是哪一张券。格式为 JSON 数组字符串,每个 ID 长度 <= 64byte,例如:["123", "abc"]
	TicketDescription string `json:"ticket_description"`         // 券的使用说明。JSON 数组字符串,最多可以有10条,每条长度 <= 50byte。必须写明券的使用条件、领取条件、退款规则。例如:["1、本券不可兑换现金,不可找零。","2、每个用户最多可以领取1张。","3、如果订单发生退款,优惠券无法退还。"]
}

门票类型订单参数(order_detail 字段说明)

type OrderPush

type OrderPush struct {
	AuxParam

	ClientKey   string `json:"client_key,omitempty"`  // 第三方在抖音开放平台申请的 ClientKey 注意:POI 订单必传
	AccessToken string `json:"access_token"`          // 服务端 API 调用标识,通过 getAccessToken 获取
	ExtShopId   string `json:"ext_shop_id,omitempty"` // POI 店铺同步时使用的开发者侧店铺 ID,购买店铺 ID,长度 < 256 byte 注意:POI 订单必传
	AppName     string `json:"app_name"`              // 做订单展示的字节系 app 名称,目前为固定值“douyin”
	OpenId      string `json:"open_id"`               // 小程序用户的 open_id,通过 code2Session 获取
	UpdateTime  int    `json:"update_time"`           // 订单信息变更时间,10 位秒级时间戳,update_time每次状态变更推送时需要比上次推送的值大,否则可能忽略该次状态推送。例如:某次推送订单时的update_time为1694761323,则下次推送该订单时,update_time至少为1694761324。
	OrderDetail string `json:"order_detail"`          // json string,根据不同订单类型有不同的结构体,请参见 order_detail 字段说明(json string)
	OrderType   int    `json:"order_type"`            // 订单类型,枚举值: 0:普通小程序订单(非POI订单) 9101:团购券订单(POI 订单) 9001:景区门票订单(POI订单)
	OrderStatus int    `json:"order_status"`          // 普通小程序订单订单状态,POI 订单可以忽略 0:待支付 1:已支付 2:已取消(用户主动取消或者超时未支付导致的关单) 4:已核销(核销状态是整单核销,即一笔订单买了 3 个券,核销是指 3 个券核销的整单) 5:退款中 6:已退款 8:退款失败 注意:普通小程序订单必传,担保支付分账依赖该状态
	Extra       string `json:"extra"`                 // 自定义字段,用于关联具体业务场景下的特殊参数,长度 < 2048byte
}

OrderPush 订单同步 https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/order/order-sync

func (OrderPush) NeedAppId

func (aux OrderPush) NeedAppId() bool

func (OrderPush) NeedSign

func (aux OrderPush) NeedSign() bool

type OrderPushRsp

type OrderPushRsp struct {
	Err
	Body string `json:"body"` // POI 等关联业务推送结果,非 POI 订单为空,JSON 字符串
}

OrderPushRsp 订单同步响应参数

type Param

type Param interface {
	// NeedSign 是否需要签名,有的接口不需要签名,比如:小程序登录与获取手机号接口
	NeedSign() bool

	// NeedAppId 是否需要APPID,有的接口不需要APPID,比如:获取应用授权调用凭证
	NeedAppId() bool

	// NeedSecret 是否需要密钥
	NeedSecret() bool

	// NeedAccessToken 是否需要token
	NeedAccessToken() bool

	// ContentType 请求头,有的接口不是JSON的请求头
	ContentType() string
}

type PaymentInfo

type PaymentInfo struct {
	TotalFee    int    `json:"total_fee"`    // 支付金额,单位为分
	OrderStatus string `json:"order_status"` // 支付状态枚举值: SUCCESS:成功 TIMEOUT:超时未支付 PROCESSING:处理中 FAIL:失败
	PayTime     string `json:"pay_time"`     //  支付完成时间,order_status不为SUCCESS时会返回默认值空字符串,order_status为SUCCESS时返回非空字符串,格式为"yyyy-MM-dd HH:mm:ss"
	Way         int    `json:"way"`          // 支付渠道,order_status不为SUCCESS时会返回默认值0,order_status为SUCCESS时会返回以下枚举:1-微信支付,2-支付宝支付,10-抖音支付
	ChannelNo   string `json:"channel_no"`   // 支付渠道侧的支付单号
	SellerUid   string `json:"seller_uid"`   // 该笔交易卖家商户号
	ItemId      string `json:"item_id"`      // 订单来源视频对应视频id
	CpExtra     string `json:"cp_extra"`     // 开发者自定义字段
}

PaymentInfo 支付信息

type QrcodeCreate

type QrcodeCreate struct {
	AuxParam
	AccessToken  string     `json:"access_token"`         // 调用/oauth/client_token/生成的 token,此 token 不需要用户授权。
	AppName      string     `json:"app_name"`             // 是打开二维码的字节系 app 名称,默认为今日头条toutiao,今日头条极速版toutiao_lite,抖音douyin,抖音极速版douyin_lite,抖音火山版huoshan,全宿主,即在哪个宿主扫码就在哪个宿主打开小程序,若某个宿主没有该小程序,兜底往抖音app跳转all
	Path         string     `json:"path"`                 // 小程序/小游戏启动参数,小程序则格式为 encode({path}?{query}),小游戏则格式为 JSON 字符串,默认为空
	Width        int        `json:"width"`                // 二维码宽度,单位 px,最小 280px,最大 1280px,默认为 430px
	LineColor    LineColor  `json:"line_color,omitempty"` // 二维码线条颜色,默认为黑色
	Background   Background `json:"background,omitempty"` // 二维码背景颜色,默认为白色
	SetIcon      bool       `json:"set_icon"`             // 是否展示小程序/小游戏 icon,默认不展示
	IsCircleCode bool       `json:"is_circle_code"`       // 默认是false,是否生成抖音码,默认不生成(抖音码不支持自定义颜色)
}

QrcodeCreate 生成QRCodeV2 https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/url-and-qrcode/qrcode/create-qr-code-v2

func (QrcodeCreate) NeedAccessToken

func (q QrcodeCreate) NeedAccessToken() bool

func (QrcodeCreate) NeedSign

func (q QrcodeCreate) NeedSign() bool

type QrcodeCreateRsp

type QrcodeCreateRsp struct {
	ErrNo  int    `json:"err_no"`
	ErrMsg string `json:"err_msg"`
	Data   struct {
		Img string `json:"img"` // 返回的图片数据以base64进行编码
	} `json:"data"`
}

QrcodeCreateRsp 生成QRCodeV2响应参数

type Trade

type Trade struct {
	AuxParam
	OutOrderNo string `json:"out_order_no"` // 开发者侧的订单号,商户分配支付单号,标识进行退款的订单
}

type TradeEcPay

type TradeEcPay struct {
	Trade
	TotalAmount     int64  `json:"total_amount"` // 支付价格。 单位为[分]
	Subject         string `json:"subject"`      // 商品描述。 长度限制不超过 128 字节且不超过 42 字符
	Body            string `json:"body"`         // 商品详情 长度限制不超过 128 字节且不超过 42 字符
	ValidTime       int64  `json:"valid_time"`   // 订单过期时间(秒)。最小5分钟,最大2天,小于5分钟会被置为5分钟,大于2天会被置为2天,取值范围:[300,172800]
	CpExtra         string `json:"cp_extra"`     // 开发者自定义字段,回调原样回传。 超过最大长度会被截断(2048)
	NotifyUrl       string `json:"notify_url"`
	ThirdPartyId    string `json:"thirdparty_id"`               // 第三方平台服务商 id,非服务商模式留空,服务商模式接入必传
	StoreUid        string `json:"store_uid,omitempty"`         // 可用此字段指定本单使用的收款商户号(目前为灰度功能,需要联系平台运营添加白名单,白名单添加1小时后生效;未在白名单的小程序,该字段不生效)多门店模式下可传
	DisableMsg      int64  `json:"disable_msg,omitempty"`       // 是否屏蔽支付完成后推送用户抖音消息,1-屏蔽 0-非屏蔽,默认为0。 特别注意: 若接入POI, 请传1。因为POI订单体系会发消息,所以不用再接收一次担保支付推送消息
	MsgPage         string `json:"msg_page,omitempty"`          // 支付完成后推送给用户的抖音消息跳转页面,开发者需要传入在app.json中定义的链接,如果不传则跳转首页。
	ExpandOrderInfo string `json:"expand_order_info,omitempty"` // 订单拓展信息,{"original_delivery_fee":10,"actual_delivery_fee":10}
	LimitPayWay     string `json:"limit_pay_way,omitempty"`     // 屏蔽指定支付方式,屏蔽多个支付方式,请使用逗号","分割,枚举值:屏蔽微信支付:LIMIT_WX,屏蔽支付宝支付:LIMIT_ALI
}

TradeEcPay 担保交易 https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/pay-list/pay/

type TradeEcPayRsp

type TradeEcPayRsp struct {
	Error
	Data struct {
		OrderId    string `json:"order_id"`    // 抖音侧唯一订单号
		OrderToken string `json:"order_token"` // 签名后的订单信息
	} `json:"data"`
}

TradeEcPayRsp 担保交易响应参数

type TradeOrderQuery

type TradeOrderQuery struct {
	Trade
	ThirdPartyId string `json:"thirdparty_id"` // 第三方平台服务商 id,非服务商模式留空,服务商模式接入必传
}

TradeOrderQuery 支付结果查询 https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/pay-list/query

type TradeOrderQueryRsp

type TradeOrderQueryRsp struct {
	Error
	OutOrderNo  string      `json:"out_order_no"`       // 开发者侧的订单号
	OrderId     string      `json:"order_id"`           // 抖音侧唯一订单号
	PaymentInfo PaymentInfo `json:"payment_info"`       // 支付信息
	CpsInfo     interface{} `json:"cps_info,omitempty"` // 若该订单为CPS订单,该字段会返回该笔订单的CPS相关信息
}

TradeOrderQueryRsp 支付结果查询响应参数

type TradeRefund

type TradeRefund struct {
	Trade
	OutRefundNo  string `json:"out_refund_no"` // 商户分配退款号,保证在商户中唯一
	Reason       string `json:"reason"`        // 退款原因
	RefundAmount int    `json:"refund_amount"` // 退款金额,单位分
	CpExtra      string `json:"cp_extra"`      // 开发者自定义字段,回调原样回传
	NotifyUrl    string `json:"notify_url"`    // 商户自定义回调地址,必须以 https 开头,支持 443 端口
	ThirdPartyId string `json:"thirdparty_id"` // 第三方平台服务商id,服务商模式接入必传,非服务商模式留空
	DisableMsg   int64  `json:"disable_msg"`   // 是否屏蔽支付完成后推送用户抖音消息,1-屏蔽 0-非屏蔽,默认为0。 特别注意: 若接入POI, 请传1。因为POI订单体系会发消息,所以不用再接收一次担保支付推送消息
	MsgPage      string `json:"msg_page"`      // 支付完成后推送给用户的抖音消息跳转页面,开发者需要传入在app.json中定义的链接,如果不传则跳转首页。
}

TradeRefund 发起退款 https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/refund-list/refund

type TradeRefundQuery

type TradeRefundQuery struct {
	AuxParam
	OutRefundNo  string `json:"out_refund_no"` // 商户分配退款号,保证在商户中唯一
	ThirdPartyId string `json:"thirdparty_id"` // 第三方平台服务商id,服务商模式接入必传,非服务商模式留空
}

TradeRefundQuery 退款结果查询 https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/refund-list/query

type TradeRefundQueryRsp

type TradeRefundQueryRsp struct {
	Error
	RefundInfo struct {
		RefundNo     string `json:"refund_no"`      // 抖音退款单号
		RefundAmount int    `json:"refund_amount"`  // 退款金额,单位为分
		RefundStatus string `json:"refund_status"`  // 退款状态枚举 SUCCESS:成功 FAIL:失败 PROCESSING:处理中
		RefundedAt   int    `json:"refunded_at"`    // 退款时间,Unix 时间戳,10 位,整型数,秒级
		IsAllSettled bool   `json:"is_all_settled"` // 退款账户枚举: TRUE:分账后退款,现金户出款 FALSE:分账前退款,在途户出款
		CpExtra      string `json:"cp_extra"`       // 开发者自定义字段,回调原样回传
		Msg          string `json:"msg"`            // 退款错误描述
	} `json:"refundInfo"`
}

TradeRefundQueryRsp 退款结果查询响应参数

type TradeRefundRsp

type TradeRefundRsp struct {
	Error
	RefundNo string `json:"refund_no"` // 担保交易服务端退款单号
}

TradeRefundRsp 发起退款响应参数

type WatermarkData

type WatermarkData struct {
	Appid     string `json:"appid"`
	Timestamp int    `json:"timestamp"`
}

Jump to

Keyboard shortcuts

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