Module: Alidns::Sign
- Defined in:
- lib/alidns/sign.rb
Class Method Summary collapse
Class Method Details
.sign(method, app_key, app_secret, params) ⇒ Object
生成sign数据
9 10 11 12 13 14 15 16 |
# File 'lib/alidns/sign.rb', line 9 def self.sign(method, app_key, app_secret, params) #排序 req_params = params.split('&').map{|k| k.split '='}.sort_by!{ |k| k.first}.map{|k| "#{k.first}=#{k.last}"}.join('&') req_params = URI.encode(req_params).gsub('+','%20').gsub('=','%3D').gsub('~','%7E').gsub('*','%2A').gsub('/', '%2F').gsub(':','%253A').gsub('&','%26') stringToSign = "#{method}&%2F&#{req_params}" signature = Base64.encode64 OpenSSL::HMAC.digest('sha1', "#{app_secret}&", stringToSign) signature = "Signature=#{signature}" end |