Module: TencentSimpleSms
- Defined in:
- lib/tencent_simple_sms.rb,
lib/tencent_simple_sms/sms.rb,
lib/tencent_simple_sms/config.rb,
lib/tencent_simple_sms/version.rb
Defined Under Namespace
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
- .configure(&block) ⇒ Object
- .http_post(url, postdata) ⇒ Object
- .params_to_string(params) ⇒ Object
- .sender(mobiles, templ_id) ⇒ Object
- .sig(request) ⇒ Object
Class Method Details
.configure(&block) ⇒ Object
15 16 17 |
# File 'lib/tencent_simple_sms.rb', line 15 def configure(&block) Config.configure(&block) end |
.http_post(url, postdata) ⇒ Object
21 22 23 |
# File 'lib/tencent_simple_sms/sms.rb', line 21 def http_post(url, postdata) Net::HTTP.post_form(URI(url),postdata).body end |
.params_to_string(params) ⇒ Object
26 27 28 |
# File 'lib/tencent_simple_sms/sms.rb', line 26 def params_to_string(params) params.sort.map { |item| item.join('=') }.join('&') end |
.sender(mobiles, templ_id) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/tencent_simple_sms/sms.rb', line 3 def sender(mobiles, templ_id) request = {} mobiles.each_with_index do |m, i| request["PhoneNumberSet.#{i}"] = "+86#{m}" end request['Action'] = 'SendSms' request['Region'] = '' request["Version"] = '2019-07-11' request["TemplateID"] = templ_id request['Sign'] = Config.sign request['SmsSdkAppid'] = Config.app_id request['Timestamp'] = Time.now.to_i request['Nonce'] = SecureRandom.random_number.to_s.slice(-10..-1) request['SecretId'] = Config.secret_id request['Signature'] = sig(request) http_post('https://sms.tencentcloudapi.com', request) end |
.sig(request) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/tencent_simple_sms/sms.rb', line 30 def sig(request) signature = params_to_string(request) signature = "POSTsms.tencentcloudapi.com/?" + signature digest = OpenSSL::Digest.new('sha1') Base64.encode64(OpenSSL::HMAC.digest(digest, Config.secret_key, signature)) end |