third_party_wxa 0.2.8 → 0.2.9

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: c66bfa1f3a1b0b0c5751fd8f20dcf0d0e0c18dea450228b6d72a803b7cb45210
4
- data.tar.gz: 2da07b762878137f36e1e7cd6ced3cf64517b6f728ab671a01579a74f0ee2a7c
3
+ metadata.gz: 5d86a2b49ebb8160b49e2dc745611a5ea9ae9b88e3a89994ae2300ad6ab752a8
4
+ data.tar.gz: 28c917e3dd5c60b91773970dcfe64ef163e6991a0dd7d8277f01e260c4515909
5
5
  SHA512:
6
- metadata.gz: 4cbc09cbb8e022709ce40013b9b251c59393aee5f4624fd64c9e975188314a16011737bd16394bd641856f763720fa3068ba63153a817a2f99131240b34387ae
7
- data.tar.gz: 157b4a42a5534b54b884ce02710de75cff1ba3f24aa1e9d1304638321e543cfcdfcbb17a43d1b17aed91b23741d57d895e9b3e51960dc099d8922fc262dd02cb
6
+ metadata.gz: efbc0f2c2146249d6650c500479e66183938ce1bcc6e62b043823aedeb08ae178ec5db325d5d6abf6200fd39167c1ce95acf6f356396c8c634c1d7560465d0a8
7
+ data.tar.gz: 0b99ea68184fdff32c52515104cad80ab20c44f3cea89ca97114448c1ec431e29b332c6b27d99da45d93c62edd052f65288be736aec14e2c4e5db7e0eaf04717
@@ -1,4 +1,4 @@
1
1
  Dir["#{File.dirname(__FILE__)}/api/*.rb"].each do |path|
2
- p path
2
+ # p path
3
3
  require path
4
4
  end
@@ -1,7 +1,7 @@
1
1
  module ThirdPartyWxa
2
2
 
3
3
  class << self
4
-
4
+
5
5
  attr_accessor :config
6
6
 
7
7
  def configure
@@ -20,10 +20,14 @@ module ThirdPartyWxa
20
20
  config.appsecret
21
21
  end
22
22
 
23
+ def redis_key
24
+ config.redis_key
25
+ end
26
+
23
27
  end
24
28
 
25
29
  class Config
26
- attr_accessor :redis, :appid, :appsecret
30
+ attr_accessor :redis, :appid, :appsecret, :redis_key
27
31
  end
28
32
 
29
33
  end
@@ -13,49 +13,31 @@ module ThirdPartyWxa
13
13
  attr_accessor :component_verify_ticket, :ticket_expire_at
14
14
  attr_accessor :component_access_token, :component_expire_at #2小时
15
15
  attr_accessor :pre_auth_code, :pre_expire_at #10分钟
16
- attr_accessor :token_store
16
+ attr_accessor :token_store, :redis_key
17
17
 
18
18
  def initialize ticket = nil
19
19
  @appid = ThirdPartyWxa.appid
20
20
  @appsecret = ThirdPartyWxa.appsecret
21
21
  @component_verify_ticket = ticket
22
22
  @token_store = token_store_init
23
+ @redis_key = ThirdPartyWxa.redis_key || 'third_party_wxa_component_token'
23
24
  p "third party wxa use #{@token_store.class.to_s}"
24
25
  end
25
26
 
26
- def test_case
27
- a = {z: 1, x: 2, c: 3}
28
- p a.slice!(:z, :x)
29
- p a
30
- nil
31
- end
32
-
33
27
  def set_tickect ticket, expire_in
34
28
  @component_verify_ticket = ticket
35
29
  @ticket_expire_at = ThirdPartyWxa.cal_expire_at expire_in
36
30
  self
37
31
  end
38
32
 
39
- def component_access_token_valid?
40
- return false if @component_access_token.nil? || @component_expire_at.nil?
41
- Time.now.to_i <= @component_expire_at
42
- end
43
-
44
33
  def get_component_access_token
45
34
  m = Mutex.new
46
35
  m.synchronize{
47
- set_component_access_token if !component_access_token_valid?
48
- @component_access_token
36
+ token_store.set_token if !token_store.valid?
37
+ token_store.get_token
49
38
  }
50
39
  end
51
40
 
52
- def set_component_access_token
53
- res = component_access_token_api
54
- @component_access_token = res['component_access_token']
55
- @component_expire_at = ThirdPartyWxa.cal_expire_at res['expires_in']
56
- self
57
- end
58
-
59
41
  def pre_auth_code_valid?
60
42
  return false if @pre_auth_code.nil? || @pre_expire_at.nil?
61
43
  Time.now.to_i <= @pre_expire_at
@@ -77,20 +59,12 @@ module ThirdPartyWxa
77
59
  Token::Store.init_with(self)
78
60
  end
79
61
 
80
- def authorizer_access_token_valid? options={}
81
- token_store.authorizer_access_token_valid options
82
- end
83
-
84
62
  def get_authorizer_access_token options={}
85
- token_store.get_authorizer_access_token options
86
- end
87
-
88
- def exchange_authorizer_access_token options={}
89
- token_store.exchange_authorizer_access_token options
63
+ authorizer_access_token_api options.delete(:code)
90
64
  end
91
65
 
92
66
  def refresh_authorizer_access_token options={}
93
- token_store.refresh_authorizer_access_token options
67
+ authorizer_access_token_fresh options.delete(:appid), options.delete(:refresh_token)
94
68
  end
