class AliSms::Sms
Public Class Methods
new()
click to toggle source
# File lib/ali_sms/sms.rb, line 9 def initialize() @config = AliSms::Config.instance end
Public Instance Methods
query_sms(option_hash = {})
click to toggle source
option_hash 需提供参数PhoneNumber, 手机号 SendDate 年月日字符串,如20171116 PageSize 结果数量 CurrentPage 当前页数 以1开始 可选参数BizId,发送流水号
返回值:Hash, 详见help.aliyun.com/document_detail/55452.html?spm=5176.doc59840.6.563.lxmKXd 此方法暂未使用
# File lib/ali_sms/sms.rb, line 62 def query_sms(option_hash = {}) option = option_hash.stringify_keys option["AccessKeyId"] = @config.AccessKeyId option["Timestamp"] = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ") option["Format"] = "JSON" option["SignatureMethod"] = "HMAC-SHA1" option["SignatureVersion"] = "1.0" option["SignatureNonce"] = SecureRandom.hex(16) option["Action"] = "QuerySendDetails" option["Version"] = "2017-05-25" option["RegionId"] = "cn-hangzhou" # 业务参数 #option["PhoneNumber"] = "18733848323" #option["SendDate"] = "20171116" option["PageSize"] = option["PageSize"] || "10" option["CurrentPage"] = option["CurrentPage"] || "1" query_str = AliSms::Util.make_query_str(option) sign = AliSms::Util.make_sign(query_str, "GET", @config.AccessKeySecret + "&") url = "http://dysmsapi.aliyuncs.com/?Signature=" + sign + "&" + query_str response_body = AliSms::Curl.request_url(url) result = JSON.parse(response_body).with_indifferent_access # if result.empty? # result = { Message: "请求错误", RequestId: "request_error", BizId: 0 } # end return result end
send_sms(option_hash = {})
click to toggle source
option_hash 需提供参数PhoneNumbers, 它可以是字符串和数组 TemplateCode 模板code 可选:TemplateParam 传递hash,填充模板的参数值 返回值:{ Message: , RequestId: , BizId: , Code: }
# File lib/ali_sms/sms.rb, line 18 def send_sms(option_hash = {}) option = option_hash.deep_stringify_keys option["AccessKeyId"] = @config.AccessKeyId option["Timestamp"] = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ") option["SignatureMethod"] = "HMAC-SHA1" option["SignatureVersion"] = "1.0" option["SignatureNonce"] = SecureRandom.hex(16) option["SignName"] = "易百事" option["Format"] = "JSON" if option["PhoneNumbers"].present? option["PhoneNumbers"] = Array.wrap(option["PhoneNumbers"]).join(",") end option["Action"] = "SendSms" option["Version"] = "2017-05-25" option["RegionId"] = "cn-hangzhou" option["TemplateParam"] = option["TemplateParam"].to_json query_str = AliSms::Util.make_query_str(option) sign = AliSms::Util.make_sign(query_str, "GET", @config.AccessKeySecret + "&") url = "http://dysmsapi.aliyuncs.com/?Signature=" + sign + "&" + query_str response_body = AliSms::Curl.request_url(url) result = JSON.parse(response_body).with_indifferent_access # if result.empty? # result = { Message: "请求错误", RequestId: "request_error", BizId: 0 } # end return result end