From 6f7ba42fba7847b7a7cf2283d7601227f6631fd3 Mon Sep 17 00:00:00 2001 From: xxj <346944475@qq.com> Date: Thu, 22 Jan 2026 22:07:10 +0800 Subject: [PATCH] 1 --- weixin/base.go | 14 +++++++------- weixin/def.go | 1 + weixin/init.go | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/weixin/base.go b/weixin/base.go index aecadf8..064a22c 100644 --- a/weixin/base.go +++ b/weixin/base.go @@ -126,7 +126,7 @@ func (_wx *wxTools) GetAPITicket() (ticket string, err error) { } // GetJsTicket 获取微信js ticket -func (_wx *wxTools) GetJsTicket() (ticket string, err error) { +func (_wx *wxTools) GetJsTicket() (ticket APITicket, err error) { accessToken, e := _wx.GetAccessToken() if e != nil { mylog.Error(e) @@ -148,9 +148,8 @@ func (_wx *wxTools) GetJsTicket() (ticket string, err error) { err = e2 return } - var result APITicket - json.Unmarshal(body, &result) - ticket = result.Ticket + + json.Unmarshal(body, &ticket) return } @@ -287,7 +286,7 @@ func (_wx *wxTools) SetGuideConfig(guideConfig GuideConfig) error { // GetJsSign js-sdk 授权 func (_wx *wxTools) GetJsSign(url string) (*WxJsSign, error) { - jsTicket, err := _wx.GetJsTicket() + ticket, err := _wx.GetJsTicket() if err != nil { return nil, err } @@ -298,10 +297,11 @@ func (_wx *wxTools) GetJsSign(url string) (*WxJsSign, error) { Noncestr: gutil.RandString(16), Timestamp: strconv.FormatInt(time.Now().UTC().Unix(), 10), Url: url, - JsapiTicket: jsTicket, + JsapiTicket: ticket.Ticket, + ExpiresIn: ticket.ExpiresIn, } h := sha1.New() - h.Write([]byte(fmt.Sprintf("jsapi_ticket=%s&noncestr=%s×tamp=%s&url=%s", jsTicket, jsSign.Noncestr, jsSign.Timestamp, url))) + h.Write([]byte(fmt.Sprintf("jsapi_ticket=%s&noncestr=%s×tamp=%s&url=%s", ticket.Ticket, jsSign.Noncestr, jsSign.Timestamp, url))) jsSign.Signature = fmt.Sprintf("%x", h.Sum(nil)) return jsSign, nil } diff --git a/weixin/def.go b/weixin/def.go index 23e464f..be1b1eb 100644 --- a/weixin/def.go +++ b/weixin/def.go @@ -178,6 +178,7 @@ type WxJsSign struct { Url string `json:"url"` Signature string `json:"signature"` JsapiTicket string `json:"jsapi_ticket"` + ExpiresIn int `json:"expires_in"` } type WxGetUser struct { diff --git a/weixin/init.go b/weixin/init.go index e245112..69545a7 100644 --- a/weixin/init.go +++ b/weixin/init.go @@ -26,7 +26,7 @@ type WxTools interface { SetCache(cache mycache.CacheIFS) // 设置缓存 GetAccessToken() (accessToken string, err error) // 获取登录凭证 GetAPITicket() (ticket string, err error) // 获取微信卡券ticket - GetJsTicket() (ticket string, err error) // 获取微信js ticket + GetJsTicket() (ticket APITicket, err error) // 获取微信js ticket SendTemplateMsg(msg TempMsg) bool // 发送订阅消息 SmallAppOauth(jscode string) string // 小程序授权 SmallAppUnifiedorder(openID string, price int64, priceBody, orderID, clientIP string) message.MessageBody // 小程序统一下单接口