Sha256: 60540eed043e25557ac936a985d577a041e9da414472fc793868b3e093fb6145
Contents?: true
Size: 1.94 KB
Versions: 3
Compression:
Stored size: 1.94 KB
Contents
require "alidayu/version" require 'json' require 'net/https' require 'uri' module Alidayu class << self attr_accessor :appkey, :appsecret # 必须参数 # template_id 模版ID String # params 模版参数 Hash # phones 电话号码 String or String[] # sign_name 签名 def send_sms params params = build_params(params) uri = URI.parse('https://eco.taobao.com/router/rest') http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(uri.path) request.add_field('Content-Type', 'application/json') request.set_form_data(params) response = http.request(request) res_body = JSON.parse response.body res_body end private def build_params params alidayu_params = { :method => 'alibaba.aliqin.fc.sms.num.send', :app_key => appkey, :timestamp => Time.new.strftime("%Y-%m-%d %T"), :format => 'json', :v => '2.0', :sign_method => 'md5', :sms_type => 'normal', } # 电话号码 if params[:phones].is_a? String alidayu_params[:rec_num] = params[:phones] elsif params[:phones].is_a? Array alidayu_params[:rec_num] = params[:phones].join(',') else raise 'phones格式错误' end # 模版ID alidayu_params[:sms_template_code] = params[:template_id] # 模版参数 alidayu_params[:sms_param] = JSON(params[:params]) # 签名 alidayu_params[:sms_free_sign_name] = params[:sign_name] || sign_name sign = sign alidayu_params alidayu_params.merge!({:sign => sign}) alidayu_params end def sign params joind_string = params.sort_by{ |k,v| k}.to_h.map { |k, v| "#{k}#{v}" }.join('') Digest::MD5.hexdigest("#{appsecret}#{joind_string}#{appsecret}").upcase end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
alidayu-ruby-0.1.2 | lib/alidayu.rb |
alidayu-ruby-0.1.1 | lib/alidayu/alidayu-ruby.rb |
alidayu-ruby-0.1.0 | lib/alidayu/alidayu.rb |