jingdong_fu 1.0 → 1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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: []