Class: Alidayu::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/alidayu.rb

Instance Method Summary collapse

Constructor Details

#initialize(app_key, app_secret, base_url = 'gw.api.taobao.com/router/rest', ssl = false) ⇒ Client

Returns a new instance of Client.



7
8
9
10
11
12
13
14
15
16
# File 'lib/alidayu.rb', line 7

def initialize(app_key,
               app_secret,
               base_url='gw.api.taobao.com/router/rest',
               ssl=false)

  @app_key = app_key
  @app_secret = app_secret
  endpoint = endpoint_generator base_url, ssl
  @http_client = RestClient::Resource.new endpoint
end

Instance Method Details

#endpoint_generator(base_url, ssl) ⇒ Object



49
50
51
52
# File 'lib/alidayu.rb', line 49

def endpoint_generator base_url, ssl
  scheme = ssl ? 'https' : 'http'
  "#{scheme}://#{base_url}"
end

#generate_sign_by(params) ⇒ Object



43
44
45
46
47
# File 'lib/alidayu.rb', line 43

def generate_sign_by params
  sorted_params_hash = params.sort_by{|k,v| k}.to_h
  joind_string = sorted_params_hash.map { |k, v| "#{k}#{v}" }.join('')
  Digest::MD5.hexdigest("#{@app_secret}#{joind_string}#{@app_secret}").upcase
end

#send_verify_sms(code, product, phones, template_code) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/alidayu.rb', line 18

def send_verify_sms code, product, phones, template_code
  params = {
    :method => 'alibaba.aliqin.fc.sms.num.send',
    :app_key => @app_key,
    :timestamp => Time.new.strftime("%Y-%m-%d %T"),
    :format => 'json',
    :v => '2.0',
    :sign_method => 'md5',
    :sms_type => 'normal',
    :sms_template_code => template_code,
    :sms_param => "{'code':'#{code}','product':'#{product}'}",
    :sms_free_sign_name => '注册验证',
    :rec_num => phones
  }

  sign = generate_sign_by params
  params.merge!({:sign => sign})

  res = @http_client.post params
  res_body = JSON.parse res.body

  puts res_body
  
end