class AliyunSmsRuby::Client
Constants
- SERVICE_URL
Public Instance Methods
send_request(request)
click to toggle source
# File lib/aliyun_sms_ruby/client.rb, line 12 def send_request request q_without_sig = build_url(request.get_params) q_full= "Signature=#{sign(q_without_sig)}&#{q_without_sig}" response = Faraday.get "#{SERVICE_URL}?#{q_full}" if response != 200 && defined? Rails Rails.logger.error(response.body) end response end
Private Instance Methods
build_url(hash)
click to toggle source
# File lib/aliyun_sms_ruby/client.rb, line 25 def build_url(hash) hash.map{|k,v|"#{encode(k.to_s)}=#{encode(v.to_s)}"}.sort.join('&') end
encode(str)
click to toggle source
# File lib/aliyun_sms_ruby/client.rb, line 29 def encode(str) ERB::Util.url_encode str end
sign(str)
click to toggle source
# File lib/aliyun_sms_ruby/client.rb, line 33 def sign(str) str = "GET&#{encode('/')}&#{encode(str)}" ret = OpenSSL::HMAC.digest('sha1', "#{AliyunSmsRuby.configuration.access_key_secret}&", str) ret = Base64.encode64(ret) encode(ret.chomp) end