mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-04 12:52:27 +08:00
[feature] Format the code and improve Mini Program authorization to o… (#473)
* [feature] Format the code and improve Mini Program authorization to obtain openid(miniprogram/auth/auth.go Code2Session) * [feature] CheckEncryptedData (https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/user-info/auth.checkEncryptedData.html) * upgrade json error * upgrade json error Co-authored-by: houseme <houseme@outlook.com>
This commit is contained in:
@@ -32,12 +32,12 @@ const (
|
||||
getAnalysisVisitPageURL = "https://api.weixin.qq.com/datacube/getweanalysisappidvisitpage?access_token=%s"
|
||||
)
|
||||
|
||||
//Analysis analyis 数据分析
|
||||
// Analysis analyis 数据分析
|
||||
type Analysis struct {
|
||||
*context.Context
|
||||
}
|
||||
|
||||
//NewAnalysis new
|
||||
// NewAnalysis new
|
||||
func NewAnalysis(ctx *context.Context) *Analysis {
|
||||
return &Analysis{ctx}
|
||||
}
|
||||
|
||||
@@ -10,14 +10,16 @@ import (
|
||||
|
||||
const (
|
||||
code2SessionURL = "https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code"
|
||||
|
||||
checkEncryptedDataURL = "https://api.weixin.qq.com/wxa/business/checkencryptedmsg?access_token=%s"
|
||||
)
|
||||
|
||||
//Auth 登录/用户信息
|
||||
// Auth 登录/用户信息
|
||||
type Auth struct {
|
||||
*context.Context
|
||||
}
|
||||
|
||||
//NewAuth new auth
|
||||
// NewAuth new auth
|
||||
func NewAuth(ctx *context.Context) *Auth {
|
||||
return &Auth{ctx}
|
||||
}
|
||||
@@ -31,16 +33,21 @@ type ResCode2Session struct {
|
||||
UnionID string `json:"unionid"` // 用户在开放平台的唯一标识符,在满足UnionID下发条件的情况下会返回
|
||||
}
|
||||
|
||||
//Code2Session 登录凭证校验。
|
||||
// RspCheckEncryptedData .
|
||||
type RspCheckEncryptedData struct {
|
||||
util.CommonError
|
||||
|
||||
Vaild bool `json:"vaild"` // 是否是合法的数据
|
||||
CreateTime uint `json:"create_time"` // 加密数据生成的时间戳
|
||||
}
|
||||
|
||||
// Code2Session 登录凭证校验。
|
||||
func (auth *Auth) Code2Session(jsCode string) (result ResCode2Session, err error) {
|
||||
urlStr := fmt.Sprintf(code2SessionURL, auth.AppID, auth.AppSecret, jsCode)
|
||||
var response []byte
|
||||
response, err = util.HTTPGet(urlStr)
|
||||
if err != nil {
|
||||
if response, err = util.HTTPGet(fmt.Sprintf(code2SessionURL, auth.AppID, auth.AppSecret, jsCode)); err != nil {
|
||||
return
|
||||
}
|
||||
err = json.Unmarshal(response, &result)
|
||||
if err != nil {
|
||||
if err = json.Unmarshal(response, &result); err != nil {
|
||||
return
|
||||
}
|
||||
if result.ErrCode != 0 {
|
||||
@@ -50,7 +57,25 @@ func (auth *Auth) Code2Session(jsCode string) (result ResCode2Session, err error
|
||||
return
|
||||
}
|
||||
|
||||
//GetPaidUnionID 用户支付完成后,获取该用户的 UnionId,无需用户授权
|
||||
// GetPaidUnionID 用户支付完成后,获取该用户的 UnionId,无需用户授权
|
||||
func (auth *Auth) GetPaidUnionID() {
|
||||
//TODO
|
||||
// TODO
|
||||
}
|
||||
|
||||
// CheckEncryptedData .检查加密信息是否由微信生成(当前只支持手机号加密数据),只能检测最近3天生成的加密数据
|
||||
func (auth *Auth) CheckEncryptedData(encryptedMsgHash string) (result RspCheckEncryptedData, err error) {
|
||||
var response []byte
|
||||
var (
|
||||
at string
|
||||
)
|
||||
if at, err = auth.GetAccessToken(); err != nil {
|
||||
return
|
||||
}
|
||||
if response, err = util.HTTPPost(fmt.Sprintf(checkEncryptedDataURL, at), "encrypted_msg_hash="+encryptedMsgHash); err != nil {
|
||||
return
|
||||
}
|
||||
if err = util.DecodeWithError(response, &result, "CheckEncryptedDataAuth"); err != nil {
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"github.com/silenceper/wechat/v2/cache"
|
||||
)
|
||||
|
||||
// Config config for 小程序
|
||||
// Config .config for 小程序
|
||||
type Config struct {
|
||||
AppID string `json:"app_id"` // appid
|
||||
AppSecret string `json:"app_secret"` // appsecret
|
||||
|
||||
@@ -12,18 +12,18 @@ const (
|
||||
checkImageURL = "https://api.weixin.qq.com/wxa/img_sec_check?access_token=%s"
|
||||
)
|
||||
|
||||
//Content 内容安全
|
||||
// Content 内容安全
|
||||
type Content struct {
|
||||
*context.Context
|
||||
}
|
||||
|
||||
//NewContent 内容安全接口
|
||||
// NewContent 内容安全接口
|
||||
func NewContent(ctx *context.Context) *Content {
|
||||
return &Content{ctx}
|
||||
}
|
||||
|
||||
//CheckText 检测文字
|
||||
//@text 需要检测的文字
|
||||
// CheckText 检测文字
|
||||
// @text 需要检测的文字
|
||||
func (content *Content) CheckText(text string) error {
|
||||
accessToken, err := content.GetAccessToken()
|
||||
if err != nil {
|
||||
@@ -41,9 +41,9 @@ func (content *Content) CheckText(text string) error {
|
||||
return util.DecodeWithCommonError(response, "ContentCheckText")
|
||||
}
|
||||
|
||||
//CheckImage 检测图片
|
||||
//所传参数为要检测的图片文件的绝对路径,图片格式支持PNG、JPEG、JPG、GIF, 像素不超过 750 x 1334,同时文件大小以不超过 300K 为宜,否则可能报错
|
||||
//@media 图片文件的绝对路径
|
||||
// CheckImage 检测图片
|
||||
// 所传参数为要检测的图片文件的绝对路径,图片格式支持PNG、JPEG、JPG、GIF, 像素不超过 750 x 1334,同时文件大小以不超过 300K 为宜,否则可能报错
|
||||
// @media 图片文件的绝对路径
|
||||
func (content *Content) CheckImage(media string) error {
|
||||
accessToken, err := content.GetAccessToken()
|
||||
if err != nil {
|
||||
|
||||
@@ -10,12 +10,12 @@ import (
|
||||
"github.com/silenceper/wechat/v2/miniprogram/context"
|
||||
)
|
||||
|
||||
//Encryptor struct
|
||||
// Encryptor struct
|
||||
type Encryptor struct {
|
||||
*context.Context
|
||||
}
|
||||
|
||||
//NewEncryptor 实例
|
||||
// NewEncryptor 实例
|
||||
func NewEncryptor(context *context.Context) *Encryptor {
|
||||
basic := new(Encryptor)
|
||||
basic.Context = context
|
||||
|
||||
@@ -12,13 +12,13 @@ type EventType string
|
||||
type InfoType string
|
||||
|
||||
const (
|
||||
//MsgTypeText 文本消息
|
||||
// MsgTypeText 文本消息
|
||||
MsgTypeText MsgType = "text"
|
||||
//MsgTypeImage 图片消息
|
||||
// MsgTypeImage 图片消息
|
||||
MsgTypeImage = "image"
|
||||
//MsgTypeLink 图文链接
|
||||
// MsgTypeLink 图文链接
|
||||
MsgTypeLink = "link"
|
||||
//MsgTypeMiniProgramPage 小程序卡片
|
||||
// MsgTypeMiniProgramPage 小程序卡片
|
||||
MsgTypeMiniProgramPage = "miniprogrampage"
|
||||
)
|
||||
|
||||
|
||||
@@ -11,29 +11,29 @@ const (
|
||||
customerSendMessage = "https://api.weixin.qq.com/cgi-bin/message/custom/send"
|
||||
)
|
||||
|
||||
//Manager 消息管理者,可以发送消息
|
||||
// Manager 消息管理者,可以发送消息
|
||||
type Manager struct {
|
||||
*context.Context
|
||||
}
|
||||
|
||||
//NewCustomerMessageManager 实例化消息管理者
|
||||
// NewCustomerMessageManager 实例化消息管理者
|
||||
func NewCustomerMessageManager(context *context.Context) *Manager {
|
||||
return &Manager{
|
||||
context,
|
||||
}
|
||||
}
|
||||
|
||||
//MediaText 文本消息的文字
|
||||
// MediaText 文本消息的文字
|
||||
type MediaText struct {
|
||||
Content string `json:"content"`
|
||||
}
|
||||
|
||||
//MediaResource 消息使用的临时素材id
|
||||
// MediaResource 消息使用的临时素材id
|
||||
type MediaResource struct {
|
||||
MediaID string `json:"media_id"`
|
||||
}
|
||||
|
||||
//MediaMiniprogrampage 小程序卡片
|
||||
// MediaMiniprogrampage 小程序卡片
|
||||
type MediaMiniprogrampage struct {
|
||||
Title string `json:"title"`
|
||||
Appid string `json:"appid"`
|
||||
@@ -49,17 +49,17 @@ type MediaLink struct {
|
||||
ThumbURL string `json:"thumb_url"`
|
||||
}
|
||||
|
||||
//CustomerMessage 客服消息
|
||||
// CustomerMessage 客服消息
|
||||
type CustomerMessage struct {
|
||||
ToUser string `json:"touser"` //接受者OpenID
|
||||
Msgtype MsgType `json:"msgtype"` //客服消息类型
|
||||
Text *MediaText `json:"text,omitempty"` //可选
|
||||
Image *MediaResource `json:"image,omitempty"` //可选
|
||||
Link *MediaLink `json:"link,omitempty"` //可选
|
||||
Miniprogrampage *MediaMiniprogrampage `json:"miniprogrampage,omitempty"` //可选
|
||||
ToUser string `json:"touser"` // 接受者OpenID
|
||||
Msgtype MsgType `json:"msgtype"` // 客服消息类型
|
||||
Text *MediaText `json:"text,omitempty"` // 可选
|
||||
Image *MediaResource `json:"image,omitempty"` // 可选
|
||||
Link *MediaLink `json:"link,omitempty"` // 可选
|
||||
Miniprogrampage *MediaMiniprogrampage `json:"miniprogrampage,omitempty"` // 可选
|
||||
}
|
||||
|
||||
//NewCustomerTextMessage 文本消息结构体构造方法
|
||||
// NewCustomerTextMessage 文本消息结构体构造方法
|
||||
func NewCustomerTextMessage(toUser, text string) *CustomerMessage {
|
||||
return &CustomerMessage{
|
||||
ToUser: toUser,
|
||||
@@ -70,7 +70,7 @@ func NewCustomerTextMessage(toUser, text string) *CustomerMessage {
|
||||
}
|
||||
}
|
||||
|
||||
//NewCustomerImgMessage 图片消息的构造方法
|
||||
// NewCustomerImgMessage 图片消息的构造方法
|
||||
func NewCustomerImgMessage(toUser, mediaID string) *CustomerMessage {
|
||||
return &CustomerMessage{
|
||||
ToUser: toUser,
|
||||
@@ -81,7 +81,7 @@ func NewCustomerImgMessage(toUser, mediaID string) *CustomerMessage {
|
||||
}
|
||||
}
|
||||
|
||||
//NewCustomerLinkMessage 图文链接消息的构造方法
|
||||
// NewCustomerLinkMessage 图文链接消息的构造方法
|
||||
func NewCustomerLinkMessage(toUser, title, description, url, thumbURL string) *CustomerMessage {
|
||||
return &CustomerMessage{
|
||||
ToUser: toUser,
|
||||
@@ -95,7 +95,7 @@ func NewCustomerLinkMessage(toUser, title, description, url, thumbURL string) *C
|
||||
}
|
||||
}
|
||||
|
||||
//NewCustomerMiniprogrampageMessage 小程序卡片消息的构造方法
|
||||
// NewCustomerMiniprogrampageMessage 小程序卡片消息的构造方法
|
||||
func NewCustomerMiniprogrampageMessage(toUser, title, pagepath, thumbMediaID string) *CustomerMessage {
|
||||
return &CustomerMessage{
|
||||
ToUser: toUser,
|
||||
@@ -108,7 +108,7 @@ func NewCustomerMiniprogrampageMessage(toUser, title, pagepath, thumbMediaID str
|
||||
}
|
||||
}
|
||||
|
||||
//Send 发送客服消息
|
||||
// Send 发送客服消息
|
||||
func (manager *Manager) Send(msg *CustomerMessage) error {
|
||||
accessToken, err := manager.Context.GetAccessToken()
|
||||
if err != nil {
|
||||
|
||||
@@ -17,12 +17,12 @@ import (
|
||||
"github.com/silenceper/wechat/v2/miniprogram/werun"
|
||||
)
|
||||
|
||||
//MiniProgram 微信小程序相关API
|
||||
// MiniProgram 微信小程序相关API
|
||||
type MiniProgram struct {
|
||||
ctx *context.Context
|
||||
}
|
||||
|
||||
//NewMiniProgram 实例化小程序API
|
||||
// NewMiniProgram 实例化小程序API
|
||||
func NewMiniProgram(cfg *config.Config) *MiniProgram {
|
||||
defaultAkHandle := credential.NewDefaultAccessToken(cfg.AppID, cfg.AppSecret, credential.CacheKeyMiniProgramPrefix, cfg.Cache)
|
||||
ctx := &context.Context{
|
||||
@@ -32,7 +32,7 @@ func NewMiniProgram(cfg *config.Config) *MiniProgram {
|
||||
return &MiniProgram{ctx}
|
||||
}
|
||||
|
||||
//SetAccessTokenHandle 自定义access_token获取方式
|
||||
// SetAccessTokenHandle 自定义access_token获取方式
|
||||
func (miniProgram *MiniProgram) SetAccessTokenHandle(accessTokenHandle credential.AccessTokenHandle) {
|
||||
miniProgram.ctx.AccessTokenHandle = accessTokenHandle
|
||||
}
|
||||
@@ -47,27 +47,27 @@ func (miniProgram *MiniProgram) GetEncryptor() *encryptor.Encryptor {
|
||||
return encryptor.NewEncryptor(miniProgram.ctx)
|
||||
}
|
||||
|
||||
//GetAuth 登录/用户信息相关接口
|
||||
// GetAuth 登录/用户信息相关接口
|
||||
func (miniProgram *MiniProgram) GetAuth() *auth.Auth {
|
||||
return auth.NewAuth(miniProgram.ctx)
|
||||
}
|
||||
|
||||
//GetAnalysis 数据分析
|
||||
// GetAnalysis 数据分析
|
||||
func (miniProgram *MiniProgram) GetAnalysis() *analysis.Analysis {
|
||||
return analysis.NewAnalysis(miniProgram.ctx)
|
||||
}
|
||||
|
||||
//GetQRCode 小程序码相关API
|
||||
// GetQRCode 小程序码相关API
|
||||
func (miniProgram *MiniProgram) GetQRCode() *qrcode.QRCode {
|
||||
return qrcode.NewQRCode(miniProgram.ctx)
|
||||
}
|
||||
|
||||
//GetTcb 小程序云开发API
|
||||
// GetTcb 小程序云开发API
|
||||
func (miniProgram *MiniProgram) GetTcb() *tcb.Tcb {
|
||||
return tcb.NewTcb(miniProgram.ctx)
|
||||
}
|
||||
|
||||
//GetSubscribe 小程序订阅消息
|
||||
// GetSubscribe 小程序订阅消息
|
||||
func (miniProgram *MiniProgram) GetSubscribe() *subscribe.Subscribe {
|
||||
return subscribe.NewSubscribe(miniProgram.ctx)
|
||||
}
|
||||
|
||||
@@ -15,12 +15,12 @@ const (
|
||||
getWXACodeUnlimitURL = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=%s"
|
||||
)
|
||||
|
||||
//QRCode struct
|
||||
// QRCode struct
|
||||
type QRCode struct {
|
||||
*context.Context
|
||||
}
|
||||
|
||||
//NewQRCode 实例
|
||||
// NewQRCode 实例
|
||||
func NewQRCode(context *context.Context) *QRCode {
|
||||
qrCode := new(QRCode)
|
||||
qrCode.Context = context
|
||||
|
||||
@@ -8,8 +8,8 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
//发送订阅消息
|
||||
//https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html
|
||||
// 发送订阅消息
|
||||
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html
|
||||
subscribeSendURL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send"
|
||||
|
||||
// 获取当前帐号下的个人模板列表
|
||||
@@ -41,21 +41,21 @@ func NewSubscribe(ctx *context.Context) *Subscribe {
|
||||
|
||||
// Message 订阅消息请求参数
|
||||
type Message struct {
|
||||
ToUser string `json:"touser"` //必选,接收者(用户)的 openid
|
||||
TemplateID string `json:"template_id"` //必选,所需下发的订阅模板id
|
||||
Page string `json:"page"` //可选,点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
|
||||
Data map[string]*DataItem `json:"data"` //必选, 模板内容
|
||||
MiniprogramState string `json:"miniprogram_state"` //可选,跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
|
||||
Lang string `json:"lang"` //入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
|
||||
ToUser string `json:"touser"` // 必选,接收者(用户)的 openid
|
||||
TemplateID string `json:"template_id"` // 必选,所需下发的订阅模板id
|
||||
Page string `json:"page"` // 可选,点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
|
||||
Data map[string]*DataItem `json:"data"` // 必选, 模板内容
|
||||
MiniprogramState string `json:"miniprogram_state"` // 可选,跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
|
||||
Lang string `json:"lang"` // 入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
|
||||
}
|
||||
|
||||
//DataItem 模版内某个 .DATA 的值
|
||||
// DataItem 模版内某个 .DATA 的值
|
||||
type DataItem struct {
|
||||
Value interface{} `json:"value"`
|
||||
Color string `json:"color"`
|
||||
}
|
||||
|
||||
//TemplateItem template item
|
||||
// TemplateItem template item
|
||||
type TemplateItem struct {
|
||||
PriTmplID string `json:"priTmplId"`
|
||||
Title string `json:"title"`
|
||||
@@ -64,7 +64,7 @@ type TemplateItem struct {
|
||||
Type int64 `json:"type"`
|
||||
}
|
||||
|
||||
//TemplateList template list
|
||||
// TemplateList template list
|
||||
type TemplateList struct {
|
||||
util.CommonError
|
||||
Data []TemplateItem `json:"data"`
|
||||
@@ -85,7 +85,7 @@ func (s *Subscribe) Send(msg *Message) (err error) {
|
||||
return util.DecodeWithCommonError(response, "Send")
|
||||
}
|
||||
|
||||
//ListTemplates 获取当前帐号下的个人模板列表
|
||||
// ListTemplates 获取当前帐号下的个人模板列表
|
||||
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.getTemplateList.html
|
||||
func (s *Subscribe) ListTemplates() (*TemplateList, error) {
|
||||
accessToken, err := s.GetAccessToken()
|
||||
|
||||
@@ -7,17 +7,17 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
//触发云函数
|
||||
// 触发云函数
|
||||
invokeCloudFunctionURL = "https://api.weixin.qq.com/tcb/invokecloudfunction"
|
||||
)
|
||||
|
||||
//InvokeCloudFunctionRes 云函数调用返回结果
|
||||
// InvokeCloudFunctionRes 云函数调用返回结果
|
||||
type InvokeCloudFunctionRes struct {
|
||||
util.CommonError
|
||||
RespData string `json:"resp_data"` //云函数返回的buffer
|
||||
RespData string `json:"resp_data"` // 云函数返回的buffer
|
||||
}
|
||||
|
||||
//InvokeCloudFunction 云函数调用
|
||||
// InvokeCloudFunction 云函数调用
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/functions/invokeCloudFunction.html
|
||||
func (tcb *Tcb) InvokeCloudFunction(env, name, args string) (*InvokeCloudFunctionRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
|
||||
@@ -7,191 +7,191 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
//数据库导入
|
||||
// 数据库导入
|
||||
databaseMigrateImportURL = "https://api.weixin.qq.com/tcb/databasemigrateimport"
|
||||
//数据库导出
|
||||
// 数据库导出
|
||||
databaseMigrateExportURL = "https://api.weixin.qq.com/tcb/databasemigrateexport"
|
||||
//数据库迁移状态查询
|
||||
// 数据库迁移状态查询
|
||||
databaseMigrateQueryInfoURL = "https://api.weixin.qq.com/tcb/databasemigratequeryinfo"
|
||||
//变更数据库索引
|
||||
// 变更数据库索引
|
||||
updateIndexURL = "https://api.weixin.qq.com/tcb/updateindex"
|
||||
//新增集合
|
||||
// 新增集合
|
||||
databaseCollectionAddURL = "https://api.weixin.qq.com/tcb/databasecollectionadd"
|
||||
//删除集合
|
||||
// 删除集合
|
||||
databaseCollectionDeleteURL = "https://api.weixin.qq.com/tcb/databasecollectiondelete"
|
||||
//获取特定云环境下集合信息
|
||||
// 获取特定云环境下集合信息
|
||||
databaseCollectionGetURL = "https://api.weixin.qq.com/tcb/databasecollectionget"
|
||||
//数据库插入记录
|
||||
// 数据库插入记录
|
||||
databaseAddURL = "https://api.weixin.qq.com/tcb/databaseadd"
|
||||
//数据库删除记录
|
||||
// 数据库删除记录
|
||||
databaseDeleteURL = "https://api.weixin.qq.com/tcb/databasedelete"
|
||||
//数据库更新记录
|
||||
// 数据库更新记录
|
||||
databaseUpdateURL = "https://api.weixin.qq.com/tcb/databaseupdate"
|
||||
//数据库查询记录
|
||||
// 数据库查询记录
|
||||
databaseQueryURL = "https://api.weixin.qq.com/tcb/databasequery"
|
||||
//统计集合记录数或统计查询语句对应的结果记录数
|
||||
// 统计集合记录数或统计查询语句对应的结果记录数
|
||||
databaseCountURL = "https://api.weixin.qq.com/tcb/databasecount"
|
||||
|
||||
//ConflictModeInster 冲突处理模式 插入
|
||||
// ConflictModeInster 冲突处理模式 插入
|
||||
ConflictModeInster ConflictMode = 1
|
||||
//ConflictModeUpsert 冲突处理模式 更新
|
||||
// ConflictModeUpsert 冲突处理模式 更新
|
||||
ConflictModeUpsert ConflictMode = 2
|
||||
|
||||
//FileTypeJSON 的合法值 json
|
||||
// FileTypeJSON 的合法值 json
|
||||
FileTypeJSON FileType = 1
|
||||
//FileTypeCsv 的合法值 csv
|
||||
// FileTypeCsv 的合法值 csv
|
||||
FileTypeCsv FileType = 2
|
||||
)
|
||||
|
||||
//ConflictMode 冲突处理模式
|
||||
// ConflictMode 冲突处理模式
|
||||
type ConflictMode int
|
||||
|
||||
//FileType 文件上传和导出的允许文件类型
|
||||
// FileType 文件上传和导出的允许文件类型
|
||||
type FileType int
|
||||
|
||||
//ValidDirections 合法的direction值
|
||||
// ValidDirections 合法的direction值
|
||||
var ValidDirections = []string{"1", "-1", "2dsphere"}
|
||||
|
||||
//DatabaseMigrateExportReq 数据库出 请求参数
|
||||
// DatabaseMigrateExportReq 数据库出 请求参数
|
||||
type DatabaseMigrateExportReq struct {
|
||||
Env string `json:"env,omitempty"` //云环境ID
|
||||
FilePath string `json:"file_path,omitempty"` //导出文件路径(导入文件需先上传到同环境的存储中,可使用开发者工具或 HTTP API的上传文件 API上传)
|
||||
FileType FileType `json:"file_type,omitempty"` //导出文件类型,文件格式参考数据库导入指引中的文件格式部分 1:json 2:csv
|
||||
Query string `json:"query,omitempty"` //导出条件
|
||||
Env string `json:"env,omitempty"` // 云环境ID
|
||||
FilePath string `json:"file_path,omitempty"` // 导出文件路径(导入文件需先上传到同环境的存储中,可使用开发者工具或 HTTP API的上传文件 API上传)
|
||||
FileType FileType `json:"file_type,omitempty"` // 导出文件类型,文件格式参考数据库导入指引中的文件格式部分 1:json 2:csv
|
||||
Query string `json:"query,omitempty"` // 导出条件
|
||||
}
|
||||
|
||||
//DatabaseMigrateExportRes 数据库导出 返回结果
|
||||
// DatabaseMigrateExportRes 数据库导出 返回结果
|
||||
type DatabaseMigrateExportRes struct {
|
||||
util.CommonError
|
||||
JobID int64 `json:"job_id"` //导出任务ID,可使用数据库迁移进度查询 API 查询导入进度及结果
|
||||
JobID int64 `json:"job_id"` // 导出任务ID,可使用数据库迁移进度查询 API 查询导入进度及结果
|
||||
}
|
||||
|
||||
//DatabaseMigrateImportReq 数据库导入 请求参数
|
||||
// DatabaseMigrateImportReq 数据库导入 请求参数
|
||||
type DatabaseMigrateImportReq struct {
|
||||
Env string `json:"env,omitempty"` //云环境ID
|
||||
CollectionName string `json:"collection_name,omitempty"` //集合名称
|
||||
FilePath string `json:"file_path,omitempty"` //导出文件路径(文件会导出到同环境的云存储中,可使用获取下载链接 API 获取下载链接)
|
||||
FileType FileType `json:"file_type,omitempty"` //导入文件类型,文件格式参考数据库导入指引中的文件格式部分 1:json 2:csv
|
||||
StopOnError bool `json:"stop_on_error,omitempty"` //是否在遇到错误时停止导入
|
||||
ConflictMode ConflictMode `json:"conflict_mode,omitempty"` //冲突处理模式 1:inster 2:UPSERT
|
||||
Env string `json:"env,omitempty"` // 云环境ID
|
||||
CollectionName string `json:"collection_name,omitempty"` // 集合名称
|
||||
FilePath string `json:"file_path,omitempty"` // 导出文件路径(文件会导出到同环境的云存储中,可使用获取下载链接 API 获取下载链接)
|
||||
FileType FileType `json:"file_type,omitempty"` // 导入文件类型,文件格式参考数据库导入指引中的文件格式部分 1:json 2:csv
|
||||
StopOnError bool `json:"stop_on_error,omitempty"` // 是否在遇到错误时停止导入
|
||||
ConflictMode ConflictMode `json:"conflict_mode,omitempty"` // 冲突处理模式 1:inster 2:UPSERT
|
||||
}
|
||||
|
||||
//DatabaseMigrateImportRes 数据库导入 返回结果
|
||||
// DatabaseMigrateImportRes 数据库导入 返回结果
|
||||
type DatabaseMigrateImportRes struct {
|
||||
util.CommonError
|
||||
JobID int64 `json:"job_id"` //导入任务ID,可使用数据库迁移进度查询 API 查询导入进度及结果
|
||||
JobID int64 `json:"job_id"` // 导入任务ID,可使用数据库迁移进度查询 API 查询导入进度及结果
|
||||
}
|
||||
|
||||
//DatabaseMigrateQueryInfoRes 数据库迁移状态查询
|
||||
// DatabaseMigrateQueryInfoRes 数据库迁移状态查询
|
||||
type DatabaseMigrateQueryInfoRes struct {
|
||||
util.CommonError
|
||||
Status string `json:"status"` //导出状态
|
||||
RecordSuccess int64 `json:"record_success"` //导出成功记录数
|
||||
RecordFail int64 `json:"record_fail"` //导出失败记录数
|
||||
ErrMsg string `json:"err_msg"` //导出错误信息
|
||||
FileURL string `json:"file_url"` //导出文件下载地址
|
||||
Status string `json:"status"` // 导出状态
|
||||
RecordSuccess int64 `json:"record_success"` // 导出成功记录数
|
||||
RecordFail int64 `json:"record_fail"` // 导出失败记录数
|
||||
ErrMsg string `json:"err_msg"` // 导出错误信息
|
||||
FileURL string `json:"file_url"` // 导出文件下载地址
|
||||
}
|
||||
|
||||
//UpdateIndexReq 变更数据库索引 请求参数
|
||||
// UpdateIndexReq 变更数据库索引 请求参数
|
||||
type UpdateIndexReq struct {
|
||||
Env string `json:"env,omitempty"` //云环境ID
|
||||
CollectionName string `json:"collection_name,omitempty"` //集合名称
|
||||
CreateIndexes []CreateIndex `json:"create_indexes,omitempty"` //新增索引
|
||||
DropIndexes []DropIndex `json:"drop_indexes,omitempty"` //删除索引
|
||||
Env string `json:"env,omitempty"` // 云环境ID
|
||||
CollectionName string `json:"collection_name,omitempty"` // 集合名称
|
||||
CreateIndexes []CreateIndex `json:"create_indexes,omitempty"` // 新增索引
|
||||
DropIndexes []DropIndex `json:"drop_indexes,omitempty"` // 删除索引
|
||||
}
|
||||
|
||||
//CreateIndex 新增索引
|
||||
// CreateIndex 新增索引
|
||||
type CreateIndex struct {
|
||||
Name string `json:"name,omitempty"` //索引名
|
||||
Unique bool `json:"unique,omitempty"` //是否唯一
|
||||
Keys []CreateIndexKey `json:"keys,omitempty"` //索引字段
|
||||
Name string `json:"name,omitempty"` // 索引名
|
||||
Unique bool `json:"unique,omitempty"` // 是否唯一
|
||||
Keys []CreateIndexKey `json:"keys,omitempty"` // 索引字段
|
||||
}
|
||||
|
||||
//CreateIndexKey create index key
|
||||
// CreateIndexKey create index key
|
||||
type CreateIndexKey struct {
|
||||
Name string `json:"name,omitempty"` //字段名
|
||||
Direction string `json:"direction,omitempty"` //字段排序
|
||||
Name string `json:"name,omitempty"` // 字段名
|
||||
Direction string `json:"direction,omitempty"` // 字段排序
|
||||
}
|
||||
|
||||
//DropIndex 删除索引
|
||||
// DropIndex 删除索引
|
||||
type DropIndex struct {
|
||||
Name string `json:"name,omitempty"`
|
||||
}
|
||||
|
||||
//DatabaseCollectionReq 新增/删除集合请求参数
|
||||
// DatabaseCollectionReq 新增/删除集合请求参数
|
||||
type DatabaseCollectionReq struct {
|
||||
Env string `json:"env,omitempty"` //云环境ID
|
||||
CollectionName string `json:"collection_name,omitempty"` //集合名称
|
||||
Env string `json:"env,omitempty"` // 云环境ID
|
||||
CollectionName string `json:"collection_name,omitempty"` // 集合名称
|
||||
}
|
||||
|
||||
//DatabaseCollectionGetReq 获取特定云环境下集合信息请求
|
||||
// DatabaseCollectionGetReq 获取特定云环境下集合信息请求
|
||||
type DatabaseCollectionGetReq struct {
|
||||
Env string `json:"env,omitempty"` //云环境ID
|
||||
Limit int64 `json:"limit,omitempty"` //获取数量限制
|
||||
Offset int64 `json:"offset,omitempty"` //偏移量
|
||||
Env string `json:"env,omitempty"` // 云环境ID
|
||||
Limit int64 `json:"limit,omitempty"` // 获取数量限制
|
||||
Offset int64 `json:"offset,omitempty"` // 偏移量
|
||||
}
|
||||
|
||||
//DatabaseCollectionGetRes 获取特定云环境下集合信息结果
|
||||
// DatabaseCollectionGetRes 获取特定云环境下集合信息结果
|
||||
type DatabaseCollectionGetRes struct {
|
||||
util.CommonError
|
||||
Pager struct {
|
||||
Limit int64 `json:"limit"` //单次查询限制
|
||||
Offset int64 `json:"offset"` //偏移量
|
||||
Total int64 `json:"total"` //符合查询条件的记录总数
|
||||
Limit int64 `json:"limit"` // 单次查询限制
|
||||
Offset int64 `json:"offset"` // 偏移量
|
||||
Total int64 `json:"total"` // 符合查询条件的记录总数
|
||||
} `json:"pager"`
|
||||
Collections []struct {
|
||||
Name string `json:"name"` //集合名
|
||||
Count int64 `json:"count"` //表中文档数量
|
||||
Size int64 `json:"size"` //表的大小(即表中文档总大小),单位:字节
|
||||
IndexCount int64 `json:"index_count"` //索引数量
|
||||
IndexSize int64 `json:"index_size"` //索引占用大小,单位:字节
|
||||
Name string `json:"name"` // 集合名
|
||||
Count int64 `json:"count"` // 表中文档数量
|
||||
Size int64 `json:"size"` // 表的大小(即表中文档总大小),单位:字节
|
||||
IndexCount int64 `json:"index_count"` // 索引数量
|
||||
IndexSize int64 `json:"index_size"` // 索引占用大小,单位:字节
|
||||
} `json:"collections"`
|
||||
}
|
||||
|
||||
//DatabaseReq 数据库插入/删除/更新/查询/统计记录请求参数
|
||||
// DatabaseReq 数据库插入/删除/更新/查询/统计记录请求参数
|
||||
type DatabaseReq struct {
|
||||
Env string `json:"env,omitempty"` //云环境ID
|
||||
Query string `json:"query,omitempty"` //数据库操作语句
|
||||
Env string `json:"env,omitempty"` // 云环境ID
|
||||
Query string `json:"query,omitempty"` // 数据库操作语句
|
||||
}
|
||||
|
||||
//DatabaseAddRes 数据库插入记录返回结果
|
||||
// DatabaseAddRes 数据库插入记录返回结果
|
||||
type DatabaseAddRes struct {
|
||||
util.CommonError
|
||||
IDList []string `json:"id_list"` //插入成功的数据集合主键_id。
|
||||
IDList []string `json:"id_list"` // 插入成功的数据集合主键_id。
|
||||
}
|
||||
|
||||
//DatabaseDeleteRes 数据库删除记录返回结果
|
||||
// DatabaseDeleteRes 数据库删除记录返回结果
|
||||
type DatabaseDeleteRes struct {
|
||||
util.CommonError
|
||||
Deleted int64 `json:"deleted"` //删除记录数量
|
||||
Deleted int64 `json:"deleted"` // 删除记录数量
|
||||
}
|
||||
|
||||
//DatabaseUpdateRes 数据库更新记录返回结果
|
||||
// DatabaseUpdateRes 数据库更新记录返回结果
|
||||
type DatabaseUpdateRes struct {
|
||||
util.CommonError
|
||||
Matched int64 `json:"matched"` //更新条件匹配到的结果数
|
||||
Modified int64 `json:"modified"` //修改的记录数,注意:使用set操作新插入的数据不计入修改数目
|
||||
Matched int64 `json:"matched"` // 更新条件匹配到的结果数
|
||||
Modified int64 `json:"modified"` // 修改的记录数,注意:使用set操作新插入的数据不计入修改数目
|
||||
ID string `json:"id"`
|
||||
}
|
||||
|
||||
//DatabaseQueryRes 数据库查询记录 返回结果
|
||||
// DatabaseQueryRes 数据库查询记录 返回结果
|
||||
type DatabaseQueryRes struct {
|
||||
util.CommonError
|
||||
Pager struct {
|
||||
Limit int64 `json:"limit"` //单次查询限制
|
||||
Offset int64 `json:"offset"` //偏移量
|
||||
Total int64 `json:"total"` //符合查询条件的记录总数
|
||||
Limit int64 `json:"limit"` // 单次查询限制
|
||||
Offset int64 `json:"offset"` // 偏移量
|
||||
Total int64 `json:"total"` // 符合查询条件的记录总数
|
||||
} `json:"pager"`
|
||||
Data []string `json:"data"`
|
||||
}
|
||||
|
||||
//DatabaseCountRes 统计集合记录数或统计查询语句对应的结果记录数 返回结果
|
||||
// DatabaseCountRes 统计集合记录数或统计查询语句对应的结果记录数 返回结果
|
||||
type DatabaseCountRes struct {
|
||||
util.CommonError
|
||||
Count int64 `json:"count"` //记录数量
|
||||
Count int64 `json:"count"` // 记录数量
|
||||
}
|
||||
|
||||
//DatabaseMigrateImport 数据库导入
|
||||
// DatabaseMigrateImport 数据库导入
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseMigrateImport.html
|
||||
func (tcb *Tcb) DatabaseMigrateImport(req *DatabaseMigrateImportReq) (*DatabaseMigrateImportRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -208,7 +208,7 @@ func (tcb *Tcb) DatabaseMigrateImport(req *DatabaseMigrateImportReq) (*DatabaseM
|
||||
return databaseMigrateImportRes, err
|
||||
}
|
||||
|
||||
//DatabaseMigrateExport 数据库导出
|
||||
// DatabaseMigrateExport 数据库导出
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseMigrateExport.html
|
||||
func (tcb *Tcb) DatabaseMigrateExport(req *DatabaseMigrateExportReq) (*DatabaseMigrateExportRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -225,7 +225,7 @@ func (tcb *Tcb) DatabaseMigrateExport(req *DatabaseMigrateExportReq) (*DatabaseM
|
||||
return databaseMigrateExportRes, err
|
||||
}
|
||||
|
||||
//DatabaseMigrateQueryInfo 数据库迁移状态查询
|
||||
// DatabaseMigrateQueryInfo 数据库迁移状态查询
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseMigrateQueryInfo.html
|
||||
func (tcb *Tcb) DatabaseMigrateQueryInfo(env string, jobID int64) (*DatabaseMigrateQueryInfoRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -245,8 +245,8 @@ func (tcb *Tcb) DatabaseMigrateQueryInfo(env string, jobID int64) (*DatabaseMigr
|
||||
return databaseMigrateQueryInfoRes, err
|
||||
}
|
||||
|
||||
//UpdateIndex 变更数据库索引
|
||||
//https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/updateIndex.html
|
||||
// UpdateIndex 变更数据库索引
|
||||
// https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/updateIndex.html
|
||||
func (tcb *Tcb) UpdateIndex(req *UpdateIndexReq) error {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
if err != nil {
|
||||
@@ -260,7 +260,7 @@ func (tcb *Tcb) UpdateIndex(req *UpdateIndexReq) error {
|
||||
return util.DecodeWithCommonError(response, "UpdateIndex")
|
||||
}
|
||||
|
||||
//DatabaseCollectionAdd 新增集合
|
||||
// DatabaseCollectionAdd 新增集合
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseCollectionAdd.html
|
||||
func (tcb *Tcb) DatabaseCollectionAdd(env, collectionName string) error {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -278,7 +278,7 @@ func (tcb *Tcb) DatabaseCollectionAdd(env, collectionName string) error {
|
||||
return util.DecodeWithCommonError(response, "DatabaseCollectionAdd")
|
||||
}
|
||||
|
||||
//DatabaseCollectionDelete 删除集合
|
||||
// DatabaseCollectionDelete 删除集合
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseCollectionDelete.html
|
||||
func (tcb *Tcb) DatabaseCollectionDelete(env, collectionName string) error {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -296,7 +296,7 @@ func (tcb *Tcb) DatabaseCollectionDelete(env, collectionName string) error {
|
||||
return util.DecodeWithCommonError(response, "DatabaseCollectionDelete")
|
||||
}
|
||||
|
||||
//DatabaseCollectionGet 获取特定云环境下集合信息
|
||||
// DatabaseCollectionGet 获取特定云环境下集合信息
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseCollectionGet.html
|
||||
func (tcb *Tcb) DatabaseCollectionGet(env string, limit, offset int64) (*DatabaseCollectionGetRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -317,7 +317,7 @@ func (tcb *Tcb) DatabaseCollectionGet(env string, limit, offset int64) (*Databas
|
||||
return databaseCollectionGetRes, err
|
||||
}
|
||||
|
||||
//DatabaseAdd 数据库插入记录
|
||||
// DatabaseAdd 数据库插入记录
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseAdd.html
|
||||
func (tcb *Tcb) DatabaseAdd(env, query string) (*DatabaseAddRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -337,7 +337,7 @@ func (tcb *Tcb) DatabaseAdd(env, query string) (*DatabaseAddRes, error) {
|
||||
return databaseAddRes, err
|
||||
}
|
||||
|
||||
//DatabaseDelete 数据库插入记录
|
||||
// DatabaseDelete 数据库插入记录
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseDelete.html
|
||||
func (tcb *Tcb) DatabaseDelete(env, query string) (*DatabaseDeleteRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -357,7 +357,7 @@ func (tcb *Tcb) DatabaseDelete(env, query string) (*DatabaseDeleteRes, error) {
|
||||
return databaseDeleteRes, err
|
||||
}
|
||||
|
||||
//DatabaseUpdate 数据库插入记录
|
||||
// DatabaseUpdate 数据库插入记录
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseUpdate.html
|
||||
func (tcb *Tcb) DatabaseUpdate(env, query string) (*DatabaseUpdateRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -377,7 +377,7 @@ func (tcb *Tcb) DatabaseUpdate(env, query string) (*DatabaseUpdateRes, error) {
|
||||
return databaseUpdateRes, err
|
||||
}
|
||||
|
||||
//DatabaseQuery 数据库查询记录
|
||||
// DatabaseQuery 数据库查询记录
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseQuery.html
|
||||
func (tcb *Tcb) DatabaseQuery(env, query string) (*DatabaseQueryRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -397,7 +397,7 @@ func (tcb *Tcb) DatabaseQuery(env, query string) (*DatabaseQueryRes, error) {
|
||||
return databaseQueryRes, err
|
||||
}
|
||||
|
||||
//DatabaseCount 统计集合记录数或统计查询语句对应的结果记录数
|
||||
// DatabaseCount 统计集合记录数或统计查询语句对应的结果记录数
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseCount.html
|
||||
func (tcb *Tcb) DatabaseCount(env, query string) (*DatabaseCountRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
|
||||
@@ -7,60 +7,60 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
//获取文件上传链接
|
||||
// 获取文件上传链接
|
||||
uploadFilePathURL = "https://api.weixin.qq.com/tcb/uploadfile"
|
||||
//获取文件下载链接
|
||||
// 获取文件下载链接
|
||||
batchDownloadFileURL = "https://api.weixin.qq.com/tcb/batchdownloadfile"
|
||||
//删除文件链接
|
||||
// 删除文件链接
|
||||
batchDeleteFileURL = "https://api.weixin.qq.com/tcb/batchdeletefile"
|
||||
)
|
||||
|
||||
//UploadFileReq 上传文件请求值
|
||||
// UploadFileReq 上传文件请求值
|
||||
type UploadFileReq struct {
|
||||
Env string `json:"env,omitempty"`
|
||||
Path string `json:"path,omitempty"`
|
||||
}
|
||||
|
||||
//UploadFileRes 上传文件返回结果
|
||||
// UploadFileRes 上传文件返回结果
|
||||
type UploadFileRes struct {
|
||||
util.CommonError
|
||||
URL string `json:"url"` //上传url
|
||||
Token string `json:"token"` //token
|
||||
Authorization string `json:"authorization"` //authorization
|
||||
FileID string `json:"file_id"` //文件ID
|
||||
CosFileID string `json:"cos_file_id"` //cos文件ID
|
||||
URL string `json:"url"` // 上传url
|
||||
Token string `json:"token"` // token
|
||||
Authorization string `json:"authorization"` // authorization
|
||||
FileID string `json:"file_id"` // 文件ID
|
||||
CosFileID string `json:"cos_file_id"` // cos文件ID
|
||||
}
|
||||
|
||||
//BatchDownloadFileReq 上传文件请求值
|
||||
// BatchDownloadFileReq 上传文件请求值
|
||||
type BatchDownloadFileReq struct {
|
||||
Env string `json:"env,omitempty"`
|
||||
FileList []*DownloadFile `json:"file_list,omitempty"`
|
||||
}
|
||||
|
||||
//DownloadFile 文件信息
|
||||
// DownloadFile 文件信息
|
||||
type DownloadFile struct {
|
||||
FileID string `json:"fileid"` //文件ID
|
||||
MaxAge int64 `json:"max_age"` //下载链接有效期
|
||||
FileID string `json:"fileid"` // 文件ID
|
||||
MaxAge int64 `json:"max_age"` // 下载链接有效期
|
||||
}
|
||||
|
||||
//BatchDownloadFileRes 上传文件返回结果
|
||||
// BatchDownloadFileRes 上传文件返回结果
|
||||
type BatchDownloadFileRes struct {
|
||||
util.CommonError
|
||||
FileList []struct {
|
||||
FileID string `json:"file_id"` //文件ID
|
||||
DownloadURL string `json:"download_url"` //下载链接
|
||||
Status int64 `json:"status"` //状态码
|
||||
ErrMsg string `json:"errmsg"` //该文件错误信息
|
||||
FileID string `json:"file_id"` // 文件ID
|
||||
DownloadURL string `json:"download_url"` // 下载链接
|
||||
Status int64 `json:"status"` // 状态码
|
||||
ErrMsg string `json:"errmsg"` // 该文件错误信息
|
||||
} `json:"file_list"`
|
||||
}
|
||||
|
||||
//BatchDeleteFileReq 批量删除文件请求参数
|
||||
// BatchDeleteFileReq 批量删除文件请求参数
|
||||
type BatchDeleteFileReq struct {
|
||||
Env string `json:"env,omitempty"`
|
||||
FileIDList []string `json:"fileid_list,omitempty"`
|
||||
}
|
||||
|
||||
//BatchDeleteFileRes 批量删除文件返回结果
|
||||
// BatchDeleteFileRes 批量删除文件返回结果
|
||||
type BatchDeleteFileRes struct {
|
||||
util.CommonError
|
||||
DeleteList []struct {
|
||||
@@ -70,7 +70,7 @@ type BatchDeleteFileRes struct {
|
||||
} `json:"delete_list"`
|
||||
}
|
||||
|
||||
//UploadFile 上传文件
|
||||
// UploadFile 上传文件
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/storage/uploadFile.html
|
||||
func (tcb *Tcb) UploadFile(env, path string) (*UploadFileRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -91,7 +91,7 @@ func (tcb *Tcb) UploadFile(env, path string) (*UploadFileRes, error) {
|
||||
return uploadFileRes, err
|
||||
}
|
||||
|
||||
//BatchDownloadFile 获取文件下载链接
|
||||
// BatchDownloadFile 获取文件下载链接
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/storage/batchDownloadFile.html
|
||||
func (tcb *Tcb) BatchDownloadFile(env string, fileList []*DownloadFile) (*BatchDownloadFileRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
@@ -112,7 +112,7 @@ func (tcb *Tcb) BatchDownloadFile(env string, fileList []*DownloadFile) (*BatchD
|
||||
return batchDownloadFileRes, err
|
||||
}
|
||||
|
||||
//BatchDeleteFile 批量删除文件
|
||||
// BatchDeleteFile 批量删除文件
|
||||
//reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/storage/batchDeleteFile.html
|
||||
func (tcb *Tcb) BatchDeleteFile(env string, fileIDList []string) (*BatchDeleteFileRes, error) {
|
||||
accessToken, err := tcb.GetAccessToken()
|
||||
|
||||
@@ -2,12 +2,12 @@ package tcb
|
||||
|
||||
import "github.com/silenceper/wechat/v2/miniprogram/context"
|
||||
|
||||
//Tcb Tencent Cloud Base
|
||||
// Tcb Tencent Cloud Base
|
||||
type Tcb struct {
|
||||
*context.Context
|
||||
}
|
||||
|
||||
//NewTcb new Tencent Cloud Base
|
||||
// NewTcb new Tencent Cloud Base
|
||||
func NewTcb(context *context.Context) *Tcb {
|
||||
return &Tcb{
|
||||
context,
|
||||
|
||||
@@ -51,7 +51,6 @@ type ULResult struct {
|
||||
|
||||
// Generate 生成url link
|
||||
func (u *URLLink) Generate(params *ULParams) (string, error) {
|
||||
var accessToken string
|
||||
accessToken, err := u.GetAccessToken()
|
||||
if err != nil {
|
||||
return "", err
|
||||
|
||||
Reference in New Issue
Block a user