class HaoboSms::Sms

这个类所有方法, 返回为空{},表示请求异常

Public Class Methods

new() click to toggle source
# File lib/haobo_sms/sms.rb, line 13
def initialize()
  @config = HaoboSms::Config.instance
end

Public Instance Methods

get_remain() click to toggle source

查询剩余条数 { op: “bi”, bl: 33 }

# File lib/haobo_sms/sms.rb, line 47
def get_remain()
  option = {}

  option["un"] = @config.user_name
  option["pw"] = @config.pass_word

  uri = URI(@config.balance_url)
  uri.query = URI.encode_www_form(option)
  res = Net::HTTP.get_response(uri)

  if res.is_a? Net::HTTPSuccess
    body = res.body
    result = HaoboSms::Util.parse_query_str(body)
  else
    result = {}
  end

  return result.with_indifferent_access
end
get_report(option_hash = {}) click to toggle source

获取状态报告 可传参数fs: 请求长度 返回数组[ { id: , su: , rp: } ]

# File lib/haobo_sms/sms.rb, line 70
def get_report(option_hash = {})
  option = option_hash.stringify_keys

  option["un"] = @config.user_name
  option["pw"] = @config.pass_word

  uri = URI(@config.receive_url)
  uri.query = URI.encode_www_form(option)
  res = Net::HTTP.get_response(uri)

  result = { rpts: [] }
  if res.is_a? Net::HTTPSuccess
    res.body.split("\r\n").each do |query_str|
      hash = HaoboSms::Util.parse_query_str(query_str)
      
      if hash["op"] == "dr"
        result[:rpts] << hash
      end
    end
  else
    result = {}
  end

  return result.with_indifferent_access
end
send_sms(phone, message) click to toggle source

发送短信 { rp: 0, id: }

# File lib/haobo_sms/sms.rb, line 19
def send_sms(phone, message)
  # 将短信正文转换为gb18030并转换为16进制
  content = (@config.pre_str + message).encode("gb18030").unpack("H*")

  option = {}
  option["un"] = @config.user_name
  option["pw"] = @config.pass_word
  option["da"] = phone
  option["sm"] = content
  option["dc"] = "15"
  option["rd"] = "1"

  uri = URI(@config.send_url)
  uri.query = URI.encode_www_form(option)
  res = Net::HTTP.get_response(uri)

  if res.is_a? Net::HTTPSuccess
    body = res.body
    result = HaoboSms::Util.parse_query_str(body)
  else
    result = {}
  end

  return result.with_indifferent_access
end