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