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 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