module TencentSimpleSms
Constants
- VERSION
Public Class Methods
configure(&block)
click to toggle source
# File lib/tencent_simple_sms.rb, line 15 def configure(&block) Config.configure(&block) end
http_post(url, postdata)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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