class NeteaseSms::Client

Attributes

access_key_id[R]
access_key_secret[R]

Public Class Methods

new(access_key_id, access_key_secret) click to toggle source
# File lib/netease_sms.rb, line 17
def initialize(access_key_id, access_key_secret)
  @access_key_id = access_key_id
  @access_key_secret = access_key_secret
end

Public Instance Methods

check_status(sendid) click to toggle source
# File lib/netease_sms.rb, line 32
def check_status(sendid)
  host = 'https://api.netease.im/sms/querystatus.action'

  http_post(host, {
    sendid: sendid
  })
end
send_sms(template_id, cellphones, params) click to toggle source
# File lib/netease_sms.rb, line 22
def send_sms(template_id, cellphones, params)
  host = 'https://api.netease.im/sms/sendtemplate.action'

  http_post(host, {
    templateid: template_id, 
    mobiles: cellphones.to_json, 
    params: params.to_json
  })
end

Private Instance Methods

headers() click to toggle source
# File lib/netease_sms.rb, line 56
def headers
  nonce = SecureRandom.uuid
  cur_time = Time.now.to_i
  checksum = Digest::SHA1.hexdigest(self.access_key_secret + nonce + "#{cur_time}")
  
  headers = {
    "nonce"=> nonce,
    "AppKey"=> self.access_key_id,
    "CurTime"=> "#{cur_time}",
    "CheckSum"=> checksum,
    "Content-Type"=> "application/x-www-form-urlencoded;charset=utf-8"
  }
end
http_post(url, data) click to toggle source
# File lib/netease_sms.rb, line 43
def http_post(url, data)
  uri = URI.parse(url)
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
  req = Net::HTTP::Post.new(uri.path, initheader = headers)
  puts headers
  puts data
  req.set_form_data(data)
  resp = https.request(req)
  puts resp.body
end