Class: SimpleWx::Signaturer
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Signaturer
constructor
Usage.
- #jsapi_signature_gen(url) ⇒ Object
- #sign(signture) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(options = {}) ⇒ Signaturer
14 15 16 17 18 |
# File 'lib/simple_wx/signaturer.rb', line 14 def initialize = {} @timestamp = [:timestamp] || Time.now.to_i @nonce = [:nonce] || SecureRandom.urlsafe_base64 @token = SimpleWx.weixin_config["token"] #TODO 没有就raise错误,用method_missing end |
Class Method Details
.jsapi_signature_gen(options) ⇒ Object
44 45 46 47 |
# File 'lib/simple_wx/signaturer.rb', line 44 def self.jsapi_signature_gen url = .delete(:url) self.new().jsapi_signature_gen url end |
Instance Method Details
#jsapi_signature_gen(url) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/simple_wx/signaturer.rb', line 26 def jsapi_signature_gen url params = { 'jsapi_ticket' => AccessToken.jsapi_ticket, 'noncestr' => @nonce, 'timestamp' => @timestamp, 'url' => url.split('#', 2).first } params = Hash[params.sort] encrypt_str = params.to_a.map { |a, b| "#{a}=#{b}" }.join('&') signature = sha1_encrypt(encrypt_str) { 'appId' => SimpleWx.weixin_config["app_id"], 'timestamp' => @timestamp, 'nonceStr' => @nonce, 'signature' => signature } end |
#sign(signture) ⇒ Object
20 21 22 23 24 |
# File 'lib/simple_wx/signaturer.rb', line 20 def sign signture @sort_array = [@timestamp, @nonce, @token].sort encrypt_str = @sort_array.join signture == sha1_encrypt(encrypt_str) end |