jingdong_fu 1.0 → 1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  USAGE:
2
2
 
3
- JingdongFu.get method: '360buy.order.search', param: {order_state:'WAIT_SELLER_STOCK_OUT', page:1, page_size:10}
3
+ JingdongFu.get method: '360buy.order.search', order_state:'WAIT_SELLER_STOCK_OUT', page:1, page_size:10
@@ -6,14 +6,11 @@ defaults: &defaults
6
6
  development:
7
7
  <<: *defaults
8
8
  is_sandbox: false # If true, it will work under the sandbox environment(tbsandbox.com, not taobao.com).
9
- use_curl: false # If true, it will use gem "patron" as the REST client.
10
9
 
11
10
  test:
12
11
  <<: *defaults
13
12
  is_sandbox: ture
14
- use_curl: false
15
13
 
16
14
  production:
17
15
  <<: *defaults
18
- is_sandbox: false
19
- use_curl: true
16
+ is_sandbox: false
@@ -15,7 +15,7 @@ module JingdongFu
15
15
 
16
16
  SANDBOX = 'http://gw.api.sandbox.360buy.com/routerjson?'
17
17
  PRODBOX = 'http://gw.api.360buy.com/routerjson?'
18
- USER_AGENT = 'jingdong_fu/1.0.0.alpha'
18
+ USER_AGENT = 'jingdong_fu/1.1'
19
19
  REQUEST_TIMEOUT = 10
20
20
  API_VERSION = 2.0
21
21
  SIGN_ALGORITHM = 'md5'
@@ -29,36 +29,18 @@ module JingdongFu
29
29
  end
30
30
 
31
31
  def apply_settings
32
- ENV['TAOBAO_API_KEY'] = @settings['app_key'].to_s
33
- ENV['TAOBAO_SECRET_KEY'] = @settings['secret_key']
34
- ENV['TAOBAOKE_PID'] = @settings['taobaoke_pid']
35
- @base_url = @settings['is_sandbox'] ? SANDBOX : PRODBOX
36
-
37
- initialize_session if @settings['use_curl']
38
- end
39
-
40
- def initialize_session
41
- @sess = Patron::Session.new
42
- @sess.base_url = @base_url
43
- @sess.headers['User-Agent'] = USER_AGENT
44
- @sess.timeout = REQUEST_TIMEOUT
32
+ @base_url = @settings['is_sandbox'] ? SANDBOX : PRODBOX
45
33
  end
46
34
 
47
35
  def switch_to(sandbox_or_prodbox)
48
36
  @base_url = sandbox_or_prodbox
49
- @sess.base_url = @base_url if @sess
50
37
  end
51
38
 
52
39
  def get(options = {})
53
- if @sess
54
- @response = @sess.get(generate_query_string(sorted_params(options))).body
55
- else
56
- @response = TaobaoFu::Rest.get(@base_url, generate_query_vars(sorted_params(options)))
57
- end
40
+ @response = TaobaoFu::Rest.get(@base_url, generate_query_vars(sorted_params(options)))
58
41
  parse_result @response
59
42
  end
60
43
 
61
- # http://toland.github.com/patron/
62
44
  def post(options = {})
63
45
  end
64
46
 
@@ -68,17 +50,19 @@ module JingdongFu
68
50
  def delete(options = {})
69
51
  end
70
52
 
71
- def sorted_params(options)
72
- param = options.delete(:param)
73
- options['360buy_param_json'] = param.to_json
53
+ def sorted_params(params)
54
+ method = params.delete(:method)
55
+ param_json = Hash[params.sort_by { |k,v| k.to_s }.map { |k, v| [k.to_s, v.to_s] }].to_json
74
56
  {
75
- :app_key => @settings['app_key'],
76
- :access_token => @settings['access_token'],
77
- :format => OUTPUT_FORMAT,
78
- :v => API_VERSION,
79
- :sign_method => SIGN_ALGORITHM,
80
- :timestamp => Time.now.strftime("%Y-%m-%d %H:%M:%S")
81
- }.merge!(options)
57
+ :app_key => @settings['app_key'],
58
+ :access_token => @settings['access_token'],
59
+ :format => OUTPUT_FORMAT,
60
+ :v => API_VERSION,
61
+ :sign_method => SIGN_ALGORITHM,
62
+ :timestamp => Time.now.strftime("%Y-%m-%d %H:%M:%S"),
63
+ :method => method,
64
+ :'360buy_param_json' => param_json
65
+ }
82
66
  end
83
67
 
84
68
  def generate_query_vars(params)
@@ -86,21 +70,12 @@ module JingdongFu
86
70
  params
87
71
  end
88
72
 
89
- def generate_query_string(params)
90
- sign_token = generate_sign(params_array.flatten.join)
91
- total_param = params_array.map { |key, value| key.to_s+"="+value.to_s } + ["sign=#{sign_token}"]
92
- URI.escape(total_param.join("&"))
93
- end
94
-
95
73
  def generate_sign(param_string)
96
- puts param_string
97
74
  Digest::MD5.hexdigest(@settings['secret_key'] + param_string + @settings['secret_key']).upcase
98
75
  end
99
76
 
100
77
  def parse_result(data)
101
78
  Crack::JSON.parse(data)
102
79
  end
103
-
104
80
  end
105
-
106
- end
81
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jingdong_fu
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
4
+ version: '1.1'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-03 00:00:00.000000000 Z
12
+ date: 2012-07-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: crack
16
- requirement: &70304697158500 !ruby/object:Gem::Requirement
16
+ requirement: &70302411868120 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 0.1.7
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70304697158500
24
+ version_requirements: *70302411868120
25
25
  description: Ruby client for JOS platform.
26
26
  email: info@networking.io
27
27
  executables: []