mini_program 1.4.3 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/mini_program/client.rb +65 -63
- data/lib/mini_program/r_logger.rb +34 -0
- data/lib/mini_program/service_result.rb +12 -20
- data/lib/mini_program/version.rb +1 -1
- data/lib/mini_program.rb +1 -3
- metadata +5 -7
- data/lib/mini_program/failure_result.rb +0 -11
- data/lib/mini_program/logger.rb +0 -18
- data/lib/mini_program/success_result.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 989d3f042ef00e840a26f6e051a1fdbf37c0a95b360debc1b7fe6684da39915b
|
4
|
+
data.tar.gz: 673745489d798f92a3f47be040f8b1c14c9a899755066e3243db0b314dd49be2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d70b971ecfc8428055cb22e2741ec7eb8f9358d55d6a5e23c8e04b219fec194009a04d6b95dc346261346937789d20a914da692634fb5dbb3bfc00d09a45864
|
7
|
+
data.tar.gz: 4bc9e581830bd4554f980fcc29823c6273b060759d59dfe71a5d1bf0388946bd0f8c5a789ecf7fc59a3badde57b82025a70b3c7d6338faaaaaa40720113cd24b
|
data/lib/mini_program/client.rb
CHANGED
@@ -23,7 +23,8 @@ module MiniProgram
|
|
23
23
|
access_token = Rails.cache.read(access_token_store_key)
|
24
24
|
|
25
25
|
if access_token.present? && !fresh
|
26
|
-
return MiniProgram::
|
26
|
+
return MiniProgram::ServiceResult.new(success: true,
|
27
|
+
data: { access_token: access_token },
|
27
28
|
message: "获取 access token 成功",
|
28
29
|
message_kind: :get_access_token_success)
|
29
30
|
end
|
@@ -61,15 +62,21 @@ module MiniProgram
|
|
61
62
|
result = JSON.parse(response)
|
62
63
|
|
63
64
|
if result["errcode"] && result["errcode"].to_s != "0"
|
64
|
-
|
65
|
-
|
65
|
+
logger.tagged "request access token" do
|
66
|
+
logger.error <<~ERROR
|
67
|
+
Get access token failed.
|
68
|
+
api: #{api}
|
69
|
+
error: #{result}
|
70
|
+
ERROR
|
66
71
|
end
|
67
72
|
|
68
|
-
MiniProgram::
|
73
|
+
MiniProgram::ServiceResult.new(success: false,
|
74
|
+
error: result,
|
69
75
|
message: result["errmsg"],
|
70
76
|
message_kind: :request_access_token_failed)
|
71
77
|
else
|
72
|
-
MiniProgram::
|
78
|
+
MiniProgram::ServiceResult.new(success: true,
|
79
|
+
data: { access_token: result["access_token"] },
|
73
80
|
message: "请求 access token 成功",
|
74
81
|
message_kind: :request_access_token_success)
|
75
82
|
end
|
@@ -92,20 +99,25 @@ module MiniProgram
|
|
92
99
|
result = JSON.parse(response)
|
93
100
|
|
94
101
|
if result["errcode"] && result["errcode"].to_s != "0"
|
95
|
-
|
96
|
-
|
97
|
-
|
102
|
+
logger.tagged "login mini program"
|
103
|
+
logger.error <<~ERROR
|
104
|
+
Get session key failed.
|
105
|
+
api: #{api}
|
106
|
+
result: #{result}
|
107
|
+
ERROR
|
98
108
|
|
99
|
-
MiniProgram::
|
109
|
+
MiniProgram::ServiceResult.new(success: false,
|
110
|
+
error: result,
|
100
111
|
message: result["errmsg"],
|
101
112
|
message_kind: :login_failed)
|
102
113
|
|
103
114
|
else
|
104
|
-
MiniProgram::
|
115
|
+
MiniProgram::ServiceResult.new(success: true,
|
116
|
+
data: result,
|
105
117
|
message: "小程序登录成功",
|
106
118
|
message_kind: :login_success)
|
107
|
-
|
108
119
|
end
|
120
|
+
|
109
121
|
end
|
110
122
|
|
111
123
|
# 发送订阅消息
|
@@ -125,22 +137,26 @@ module MiniProgram
|
|
125
137
|
api = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=#{get_token_result["access_token"]}"
|
126
138
|
result = post(api, payload)
|
127
139
|
|
128
|
-
if result["errcode"].to_s
|
129
|
-
|
130
|
-
{
|
140
|
+
if result["errcode"].to_s != "0"
|
141
|
+
logger.tagged "Subscribe Message" do
|
142
|
+
logger.error { "{params: #{payload}, response: #{result}}" }
|
131
143
|
end
|
132
144
|
|
133
|
-
MiniProgram::
|
134
|
-
|
135
|
-
|
145
|
+
MiniProgram::ServiceResult.new(success: false,
|
146
|
+
error: result,
|
147
|
+
message: "发送订阅消息失败",
|
148
|
+
message_kind: :send_subscribed_message_failed)
|
136
149
|
else
|
137
|
-
|
138
|
-
{
|
150
|
+
logger.tagged "Subscribe Message" do
|
151
|
+
logger.info { "{params: #{payload}, response: #{result}}" }
|
139
152
|
end
|
140
153
|
|
141
|
-
MiniProgram::
|
142
|
-
|
143
|
-
|
154
|
+
MiniProgram::ServiceResult.new(success: true,
|
155
|
+
data: {
|
156
|
+
msgid: result.data["msgid"]
|
157
|
+
},
|
158
|
+
message: "发送订阅消息成功",
|
159
|
+
message_kind: :send_subscribed_message_success)
|
144
160
|
end
|
145
161
|
|
146
162
|
end
|
@@ -165,28 +181,18 @@ module MiniProgram
|
|
165
181
|
mp_template_msg: payload
|
166
182
|
})
|
167
183
|
|
168
|
-
if result["errcode"].to_s
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
{ action: :send_uniform_message, message: message, params: payload, response: result }.to_json
|
173
|
-
end
|
174
|
-
|
175
|
-
MiniProgram::SuccessResult.new(data: result,
|
176
|
-
message: message,
|
177
|
-
message_kind: :send_uniform_message_success)
|
178
|
-
|
179
|
-
else
|
180
|
-
message = "发送统一服务消息失败"
|
181
|
-
|
182
|
-
MiniProgram::Logger.error do
|
183
|
-
{ action: :send_uniform_message, message: message, params: payload, response: result }.to_json
|
184
|
-
end
|
185
|
-
|
186
|
-
MiniProgram::FailureResult.new(error: result["errmsg"],
|
187
|
-
message: message,
|
184
|
+
if result["errcode"].to_s != "0"
|
185
|
+
MiniProgram::ServiceResult.new(success: false,
|
186
|
+
error: result,
|
187
|
+
message: "发送统一服务消息失败",
|
188
188
|
message_kind: :send_uniform_message_failed)
|
189
|
+
else
|
190
|
+
MiniProgram::ServiceResult.new(success: true,
|
191
|
+
data: result,
|
192
|
+
message: "发送统一服务消息成功",
|
193
|
+
message_kind: :send_uniform_message_success)
|
189
194
|
end
|
195
|
+
|
190
196
|
end
|
191
197
|
|
192
198
|
# 获取用户手机号
|
@@ -201,24 +207,19 @@ module MiniProgram
|
|
201
207
|
|
202
208
|
phone_num = JSON.parse(data)["phoneNumber"]
|
203
209
|
|
204
|
-
MiniProgram::
|
210
|
+
MiniProgram::ServiceResult.new(
|
211
|
+
success: true,
|
205
212
|
message: "解密手机号成功",
|
206
213
|
message_kind: :decrypt_phone_number_success,
|
207
214
|
data: {
|
208
215
|
openid: openid,
|
209
216
|
phone_num: phone_num
|
210
|
-
}
|
211
|
-
)
|
217
|
+
})
|
212
218
|
rescue OpenSSL::Cipher::CipherError, ArgumentError => e
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
end
|
218
|
-
|
219
|
-
MiniProgram::FailureResult.new(
|
220
|
-
message: message,
|
221
|
-
message_kind: :decrypt_phone_number_failed,
|
219
|
+
MiniProgram::ServiceResult.new(
|
220
|
+
success: false,
|
221
|
+
message: "解密手机号失败",
|
222
|
+
message_kind: :decrypt_phone_data_failed,
|
222
223
|
error: e
|
223
224
|
)
|
224
225
|
end
|
@@ -244,25 +245,18 @@ module MiniProgram
|
|
244
245
|
end
|
245
246
|
|
246
247
|
api = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=#{get_token_result["access_token"]}"
|
247
|
-
|
248
248
|
params = { scene:, page:, width:, check_path:, env_version: }
|
249
249
|
|
250
250
|
result = post(api, params)
|
251
251
|
|
252
252
|
if result["errcode"]
|
253
|
-
|
254
|
-
{ action: 'generate_code', params: params, response: result }.to_json
|
255
|
-
end
|
256
|
-
|
253
|
+
logger.error { "{ action: 'generate qrcode', params: #{params}, response: #{result}}" }
|
257
254
|
MiniProgram::ServiceResult.new(success: false,
|
258
255
|
error: result,
|
259
256
|
message: "获取二维码失败",
|
260
257
|
message_kind: :get_unlimited_qrcode_failed)
|
261
258
|
else
|
262
|
-
|
263
|
-
{ action: 'generate_code', params: params, response: result }.to_json
|
264
|
-
end
|
265
|
-
|
259
|
+
logger.info { "{ action: 'generate qrcode', params: #{params}, response: #{result} }" }
|
266
260
|
MiniProgram::ServiceResult.new(success: true,
|
267
261
|
data: { image: result },
|
268
262
|
message: "获取二维码成功",
|
@@ -310,9 +304,17 @@ module MiniProgram
|
|
310
304
|
aes.update(Base64::decode64(encrypted_data)) + aes.final
|
311
305
|
end
|
312
306
|
|
307
|
+
def logger
|
308
|
+
@logger ||= MiniProgram::RLogger.make("mini_program")
|
309
|
+
end
|
310
|
+
|
313
311
|
def access_token_store_key
|
314
312
|
@access_token_store_key ||= "mp-#{appid}-access-token"
|
315
313
|
end
|
316
314
|
|
315
|
+
def msg_logger
|
316
|
+
@msg_logger ||= MiniProgram::RLogger.make("wx_msg")
|
317
|
+
end
|
318
|
+
|
317
319
|
end
|
318
320
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module MiniProgram
|
2
|
+
class RLogger
|
3
|
+
def initialize
|
4
|
+
raise Exceptions::InitializeDenied.new("please use 'RLogger.make' instead of 'RLogger.new'")
|
5
|
+
end
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def make(given_filename)
|
9
|
+
filename = log_filename(given_filename)
|
10
|
+
|
11
|
+
# 如果已经存在日志对象,则返回已有的日志对象
|
12
|
+
logger = Logger.new(filename)
|
13
|
+
ActiveSupport::TaggedLogging.new(logger)
|
14
|
+
end
|
15
|
+
|
16
|
+
def log_filename(given_filename)
|
17
|
+
return STDOUT if ENV["RAILS_LOG_TO_STDOUT"].present?
|
18
|
+
|
19
|
+
if given_filename.class.in? [String, Symbol]
|
20
|
+
unless given_filename.end_with? ".log"
|
21
|
+
given_filename = "#{given_filename}.log"
|
22
|
+
end
|
23
|
+
|
24
|
+
Rails.root.join("log/#{given_filename}")
|
25
|
+
elsif given_filename.respond_to? :to_path
|
26
|
+
given_filename.to_path
|
27
|
+
else
|
28
|
+
raise Exception::UnsupportedParamType.new("\"log filename parameter must be a String type or a Symbol\"")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
@@ -10,11 +10,11 @@ module MiniProgram
|
|
10
10
|
delegate :[], :[]=, to: :data
|
11
11
|
|
12
12
|
def initialize(success: false,
|
13
|
-
data: {},
|
14
13
|
error: nil,
|
15
14
|
message: nil,
|
16
15
|
message_type: nil,
|
17
|
-
message_kind: nil
|
16
|
+
message_kind: nil,
|
17
|
+
data: {})
|
18
18
|
|
19
19
|
self.success = success
|
20
20
|
self.data = (data.presence || {}).with_indifferent_access
|
@@ -40,32 +40,24 @@ module MiniProgram
|
|
40
40
|
self
|
41
41
|
end
|
42
42
|
|
43
|
-
def
|
44
|
-
if
|
45
|
-
|
43
|
+
def get_message_type
|
44
|
+
if message_type.present?
|
45
|
+
message_type.to_sym
|
46
46
|
elsif success?
|
47
|
-
:
|
47
|
+
:notice
|
48
48
|
else
|
49
49
|
:error
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
-
def message_kind_prefix
|
54
|
-
"mini_program_"
|
55
|
-
end
|
56
|
-
|
57
|
-
def message_kind
|
58
|
-
"#{message_kind_prefix}#{@message_kind}"
|
59
|
-
end
|
60
|
-
|
61
53
|
def as_json(options = nil)
|
62
54
|
{
|
63
|
-
success:
|
64
|
-
data:
|
65
|
-
message
|
66
|
-
message_type:
|
67
|
-
message_kind
|
68
|
-
error
|
55
|
+
success: ,
|
56
|
+
data: ,
|
57
|
+
message:,
|
58
|
+
message_type: get_message_type,
|
59
|
+
message_kind:,
|
60
|
+
error:,
|
69
61
|
}
|
70
62
|
end
|
71
63
|
end
|
data/lib/mini_program/version.rb
CHANGED
data/lib/mini_program.rb
CHANGED
@@ -4,10 +4,8 @@ require "mini_program/client"
|
|
4
4
|
require "mini_program/msg"
|
5
5
|
require "mini_program/user"
|
6
6
|
require "application_controller_ext"
|
7
|
+
require "mini_program/r_logger"
|
7
8
|
require "mini_program/service_result"
|
8
|
-
require "mini_program/success_result"
|
9
|
-
require "mini_program/failure_result"
|
10
|
-
require "mini_program/logger"
|
11
9
|
require "mocha"
|
12
10
|
|
13
11
|
module MiniProgram
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mini_program
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -74,12 +74,10 @@ files:
|
|
74
74
|
- lib/mini_program.rb
|
75
75
|
- lib/mini_program/client.rb
|
76
76
|
- lib/mini_program/engine.rb
|
77
|
-
- lib/mini_program/failure_result.rb
|
78
|
-
- lib/mini_program/logger.rb
|
79
77
|
- lib/mini_program/msg.rb
|
78
|
+
- lib/mini_program/r_logger.rb
|
80
79
|
- lib/mini_program/request_result.rb
|
81
80
|
- lib/mini_program/service_result.rb
|
82
|
-
- lib/mini_program/success_result.rb
|
83
81
|
- lib/mini_program/user.rb
|
84
82
|
- lib/mini_program/version.rb
|
85
83
|
- lib/tasks/mini_program_tasks.rake
|
@@ -98,14 +96,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
96
|
requirements:
|
99
97
|
- - ">="
|
100
98
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
99
|
+
version: 3.0.0
|
102
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
101
|
requirements:
|
104
102
|
- - ">="
|
105
103
|
- !ruby/object:Gem::Version
|
106
104
|
version: '0'
|
107
105
|
requirements: []
|
108
|
-
rubygems_version: 3.3.
|
106
|
+
rubygems_version: 3.3.13
|
109
107
|
signing_key:
|
110
108
|
specification_version: 4
|
111
109
|
summary: a engine for develop mini program
|
@@ -1,11 +0,0 @@
|
|
1
|
-
|
2
|
-
class MiniProgram::FailureResult < MiniProgram::ServiceResult
|
3
|
-
def initialize(data: {}, error: nil, message: nil, message_type: nil, message_kind: nil)
|
4
|
-
super(success: false,
|
5
|
-
data: data,
|
6
|
-
error: error,
|
7
|
-
message: message,
|
8
|
-
message_type: message_type,
|
9
|
-
message_kind: message_kind)
|
10
|
-
end
|
11
|
-
end
|
data/lib/mini_program/logger.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
class MiniProgram::Logger
|
2
|
-
|
3
|
-
def self.tags
|
4
|
-
["MiniProgram"]
|
5
|
-
end
|
6
|
-
|
7
|
-
%w{ info warn error fatal }.each do |level|
|
8
|
-
define_singleton_method level do |content = "", &block|
|
9
|
-
Rails.logger.tagged *tags do
|
10
|
-
if block.present?
|
11
|
-
Rails.logger.send(level, &block)
|
12
|
-
else
|
13
|
-
Rails.logger.send(level, content)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
|
2
|
-
class MiniProgram::SuccessResult < MiniProgram::ServiceResult
|
3
|
-
def initialize(data: {}, error: nil, message: nil, message_type: nil, message_kind: nil)
|
4
|
-
super(success: true,
|
5
|
-
data: data,
|
6
|
-
error: error,
|
7
|
-
message: message,
|
8
|
-
message_type: message_type,
|
9
|
-
message_kind: message_kind)
|
10
|
-
end
|
11
|
-
end
|