mini_program 1.0.1 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0c391213117d9d3978a0b1f466851236d2752a735b16b64f319b062909aa3a0b
4
- data.tar.gz: f094303a749a75013fe60064ee7788168493f4c467e20a2a01e5cc9b644ccce8
3
+ metadata.gz: 25a1020a3d7bb6be380e8f6953a2caefd3a9f736acab37cd37956a5961e53720
4
+ data.tar.gz: d17af0488527945784b0b714d9a5b19f62b4f1df937258217ba4a22b8769d46a
5
5
  SHA512:
6
- metadata.gz: 5d8ea19affc522a1f2080360ec068c553d779bf39a6c2d3e5315259a20ee7762a31ed8f1cb1afd2e9b7f89aa69e31f8568a9d33033e485febe569aa0e3ca6830
7
- data.tar.gz: 16ad088437eb8c3d880f2cab92b0b794fd3ea5cd2b78dd82044690041f219f3ad4a728882b2f69c1cfdefd9d1299c0167b06ef144578b1f2b99e2c3de040e7e6
6
+ metadata.gz: c0a015fc57b16cb7eb000e4f27cf8f7bb4a87215b4cd4f42134c1b897abe4f3021d53399a8fde50f849fd37f2d88800240d8bdef1117439f967fabc622186e8a
7
+ data.tar.gz: 42ee8743795a65ba7bd5afe32205847c557119fdb1b60424fed6f25d11c6640dfdbdee6f1e9918a39c138451acc8ba8d680d0739e749e35067372b534df8fa05
@@ -20,7 +20,7 @@ module MiniProgram
20
20
  end
21
21
 
22
22
  def get_access_token(fresh: false)
23
- access_token = redis.get(access_token_store_key)
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
- JSON.parse(res.body)
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
@@ -1,3 +1,3 @@
1
1
  module MiniProgram
2
- VERSION = '1.0.1'
2
+ VERSION = '1.1.1'
3
3
  end
data/lib/mini_program.rb CHANGED
@@ -6,7 +6,6 @@ require "mini_program/user"
6
6
  require "application_controller_ext"
7
7
  require "r_logger"
8
8
  require "service_result"
9
- require "redis"
10
9
  require "mocha"
11
10
 
12
11
  module MiniProgram
@@ -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.0.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: 2021-11-18 00:00:00.000000000 Z
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: 6.1.4
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: 6.1.4
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.2.15
103
+ rubygems_version: 3.3.3
118
104
  signing_key:
119
105
  specification_version: 4
120
106
  summary: a engine for develop mini program