mini_program 1.0.1 → 1.1.1
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 +39 -11
- data/lib/mini_program/version.rb +1 -1
- data/lib/mini_program.rb +0 -1
- data/lib/service_result.rb +12 -0
- metadata +5 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25a1020a3d7bb6be380e8f6953a2caefd3a9f736acab37cd37956a5961e53720
|
4
|
+
data.tar.gz: d17af0488527945784b0b714d9a5b19f62b4f1df937258217ba4a22b8769d46a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0a015fc57b16cb7eb000e4f27cf8f7bb4a87215b4cd4f42134c1b897abe4f3021d53399a8fde50f849fd37f2d88800240d8bdef1117439f967fabc622186e8a
|
7
|
+
data.tar.gz: 42ee8743795a65ba7bd5afe32205847c557119fdb1b60424fed6f25d11c6640dfdbdee6f1e9918a39c138451acc8ba8d680d0739e749e35067372b534df8fa05
|
data/lib/mini_program/client.rb
CHANGED
@@ -20,7 +20,7 @@ module MiniProgram
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def get_access_token(fresh: false)
|
23
|
-
access_token =
|
23
|
+
access_token = Rails.cache.read(access_token_store_key)
|
24
24
|
|
25
25
|
if access_token.present? && !fresh
|
26
26
|
return MiniProgram::ServiceResult.new(success: true, data: {access_token: access_token})
|
@@ -29,7 +29,11 @@ module MiniProgram
|
|
29
29
|
result = request_access_token
|
30
30
|
|
31
31
|
if result.success?
|
32
|
-
redis.setex access_token_store_key, 1.5.hours.to_i, result.data["access_token"]
|
32
|
+
# redis.setex access_token_store_key, 1.5.hours.to_i, result.data["access_token"]
|
33
|
+
Rails.cache.write(access_token_store_key,
|
34
|
+
result.data["access_token"],
|
35
|
+
expires_in: 1.5.hours.to_i,
|
36
|
+
race_condition_ttl: 10)
|
33
37
|
end
|
34
38
|
|
35
39
|
yield result if block_given?
|
@@ -181,6 +185,32 @@ module MiniProgram
|
|
181
185
|
Struct.new(:appid, :app_secret).new(appid, app_secret)
|
182
186
|
end
|
183
187
|
|
188
|
+
#获取小程序二维码
|
189
|
+
def qrcode_unlimited(data)
|
190
|
+
get_token_result = get_access_token
|
191
|
+
if get_access_token.failure?
|
192
|
+
return get_token_result
|
193
|
+
end
|
194
|
+
|
195
|
+
api = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=#{get_token_result["access_token"]}"
|
196
|
+
params = {
|
197
|
+
scene: data[:scene],
|
198
|
+
page: data[:page],
|
199
|
+
width: data[:width].blank? ? 280 : data[:width]
|
200
|
+
}
|
201
|
+
|
202
|
+
payload = params.as_json
|
203
|
+
|
204
|
+
result = post(api, payload)
|
205
|
+
|
206
|
+
if !result["errcode"].nil? && result["errcode"].to_s != "0"
|
207
|
+
msg_logger.error {"{params: #{payload}, response: #{result}}"}
|
208
|
+
return MiniProgram::ServiceResult.new(success: false, error: result)
|
209
|
+
end
|
210
|
+
|
211
|
+
MiniProgram::ServiceResult.new(success: true, data: { image: result })
|
212
|
+
end
|
213
|
+
|
184
214
|
private
|
185
215
|
|
186
216
|
def get(api, payload = {})
|
@@ -191,7 +221,7 @@ module MiniProgram
|
|
191
221
|
end
|
192
222
|
|
193
223
|
Net::HTTP.get(uri)
|
194
|
-
end
|
224
|
+
end
|
195
225
|
|
196
226
|
def post(api, payload = {}, options = {})
|
197
227
|
uri = URI(api)
|
@@ -201,12 +231,14 @@ module MiniProgram
|
|
201
231
|
options = {
|
202
232
|
use_ssl: true
|
203
233
|
}.merge(options)
|
204
|
-
|
234
|
+
|
205
235
|
res = Net::HTTP.start(uri.host, uri.port, **options) do |http|
|
206
236
|
http.request(req, payload.to_json)
|
207
|
-
end
|
208
|
-
|
209
|
-
|
237
|
+
end
|
238
|
+
|
239
|
+
return res.body if res["Content-Type"] == "image/jpeg"
|
240
|
+
|
241
|
+
JSON.parse(res.body)
|
210
242
|
end
|
211
243
|
|
212
244
|
def decrypt_phone_data(encrypted_data, iv, session_key)
|
@@ -221,10 +253,6 @@ module MiniProgram
|
|
221
253
|
@logger ||= MiniProgram::RLogger.make("mini_program")
|
222
254
|
end
|
223
255
|
|
224
|
-
def redis
|
225
|
-
@redis ||= Redis.current
|
226
|
-
end
|
227
|
-
|
228
256
|
def access_token_store_key
|
229
257
|
@access_token_store_key ||= "mp-#{appid}-access-token"
|
230
258
|
end
|
data/lib/mini_program/version.rb
CHANGED
data/lib/mini_program.rb
CHANGED
data/lib/service_result.rb
CHANGED
@@ -2,6 +2,7 @@ module MiniProgram
|
|
2
2
|
class ServiceResult
|
3
3
|
attr_accessor :success,
|
4
4
|
:error,
|
5
|
+
:error_type,
|
5
6
|
:data,
|
6
7
|
:message,
|
7
8
|
:message_type
|
@@ -45,5 +46,16 @@ module MiniProgram
|
|
45
46
|
:error
|
46
47
|
end
|
47
48
|
end
|
49
|
+
|
50
|
+
def as_json(options = nil)
|
51
|
+
{
|
52
|
+
success: success,
|
53
|
+
data: data,
|
54
|
+
message: message,
|
55
|
+
message_type: get_message_type,
|
56
|
+
error: error,
|
57
|
+
error_type: error_type
|
58
|
+
}
|
59
|
+
end
|
48
60
|
end
|
49
61
|
end
|
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
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,28 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 7.0.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: redis
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
26
|
+
version: 7.0.1
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: mocha
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
100
|
- !ruby/object:Gem::Version
|
115
101
|
version: '0'
|
116
102
|
requirements: []
|
117
|
-
rubygems_version: 3.
|
103
|
+
rubygems_version: 3.3.3
|
118
104
|
signing_key:
|
119
105
|
specification_version: 4
|
120
106
|
summary: a engine for develop mini program
|