Skip to content

Commit dad35b9

Browse files
committed
Merge branch 'v2' of github.com:silenceper/wechat into feature/remove-redis
2 parents b797312 + 1138a7d commit dad35b9

File tree

35 files changed

+893
-217
lines changed

35 files changed

+893
-217
lines changed

.github/ISSUE_TEMPLATE/bug.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
name: 报告Bug
3-
about: 反馈BUG信息
2+
name: 报告 Bug
3+
about: 反馈 BUG 信息
44
title: "[BUG]"
55
labels: bug
66
assignees: ''
@@ -18,4 +18,4 @@ assignees: ''
1818

1919

2020
**使用的版本**
21-
- SDK版本: [比如 v0.0.0]
21+
- SDK 版本:[比如 v0.0.0]

.github/ISSUE_TEMPLATE/feature.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
2-
name: API需求
3-
about: 待实现的API接口,SDK的强大离不开社区的帮助,欢迎为项目贡献PR
2+
name: API 需求
3+
about: 待实现的 API 接口,SDK 的强大离不开社区的帮助,欢迎为项目贡献 PR
44
title: "[Feature]"
55
labels: enhancement
66
assignees: ''
77

88
---
99

1010
<!--
11-
!!!SDK的强大离不开社区的帮助,欢迎为本项目贡献PR!!!
11+
!!!SDK 的强大离不开社区的帮助,欢迎为本项目贡献 PR!!!
1212
-->
13-
**你想要实现的模块或API**
13+
**你想要实现的模块或 API**
1414

1515

.github/ISSUE_TEMPLATE/question.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: 使用咨询
3-
about: 关于SDK使用相关的咨询,在使用前请先阅读官方微信文档
3+
about: 关于 SDK 使用相关的咨询,在使用前请先阅读官方微信文档
44
title: "[咨询]"
55
labels: question
66
assignees: ''
@@ -9,7 +9,7 @@ assignees: ''
99

1010
<!--
1111
重要:
12-
1、在使用本SDK前请先阅读对应的官方微信API文档:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html
13-
2、本SDK部分接口文档: https://silenceper.com/wechat/
12+
1、在使用本 SDK 前请先阅读对应的官方微信 API 文档:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html
13+
2、本 SDK 部分接口文档:https://silenceper.com/wechat/
1414
-->
1515
**请描述您的问题**

.github/workflows/go.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,26 @@ name: Go
22