95
69
 
96
70
  def http_get scope, url, url_params={}
@@ -120,7 +94,7 @@ module ThirdPartyWxa
120
94
  end
121
95
 
122
96
  def auth_token_params options
123
- {access_token: get_authorizer_access_token(options)}
97
+ {access_token: options.delete(:access_token)}
124
98
  end
125
99
 
126
100
  def wx_redis
@@ -3,20 +3,20 @@ module ThirdPartyWxa
3
3
 
4
4
  class LocalStore < Store
5
5
 
6
- def authorizer_access_token_valid *args
7
- raise 'local_store --- please check expire_time yourself'
6
+ def valid?
7
+ return false if plugin.component_access_token.nil? || plugin.component_expire_at.nil?
8
+ Time.now.to_i <= plugin.component_expire_at
8
9
  end
9
10
 
10
- def get_authorizer_access_token options
11
- options.delete(:access_token)
11
+ def set_token
12
+ res = plugin.component_access_token_api
13
+ plugin.component_access_token = res['component_access_token']
14
+ plugin.component_expire_at = ThirdPartyWxa.cal_expire_at res['expires_in']
15
+ plugin
12
16
  end
13
17
 
14
- def exchange_authorizer_access_token options
15
- plugin.authorizer_access_token_api options.delete(:code)
16
- end
17
-
18
- def refresh_authorizer_access_token options
19
- plugin.authorizer_access_token_fresh options.delete(:appid), options.delete(:refresh_token)
18
+ def get_token
19
+ plugin.component_access_token
20
20
  end
21
21
 
22
22
 
@@ -3,45 +3,25 @@ module ThirdPartyWxa
3
3
 
4
4
  class RedisStore < Store
5
5
 
6
-
7
- def authorizer_access_token_valid? options
8
- expire_at = wx_redis.hget options[:redis_key], 'expire_at'
9
- return false if wx_redis.hget(options[:redis_key], 'access_token').blank? || expire_at.blank?
10
- Time.now.to_i <= expire_at.to_i
6
+ def valid?
7
+ return false if wx_redis.hget(plugin.redis_key, 'component_access_token').blank?
8
+ Time.now.to_i <= wx_redis.hget(plugin.redis_key, 'component_expire_at').to_i
11
9
  end
12
10
 
13
- def get_authorizer_access_token options
14
- if !authorizer_access_token_valid?(options) # raise exception?
15
- if wx_redis.hget(options[:redis_key], 'refresh_token').present?
16
- auth_appid = wx_redis.hget(options[:redis_key], 'appid')
17
- refresh_token = wx_redis.hget(options[:redis_key], 'refresh_token')
18
- refresh_authorizer_access_token auth_appid, refresh_token
19
- else
20
- raise 'refresh token is missing, please authorize again'
21
- end
22
- end
23
- wx_redis.hget(options[:redis_key], 'access_token')
11
+ def set_token
12
+ res = plugin.component_access_token_api
13
+ wx_redis.hmset plugin.redis_key,
14
+ 'component_access_token', res['component_access_token'],
15
+ 'component_expire_at', ThirdPartyWxa.cal_expire_at(res['expires_in'])
16
+ plugin
24
17
  end
25
18
 
26
- def exchange_authorizer_access_token options
27
- res = plugin.authorizer_access_token_api options[:code]
28
- authorizer_access_token = res['authorization_info']['authorizer_access_token']
29
- authorizer_appid = res['authorization_info']['authorizer_appid']
30
- authorizer_expire_at = ThirdPartyWxa.cal_expire_at res['authorization_info']['expires_in']
31
- authorizer_refresh_token = res['authorization_info']['authorizer_refresh_token']
32
- wx_redis.hset options[:redis_key], 'access_token', authorizer_access_token, 'appid', authorizer_appid,
33
- 'expire_at', authorizer_expire_at, 'refresh_token', authorizer_refresh_token
34
- authorizer_access_token
19
+ def get_token
20
+ wx_redis.hget(plugin.redis_key, 'component_access_token')
35
21
  end
36
22
 
37
- def refresh_authorizer_access_token auth_appid, refresh_token
38
- res = plugin.authorizer_access_token_fresh auth_appid, refresh_tokne
39
- authorizer_access_token = res['authorizer_access_token']
40
- authorizer_expire_at = ThirdPartyWxa.cal_expire_at res['expires_in']
41
- authorizer_refresh_token = res['authorizer_refresh_token']
42
- wx_redis.hset options[:redis_key], 'access_token', authorizer_access_token,
43
- 'expire_at', authorizer_expire_at, 'refresh_token', authorizer_refresh_token
44
- authorizer_access_token
23
+ def wx_redis
24
+ ThirdPartyWxa.wx_redis
45
25
  end
46
26
 
47
27
 
@@ -16,6 +16,12 @@ module ThirdPartyWxa
16
16
  end
17
17
  end
18
18
 
19
+ def valid?
20
+ end
21
+
22
+ def set_token
23
+ end
24
+
19
25
  def wx_redis
20
26
  ThirdPartyWxa.wx_redis
21
27
  end
@@ -1,3 +1,3 @@
1
1
  module ThirdPartyWxa
2
- VERSION = "0.2.8"
2
+ VERSION = "0.2.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: third_party_wxa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - hzy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-19 00:00:00.000000000 Z
11
+ date: 2019-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client