class TaobaoBy::Tbk

Attributes

appkey[RW]
secret[RW]
url[RW]

Public Class Methods

new() click to toggle source
# File lib/taobao_by.rb, line 16
def initialize
  @appkey = ENV['TBK_APPKEY']
  @secret = ENV['TBK_SECRET']
  @url = 'http://gw.api.taobao.com/router/rest'
end

Public Instance Methods

dg_material_optional(params) click to toggle source
# File lib/taobao_by.rb, line 22
def dg_material_optional(params)
  json = JSON.parse request('taobao.tbk.dg.material.optional', params)
  unless json['error_response'].nil?
    raise Error, json['error_response']['msg'] unless json['error_response']['code'].nil?
  end
  json['tbk_dg_material_optional_response']
end
request(method, params) click to toggle source
# File lib/taobao_by.rb, line 30
def request(method, params)

  # 设置公共参数
  params[:app_key] = @appkey
  params[:method] = method
  params[:format] = 'json'
  params[:v] = '2.0'
  params[:timestamp] = Time.now.strftime('%F %T')
  params[:sign_method] = 'hmac'

  # 签名
  params[:sign] = OpenSSL::HMAC.hexdigest('MD5', @secret, params.sort.join).upcase

  # 发送请求
  url = URI(@url)
  http = Net::HTTP.new(url.host, url.port)
  request = Net::HTTP::Post.new(url)
  request['Content-Type'] = 'application/x-www-form-urlencoded'
  request.body = URI.encode_www_form(params)
  response = http.request(request)

  # 返回JSON数据
  response.read_body

end