33
on:
44
push:
5-
branches: [ master,release-*,v2,feature/** ]
5+
branches: [ master,release-*,v2,feature/**,fix/** ]
66
pull_request:
7-
branches: [ master,release-*,v2,feature/** ]
7+
branches: [ master,release-*,v2,feature/**,fix/** ]
88

99
jobs:
1010
golangci:
1111
strategy:
1212
matrix:
13-
go-version: [ '1.16','1.17','1.18','1.19','1.20','1.21' ]
13+
go-version: [ '1.16','1.17','1.18','1.19','1.20','1.21.4' ]
1414
name: golangci-lint
1515
runs-on: ubuntu-latest
1616
steps:
1717
- name: Setup Golang ${{ matrix.go-version }}
18-
uses: actions/setup-go@v4
18+
uses: actions/setup-go@v5
1919
with:
2020
go-version: ${{ matrix.go-version }}
2121
- name: Checkout
22-
uses: actions/checkout@v3
22+
uses: actions/checkout@v4
2323
- name: golangci-lint
24-
uses: golangci/golangci-lint-action@v3
24+
uses: golangci/golangci-lint-action@v4
2525
with:
2626
# Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version.
2727
version: v1.52.2
@@ -37,12 +37,12 @@ jobs:
3737
# strategy set
3838
strategy:
3939
matrix:
40-
go: [ '1.16','1.17','1.18','1.19','1.20','1.21' ]
40+
go: [ '1.16','1.17','1.18','1.19','1.20','1.21','1.22' ]
4141

4242
steps:
43-
- uses: actions/checkout@v3
43+
- uses: actions/checkout@v4
4444
- name: Set up Go 1.x
45-
uses: actions/setup-go@v4
45+
uses: actions/setup-go@v5
4646
with:
4747
go-version: ${{ matrix.go }}
4848
id: go

credential/default_access_token.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@ func (ak *DefaultAccessToken) GetAccessTokenContext(ctx context.Context) (access
9090
return
9191
}
9292

93-
if err = ak.cache.Set(accessTokenCacheKey, resAccessToken.AccessToken, time.Duration(resAccessToken.ExpiresIn-1500)*time.Second); err != nil {
94-
return
95-
}
93+
expires := resAccessToken.ExpiresIn - 1500
94+
err = ak.cache.Set(accessTokenCacheKey, resAccessToken.AccessToken, time.Duration(expires)*time.Second)
95+
9696
accessToken = resAccessToken.AccessToken
9797
return
9898
}
@@ -141,7 +141,7 @@ func (ak *StableAccessToken) GetAccessTokenContext(ctx context.Context) (accessT
141141
}
142142

143143
expires := resAccessToken.ExpiresIn - 300
144-
_ = ak.cache.Set(accessTokenCacheKey, resAccessToken.AccessToken, time.Duration(expires)*time.Second)
144+
err = ak.cache.Set(accessTokenCacheKey, resAccessToken.AccessToken, time.Duration(expires)*time.Second)
145145

146146
accessToken = resAccessToken.AccessToken
147147
return
@@ -219,9 +219,7 @@ func (ak *WorkAccessToken) GetAccessTokenContext(ctx context.Context) (accessTok
219219

220220
expires := resAccessToken.ExpiresIn - 1500
221221
err = ak.cache.Set(accessTokenCacheKey, resAccessToken.AccessToken, time.Duration(expires)*time.Second)
222-
if err != nil {
223-
return
224-
}
222+
225223
accessToken = resAccessToken.AccessToken
226224
return
227225
}

miniprogram/auth/auth.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,8 @@ func (auth *Auth) GetPhoneNumberContext(ctx context2.Context, code string) (*Get
138138
}
139139

140140
var result GetPhoneNumberResponse
141-
if err = util.DecodeWithError(response, &result, "phonenumber.getPhoneNumber"); err != nil {
142-
return nil, err
143-
}
144-
return &result, nil
141+
err = util.DecodeWithError(response, &result, "phonenumber.getPhoneNumber")
142+
return &result, err
145143
}
146144

147145
// GetPhoneNumber 小程序通过code获取用户手机号

miniprogram/business/phone_number.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,5 @@ func (business *Business) GetPhoneNumber(in *GetPhoneNumberRequest) (info PhoneI
4545
PhoneInfo PhoneInfo `json:"phone_info"`
4646
}
4747
err = util.DecodeWithError(response, &resp, "business.GetPhoneNumber")
48-
if nil != err {
49-
return
50-
}
51-
52-
info = resp.PhoneInfo
53-
return
48+
return resp.PhoneInfo, err
5449
}

miniprogram/message/message.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ type PushDataSecVodUpload struct {
398398

399399
// SecVodUploadEvent 短剧媒资上传完成事件
400400
type SecVodUploadEvent struct {
401-
MediaID string `json:"media_id" xml:"media_id"` // 媒资 id
401+
MediaID int64 `json:"media_id" xml:"media_id"` // 媒资 id
402402
SourceContext string `json:"source_context" xml:"source_context"` // 透传上传接口中开发者设置的值。
403403
ErrCode int `json:"errcode" xml:"errcode"` // 错误码,上传失败时该值非
404404
ErrMsg string `json:"errmsg" xml:"errmsg"` // 错误提示
@@ -412,7 +412,7 @@ type PushDataSecVodAudit struct {
412412

413413
// SecVodAuditEvent 短剧媒资审核状态事件
414414
type SecVodAuditEvent struct {
415-
DramaID string `json:"drama_id" xml:"drama_id"` // 剧目 id
415+
DramaID int64 `json:"drama_id" xml:"drama_id"` // 剧目 id
416416
SourceContext string `json:"source_context" xml:"source_context"` // 透传上传接口中开发者设置的值
417417
AuditDetail DramaAuditDetail `json:"audit_detail" xml:"audit_detail"` // 剧目审核结果,单独每一集的审核结果可以根据 drama_id 查询剧集详情得到
418418
}

miniprogram/message/updatable_msg.go

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
package message
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/silenceper/wechat/v2/miniprogram/context"
7+
"github.com/silenceper/wechat/v2/util"
8+
)
9+
10+
const (
11+
// createActivityURL 创建activity_id
12+
createActivityURL = "https://api.weixin.qq.com/cgi-bin/message/wxopen/activityid/create?access_token=%s"
13+
// SendUpdatableMsgURL 修改动态消息
14+
setUpdatableMsgURL = "https://api.weixin.qq.com/cgi-bin/message/wxopen/updatablemsg/send?access_token=%s"
15+
)
16+
17+
// UpdatableTargetState 动态消息状态
18+
type UpdatableTargetState int
19+
20+
const (
21+
// TargetStateNotStarted 未开始
22+
TargetStateNotStarted UpdatableTargetState = 0
23+
// TargetStateStarted 已开始
24+
TargetStateStarted UpdatableTargetState = 1
25+
// TargetStateFinished 已结束
26+
TargetStateFinished UpdatableTargetState = 2
27+
)
28+
29+
// UpdatableMessage 动态消息
30+
type UpdatableMessage struct {
31+
*context.Context
32+
}
33+
34+
// NewUpdatableMessage 实例化
35+
func NewUpdatableMessage(ctx *context.Context) *UpdatableMessage {
36+
return &UpdatableMessage{
37+
Context: ctx,
38+
}
39+
}
40+
41+
// CreateActivityID 创建activity_id
42+
func (updatableMessage *UpdatableMessage) CreateActivityID() (res CreateActivityIDResponse, err error) {
43+
accessToken, err := updatableMessage.GetAccessToken()
44+
if err != nil {
45+
return
46+
}
47+
48+
uri := fmt.Sprintf(createActivityURL, accessToken)
49+
response, err := util.HTTPGet(uri)
50+
if err != nil {
51+
return
52+
}
53+
err = util.DecodeWithError(response, &res, "CreateActivityID")
54+
return
55+
}
56+
57+
// SetUpdatableMsg 修改动态消息
58+
func (updatableMessage *UpdatableMessage) SetUpdatableMsg(activityID string, targetState UpdatableTargetState, template UpdatableMsgTemplate) (err error) {
59+
accessToken, err := updatableMessage.GetAccessToken()
60+
if err != nil {
61+
return
62+
}
63+
64+
uri := fmt.Sprintf(setUpdatableMsgURL, accessToken)
65+
data := SendUpdatableMsgReq{
66+
ActivityID: activityID,
67+
TargetState: targetState,
68+
TemplateInfo: template,
69+
}
70+
71+
response, err := util.PostJSON(uri, data)
72+
if err != nil {
73+
return
74+
}
75+
return util.DecodeWithCommonError(response, "SendUpdatableMsg")
76+
}
77+
78+
// CreateActivityIDResponse 创建activity_id 返回
79+
type CreateActivityIDResponse struct {
80+
util.CommonError
81+
82+
ActivityID string `json:"activity_id"`
83+
ExpirationTime int64 `json:"expiration_time"`
84+
}
85+
86+
// UpdatableMsgTemplate 动态消息模板
87+
type UpdatableMsgTemplate struct {
88+
ParameterList []UpdatableMsgParameter `json:"parameter_list"`
89+
}
90+
91+
// UpdatableMsgParameter 动态消息参数
92+
type UpdatableMsgParameter struct {
93+
Name string `json:"name"`
94+
Value string `json:"value"`
95+
}
96+
97+
// SendUpdatableMsgReq 修改动态消息参数
98+
type SendUpdatableMsgReq struct {
99+
ActivityID string `json:"activity_id"`
100+
TemplateInfo UpdatableMsgTemplate `json:"template_info"`
101+
TargetState UpdatableTargetState `json:"target_state"`
102+
}

miniprogram/miniprogram.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/silenceper/wechat/v2/miniprogram/order"
1616
"github.com/silenceper/wechat/v2/miniprogram/privacy"
1717
"github.com/silenceper/wechat/v2/miniprogram/qrcode"
18+
"github.com/silenceper/wechat/v2/miniprogram/redpacketcover"
1819
"github.com/silenceper/wechat/v2/miniprogram/riskcontrol"
1920
"github.com/silenceper/wechat/v2/miniprogram/security"
2021
"github.com/silenceper/wechat/v2/miniprogram/shortlink"
@@ -155,3 +156,13 @@ func (miniProgram *MiniProgram) GetShipping() *order.Shipping {
155156
func (miniProgram *MiniProgram) GetMiniDrama() *minidrama.MiniDrama {
156157
return minidrama.NewMiniDrama(miniProgram.ctx)
157158
}
159+
160+
// GetRedPacketCover 小程序微信红包封面 API
161+
func (miniProgram *MiniProgram) GetRedPacketCover() *redpacketcover.RedPacketCover {
162+
return redpacketcover.NewRedPacketCover(miniProgram.ctx)
163+
}
164+
165+
// GetUpdatableMessage 小程序动态消息
166+
func (miniProgram *MiniProgram) GetUpdatableMessage() *message.UpdatableMessage {
167+
return message.NewUpdatableMessage(miniProgram.ctx)
168+
}

miniprogram/privacy/privacy.go

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,8 @@ func (s *Privacy) GetPrivacySetting(privacyVer int) (GetPrivacySettingResponse,
103103
}
104104
// 返回错误信息
105105
var result GetPrivacySettingResponse
106-
if err = util.DecodeWithError(response, &result, "getprivacysetting"); err != nil {
107-
return GetPrivacySettingResponse{}, err
108-
}
109-
110-
return result, nil
106+
err = util.DecodeWithError(response, &result, "getprivacysetting")
107+
return result, err
111108
}
112109

113110
// SetPrivacySetting 更新小程序权限配置
@@ -130,11 +127,7 @@ func (s *Privacy) SetPrivacySetting(privacyVer int, ownerSetting OwnerSetting, s
130127
}
131128

132129
// 返回错误信息
133-
if err = util.DecodeWithCommonError(response, "setprivacysetting"); err != nil {
134-
return err
135-
}
136-
137-
return err
130+
return util.DecodeWithCommonError(response, "setprivacysetting")
138131
}
139132

140133
// UploadPrivacyExtFileResponse 上传权限定义模板响应参数
@@ -159,9 +152,6 @@ func (s *Privacy) UploadPrivacyExtFile(fileData []byte) (UploadPrivacyExtFileRes
159152

160153
// 返回错误信息
161154
var result UploadPrivacyExtFileResponse
162-
if err = util.DecodeWithError(response, &result, "setprivacysetting"); err != nil {
163-
return UploadPrivacyExtFileResponse{}, err
164-
}
165-
155+
err = util.DecodeWithError(response, &result, "setprivacysetting")
166156
return result, err
167157
}

0 commit comments

Comments
 (0)