Class: WeixinRailsMiddleware::WexinAdapter
- Inherits:
-
Object
- Object
- WeixinRailsMiddleware::WexinAdapter
show all
- Extended by:
- ConfigurationHelpers
- Defined in:
- lib/weixin_rails_middleware/adapter/weixin_adapter.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
custom_adapter, token_model, token_model_class
Constructor Details
#initialize(weixin_params) ⇒ WexinAdapter
Returns a new instance of WexinAdapter.
9
10
11
12
13
14
15
16
17
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 9
def initialize(weixin_params)
@weixin_secret_key = weixin_params[:weixin_secret_key]
@signature = weixin_params[:signature] || ''
@timestamp = weixin_params[:timestamp] || ''
@nonce = weixin_params[:nonce] || ''
@echostr = weixin_params[:echostr] || ''
end
|
Instance Attribute Details
#echostr ⇒ Object
Returns the value of attribute echostr.
6
7
8
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 6
def echostr
@echostr
end
|
#nonce ⇒ Object
Returns the value of attribute nonce.
6
7
8
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 6
def nonce
@nonce
end
|
#signature ⇒ Object
Returns the value of attribute signature.
6
7
8
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 6
def signature
@signature
end
|
#timestamp ⇒ Object
Returns the value of attribute timestamp.
6
7
8
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 6
def timestamp
@timestamp
end
|
#weixin_secret_key ⇒ Object
Returns the value of attribute weixin_secret_key.
7
8
9
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 7
def weixin_secret_key
@weixin_secret_key
end
|
Class Method Details
.decode64(encoding_aes) ⇒ Object
62
63
64
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 62
def decode64(encoding_aes)
Base64.decode64("#{encoding_aes}=")
end
|
.error_msg ⇒ Object
58
59
60
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 58
def error_msg
"#{__FILE__}:#{__LINE__}: Weixin signature NotMatch"
end
|
.init_with(weixin_params) ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 19
def self.init_with(weixin_params)
if custom_adapter.present?
if custom_adapter.constantize.superclass != self
raise "#{custom_adapter.to_s} must inherite WexinAdapter"
end
return custom_adapter.constantize.new(weixin_params)
end
if weixin_token_string.present?
SinglePublicAccount.new(weixin_params)
else
MultiplePublicAccount.new(weixin_params)
end
end
|
Instance Method Details
#check_weixin_legality ⇒ Object
33
34
35
36
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 33
def check_weixin_legality
return render_authorize_result(401, self.class.error_msg) if !is_signature_valid?
render_authorize_result(200, echostr, true)
end
|
#current_weixin_public_account ⇒ Object
45
46
47
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 45
def current_weixin_public_account
raise NotImplementedError, "Subclasses must implement current_weixin_public_account method"
end
|
#current_weixin_token ⇒ Object
49
50
51
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 49
def current_weixin_token
raise NotImplementedError, "Subclasses must implement current_weixin_token method"
end
|
#is_signature_valid? ⇒ Boolean
38
39
40
41
42
43
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 38
def is_signature_valid?
sort_params = [current_weixin_token, timestamp, nonce].sort.join
current_signature = Digest::SHA1.hexdigest(sort_params)
return true if current_signature == signature
false
end
|
#is_weixin_secret_key_valid? ⇒ Boolean
53
54
55
|
# File 'lib/weixin_rails_middleware/adapter/weixin_adapter.rb', line 53
def is_weixin_secret_key_valid?
raise NotImplementedError, "Subclasses must implement is_weixin_secret_key_valid? method"
end
|