paypal_permissions 0.0.5.1 → 0.0.5.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -56,7 +56,6 @@ end
56
56
  end
57
57
 
58
58
  def copy_initializer
59
- # Nothing in the initializer yet, but once there is, just uncomment the following.
60
59
  template "paypal_permissions.rb", "config/initializers/paypal_permissions.rb"
61
60
  end
62
61
 
@@ -1,2 +1,3 @@
1
1
  require "paypal_permissions/version"
2
2
  require "paypal_permissions/paypal_permissions_gateway"
3
+ require "paypal_permissions/parsers"
@@ -0,0 +1,5 @@
1
+ require 'paypal_permissions/parsers/common'
2
+ require 'paypal_permissions/parsers/request_permissions'
3
+ require 'paypal_permissions/parsers/get_access_token'
4
+ require 'paypal_permissions/parsers/get_basic_personal_data'
5
+ require 'paypal_permissions/parsers/get_advanced_personal_data'
@@ -0,0 +1,67 @@
1
+ module ActiveMerchant
2
+ module Billing
3
+ module PaypalPermissions
4
+ module Parsers
5
+ class CommonNVParser
6
+ class << self
7
+ def parse nvp_response
8
+ @response = {
9
+ :raw_response => nvp_response,
10
+ :errors => [
11
+ ],
12
+ }
13
+ end
14
+
15
+ def process_envelope_pair n, v
16
+ case n
17
+ when "responseEnvelope.timestamp"
18
+ @response[:timestamp] = v
19
+ when "responseEnvelope.ack"
20
+ @response[:ack] = v
21
+ when "responseEnvelope.correlationId"
22
+ @response[:correlation_id] = v
23
+ when "responseEnvelope.build"
24
+ # do nothing
25
+ end
26
+ end
27
+
28
+ def process_error_idx error_idx
29
+ if @response[:errors].length <= error_idx
30
+ @response[:errors] << { :parameters => [] }
31
+ raise if @response[:errors].length <= error_idx
32
+ end
33
+ end
34
+
35
+ def process_error_pair n, v
36
+ n =~ /^error\((\d+)\)/
37
+ error_idx = $1
38
+ process_error_idx error_idx
39
+
40
+ case n
41
+ when /^error\(\d+\)\.errorId$/
42
+ @response[:errors][error_idx][:error_id] = v
43
+ when /^error\(\d+\)\.domain$/
44
+ @response[:errors][error_idx][:domain] = v
45
+ when /^error\(\d+\)\.subdomain$/
46
+ @response[:errors][error_idx][:subdomain] = v
47
+ when /^error\(\d+\)\.severity$/
48
+ @response[:errors][error_idx][:severity] = v
49
+ when /^error\(\d+\)\.category$/
50
+ @response[:errors][error_idx][:category] = v
51
+ when /^error\(\d+\)\.message$/
52
+ @response[:errors][error_idx][:message] = v
53
+ when /^error\(\d+\)\.parameter\((\d+)\)$/
54
+ parameter_idx = $1.to_i
55
+ if @response[:errors][error_idx][:parameters].length <= parameter_idx
56
+ @response[:errors][error_idx][:parameters] << {}
57
+ raise if @response[:errors][error_idx][:parameters].length <= parameter_idx
58
+ end
59
+ @response[:errors][error_idx][:parameters][parameter_idx] = v
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,42 @@
1
+ module ActiveMerchant #:nodoc:
2
+ module Billing #:nodoc:
3
+ module PaypalPermissions
4
+ module Parsers
5
+ class GetAccessTokenNVParser < CommonNVParser
6
+ class << self
7
+ def parse nvp_response
8
+ super
9
+
10
+ pairs = nvp_response.split "&"
11
+ pairs.each do |pair|
12
+ n,v = pair.split "="
13
+ n = CGI.unescape n
14
+ v = CGI.unescape v
15
+
16
+ case n
17
+
18
+ # envelope
19
+ when /^responseEnvelope/
20
+ process_envelope_pair n, v
21
+
22
+ # successful token response
23
+ when "token"
24
+ @response[:token] = v
25
+ when "tokenSecret"
26
+ @response[:token_secret] = v
27
+
28
+ # error with index
29
+ when /^error\((\d+)\)/
30
+ process_error_pair n, v
31
+
32
+ end
33
+ end
34
+ @response
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
@@ -0,0 +1,26 @@
1
+ require 'paypal_permissions/parsers/personal_data'
2
+
3
+ module ActiveMerchant #:nodoc:
4
+ module Billing #:nodoc:
5
+ module PaypalPermissions
6
+ module Parsers
7
+ class GetAdvancedPersonalDataNVParser < PersonalDataNVParser
8
+ class << self
9
+ def personal_data_mappings
10
+ {
11
+ "http://axschema.org/birthDate" => :birthdate,
12
+ "http://schema.openid.net/contact/street1" => :street1,
13
+ "http://schema.openid.net/contact/street2" => :street2,
14
+ "http://axschema.org/contact/city/home" => :city,
15
+ "http://axschema.org/contact/state/home" => :state,
16
+ "http://axschema.org/contact/postalCode/home" => :postal_code,
17
+ "http://axschema.org/contact/phone/default" => :phone,
18
+ }
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+
@@ -0,0 +1,25 @@
1
+ require 'paypal_permissions/parsers/personal_data'
2
+
3
+ module ActiveMerchant #:nodoc:
4
+ module Billing #:nodoc:
5
+ module PaypalPermissions
6
+ module Parsers
7
+ class GetBasicPersonalDataNVParser < PersonalDataNVParser
8
+ class << self
9
+ def personal_data_mappings
10
+ {
11
+ "http://axschema.org/contact/country/home" => :country,
12
+ "http://axschema.org/contact/email" => :email,
13
+ "http://axschema.org/namePerson/first" => :first_name,
14
+ "http://axschema.org/namePerson/last" => :last_name,
15
+ "http://schema.openid.net/contact/fullname" => :full_name,
16
+ "https://www.paypal.com/webapps/auth/schema/payerID" => :payer_id,
17
+ }
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+
@@ -0,0 +1,46 @@
1
+ module ActiveMerchant #:nodoc:
2
+ module Billing #:nodoc:
3
+ module PaypalPermissions
4
+ module Parsers
5
+ class PersonalDataNVParser < CommonNVParser
6
+ class << self
7
+ def parse nvp_response
8
+ super
9
+
10
+ @response[:personal_data] = {}
11
+
12
+ pairs = nvp_response.split "&"
13
+ pairs.each do |pair|
14
+ n,v = pair.split "="
15
+ n = CGI.unescape n
16
+ v = CGI.unescape v
17
+
18
+ case n
19
+
20
+ # envelope
21
+ when /^responseEnvelope/
22
+ process_envelope_pair n, v
23
+
24
+ # successful personal data response
25
+ when /response\.personalData\((\d+)\)\.personalDataKey/
26
+ key_idx = $1.to_i
27
+ key = personal_data_mappings[v]
28
+
29
+ when /response\.personalData\((\d+)\)\.personalDataValue/
30
+ val_idx = $1.to_i
31
+ raise unless key && val_idx != key_idx
32
+ @response[:personal_data][key] = v
33
+
34
+ # error with index
35
+ when /^error\((\d+)\)/
36
+ process_error_pair n, v
37
+
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,40 @@
1
+ module ActiveMerchant #:nodoc:
2
+ module Billing #:nodoc:
3
+ module PaypalPermissions
4
+ module Parsers
5
+ class RequestPermissionsNVParser < CommonNVParser
6
+ class << self
7
+ def parse nvp_response
8
+ super
9
+
10
+ pairs = nvp_response.split "&"
11
+ pairs.each do |pair|
12
+ n,v = pair.split "="
13
+ n = CGI.unescape n
14
+ v = CGI.unescape v
15
+
16
+ case n
17
+
18
+ # envelope
19
+ when /^responseEnvelope/
20
+ process_envelope_pair n, v
21
+
22
+ # successful token response
23
+ when "token"
24
+ @response[:token] = v
25
+
26
+ # error with index
27
+ when /^error\((\d+)\)/
28
+ process_error_pair n, v
29
+
30
+ end
31
+ end
32
+ @response
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+
@@ -1,6 +1,7 @@
1
1
  require 'active_merchant'
2
2
  require 'active_merchant/billing'
3
3
  require 'active_merchant/billing/gateway'
4
+ require 'paypal_permissions/parsers'
4
5
  require 'paypal_permissions/x_pp_authorization'
5
6
  require 'uri'
6
7
  require 'cgi'
@@ -10,6 +11,7 @@ module ActiveMerchant #:nodoc:
10
11
  module Billing #:nodoc:
11
12
  class PaypalPermissionsGateway < ActiveMerchant::Billing::Gateway # :nodoc
12
13
  include XPPAuthorization
14
+ include PaypalPermissions::Parsers
13
15
 
14
16
  public
15
17
  def self.setup
@@ -40,7 +42,7 @@ module ActiveMerchant #:nodoc:
40
42
  'X-PAYPAL-APPLICATION-ID' => @app_id,
41
43
  'X-PAYPAL-REQUEST-DATA-FORMAT' => 'NV',
42
44
  'X-PAYPAL-RESPONSE-DATA-FORMAT' => 'NV',
43
- }.update(x_pp_authorization_header(get_basic_personal_data_url, access_token, access_token_verifier))
45
+ }.update(x_pp_authorization_header(get_basic_personal_data_url, @login, @password, access_token, access_token_verifier))
44
46
  }
45
47
  get_advanced_personal_data_headers = lambda { |access_token, access_token_verifier|
46
48
  {
@@ -50,7 +52,7 @@ module ActiveMerchant #:nodoc:
50
52
  'X-PAYPAL-APPLICATION-ID' => @app_id,
51
53
  'X-PAYPAL-REQUEST-DATA-FORMAT' => 'NV',
52
54
  'X-PAYPAL-RESPONSE-DATA-FORMAT' => 'NV',
53
- }.update(x_pp_authorization_header(get_advanced_personal_data_url, access_token, access_token_verifier))
55
+ }.update(x_pp_authorization_header(get_advanced_personal_data_url, @login, @password, access_token, access_token_verifier))
54
56
  }
55
57
  @options = {
56
58
  :request_permissions_headers => request_permissions_headers,
@@ -69,7 +71,7 @@ module ActiveMerchant #:nodoc:
69
71
  # puts "request: #{request_permissions_url}?#{query_string}\n"
70
72
  # puts "nvp_response: #{nvp_response}\n"
71
73
  end
72
- response = parse_request_permissions_nvp(nvp_response)
74
+ response = RequestPermissionsNVParser.parse nvp_response
73
75
  end
74
76
 
75
77
  public
@@ -85,7 +87,7 @@ module ActiveMerchant #:nodoc:
85
87
  # puts "request: #{get_access_token_url}?#{query_string}\n"
86
88
  # puts "nvp_response: #{nvp_response}\n"
87
89
  end
88
- response = parse_get_access_token_nvp(nvp_response)
90
+ response = GetAccessTokenNVParser.parse nvp_response
89
91
  end
90
92
 
91
93
  public
@@ -94,51 +96,28 @@ module ActiveMerchant #:nodoc:
94
96
  template % token
95
97
  end
96
98
 
97
- def basic_personal_data_mappings
98
- {
99
- "http://axschema.org/contact/country/home" => :country,
100
- "http://axschema.org/contact/email" => :email,
101
- "http://axschema.org/namePerson/first" => :first_name,
102
- "http://axschema.org/namePerson/last" => :last_name,
103
- "http://schema.openid.net/contact/fullname" => :full_name,
104
- "https://www.paypal.com/webapps/auth/schema/payerID" => :payer_id,
105
- }
106
- end
107
-
108
- def advanced_personal_data_mappings
109
- {
110
- "http://axschema.org/birthDate" => :birthdate,
111
- "http://schema.openid.net/contact/street1" => :street1,
112
- "http://schema.openid.net/contact/street2" => :street2,
113
- "http://axschema.org/contact/city/home" => :city,
114
- "http://axschema.org/contact/state/home" => :state,
115
- "http://axschema.org/contact/postalCode/home" => :postal_code,
116
- "http://axschema.org/contact/phone/default" => :phone,
117
- }
118
- end
119
-
120
99
  public
121
100
  def get_basic_personal_data(access_token, access_token_verifier)
122
- body = personal_data_post_body(basic_personal_data_mappings)
101
+ body = personal_data_post_body(GetBasicPersonalDataNVParser.personal_data_mappings)
123
102
  opts = @options[:get_basic_personal_data_headers].call(access_token, access_token_verifier)
124
103
  nvp_response = ssl_post(get_basic_personal_data_url, body, opts)
125
104
  if nvp_response =~ /error\(\d+\)/
126
105
  # puts "request: #{get_basic_personal_data_url} post_body:#{body}\n"
127
106
  # puts "nvp_response: #{nvp_response}\n"
128
107
  end
129
- response = parse_personal_data_nvp(nvp_response, basic_personal_data_mappings)
108
+ response = GetBasicPersonalDataNVParser.parse nvp_response
130
109
  end
131
110
 
132
111
  public
133
112
  def get_advanced_personal_data(access_token, access_token_verifier)
134
- body = personal_data_post_body(advanced_personal_data_mappings)
113
+ body = personal_data_post_body(GetAdvancedPersonalDataNVParser.personal_data_mappings)
135
114
  opts = @options[:get_advanced_personal_data_headers].call(access_token, access_token_verifier)
136
115
  nvp_response = ssl_post(get_advanced_personal_data_url, body, opts)
137
116
  if nvp_response =~ /error\(\d+\)/
138
117
  # puts "request: #{get_advanced_personal_data_url} post_body:#{body}\n"
139
118
  # puts "nvp_response: #{nvp_response}\n"
140
119
  end
141
- response = parse_personal_data_nvp(nvp_response, advanced_personal_data_mappings)
120
+ response = GetAdvancedPersonalDataNVParser.parse nvp_response
142
121
  end
143
122
 
144
123
  public
@@ -213,252 +192,6 @@ module ActiveMerchant #:nodoc:
213
192
  body += "requestEnvelope.errorLanguage=en_US"
214
193
  end
215
194
 
216
- private
217
- def parse_request_permissions_nvp(nvp)
218
- response = {
219
- :errors => [
220
- ],
221
- }
222
- pairs = nvp.split "&"
223
- pairs.each do |pair|
224
- n,v = pair.split "="
225
- n = CGI.unescape n
226
- v = CGI.unescape v
227
- case n
228
- when "responseEnvelope.timestamp"
229
- response[:timestamp] = v
230
- when "responseEnvelope.ack"
231
- response[:ack] = v
232
- =begin
233
- # Client should implement these with logging...
234
- case v
235
- when "Success"
236
- when "Failure"
237
- when "Warning"
238
- when "SuccessWithWarning"
239
- when "FailureWithWarning"
240
- end
241
- =end
242
- when "responseEnvelope.correlationId"
243
- response[:correlation_id] = v
244
- when "responseEnvelope.build"
245
- # do nothing
246
- when "token"
247
- response[:token] = v
248
- when /^error\((\d+)\)/
249
- error_idx = $1.to_i
250
- if response[:errors].length <= error_idx
251
- response[:errors] << { :parameters => [] }
252
- raise if response[:errors].length <= error_idx
253
- end
254
- case n
255
- when /^error\(\d+\)\.errorId$/
256
- response[:errors][error_idx][:error_id] = v
257
- =begin
258
- # Client should implement these with logging. PayPal doesn't distinguish
259
- # between errors which can be corrected by the user and errors which need
260
- # to be corrected by a developer or merchant, say, in configuration.
261
- # case v
262
- # when "520002"
263
- # when
264
- =end
265
- when /^error\(\d+\)\.domain$/
266
- response[:errors][error_idx][:domain] = v
267
- when /^error\(\d+\)\.subdomain$/
268
- response[:errors][error_idx][:subdomain] = v
269
- when /^error\(\d+\)\.severity$/
270
- response[:errors][error_idx][:severity] = v
271
- when /^error\(\d+\)\.category$/
272
- response[:errors][error_idx][:category] = v
273
- when /^error\(\d+\)\.message$/
274
- response[:errors][error_idx][:message] = v
275
- when /^error\(\d+\)\.parameter\((\d+)\)$/
276
- parameter_idx = $1.to_i
277
- if response[:errors][error_idx][:parameters].length <= parameter_idx
278
- response[:errors][error_idx][:parameters] << {}
279
- raise if response[:errors][error_idx][:parameters].length <= parameter_idx
280
- end
281
- response[:errors][error_idx][:parameters][parameter_idx] = v
282
- end
283
- end
284
- end
285
- response
286
- end
287
-
288
- private
289
- def parse_get_access_token_nvp(nvp)
290
- response = {
291
- :errors => [
292
- ],
293
- }
294
- pairs = nvp.split "&"
295
- pairs.each do |pair|
296
- n,v = pair.split "="
297
- n = CGI.unescape n
298
- v = CGI.unescape v
299
- case n
300
- when "responseEnvelope.timestamp"
301
- response[:timestamp] = v
302
- when "responseEnvelope.ack"
303
- response[:ack] = v
304
- =begin
305
- # Client should implement these with logging...
306
- case v
307
- when "Success"
308
- when "Failure"
309
- when "Warning"
310
- when "SuccessWithWarning"
311
- when "FailureWithWarning"
312
- end
313
- =end
314
- when "responseEnvelope.correlationId"
315
- response[:correlation_id] = v
316
- when "responseEnvelope.build"
317
- # do nothing
318
- when "token"
319
- response[:token] = v
320
- when "tokenSecret"
321
- response[:tokenSecret] = v
322
- when /^error\((\d+)\)/
323
- error_idx = $1.to_i
324
- if response[:errors].length <= error_idx
325
- response[:errors] << { :parameters => [] }
326
- raise if response[:errors].length <= error_idx
327
- end
328
- case n
329
- when /^error\(\d+\)\.errorId$/
330
- response[:errors][error_idx][:error_id] = v
331
- =begin
332
- # Client should implement these with logging. PayPal doesn't distinguish
333
- # between errors which can be corrected by the user and errors which need
334
- # to be corrected by a developer or merchant, say, in configuration.
335
- # case v
336
- # when "520002"
337
- # when
338
- =end
339
- when /^error\(\d+\)\.domain$/
340
- response[:errors][error_idx][:domain] = v
341
- when /^error\(\d+\)\.subdomain$/
342
- response[:errors][error_idx][:subdomain] = v
343
- when /^error\(\d+\)\.severity$/
344
- response[:errors][error_idx][:severity] = v
345
- when /^error\(\d+\)\.category$/
346
- response[:errors][error_idx][:category] = v
347
- when /^error\(\d+\)\.message$/
348
- response[:errors][error_idx][:message] = v
349
- when /^error\(\d+\)\.parameter\((\d+)\)$/
350
- parameter_idx = $1.to_i
351
- if response[:errors][error_idx][:parameters].length <= parameter_idx
352
- response[:errors][error_idx][:parameters] << {}
353
- raise if response[:errors][error_idx][:parameters].length <= parameter_idx
354
- end
355
- response[:errors][error_idx][:parameters][parameter_idx] = v
356
- end
357
- end
358
- end
359
- response
360
- end
361
-
362
- private
363
- def parse_personal_data_nvp(nvp, personal_data_mappings)
364
- response = {
365
- :raw_response => nvp,
366
- :errors => [
367
- ],
368
- :personal_data => {
369
- }
370
- }
371
- begin
372
- key = nil
373
- key_idx = nil
374
- pairs = nvp.split "&"
375
- pairs.each do |pair|
376
- n,v = pair.split "="
377
- v = "" if v.nil?
378
- n = CGI.unescape n
379
- v = CGI.unescape v
380
- case n
381
- when "responseEnvelope.timestamp"
382
- response[:timestamp] = v
383
- when "responseEnvelope.ack"
384
- response[:ack] = v
385
- when "responseEnvelope.correlationId"
386
- response[:correlation_id] = v
387
- when "responseEnvelope.build"
388
- # do nothing
389
-
390
- when /response\.personalData\((\d+)\)\.personalDataKey/
391
- key_idx = $1.to_i
392
- key = personal_data_mappings[v]
393
- =begin
394
- case v
395
- when "http://axschema.org/contact/country/home"
396
- key = :country
397
- when "http://axschema.org/contact/email"
398
- key = :email
399
- when "http://axschema.org/namePerson/first"
400
- key = :first_name
401
- when "http://axschema.org/namePerson/last"
402
- key = :last_name
403
- when "http://schema.openid.net/contact/fullname"
404
- key = :full_name
405
- when "https://www.paypal.com/webapps/auth/schema/payerID"
406
- key = :payer_id
407
- end
408
- =end
409
-
410
- when /response\.personalData\((\d+)\)\.personalDataValue/
411
- val_idx = $1.to_i
412
- if !key
413
- # puts "key:#{key} is nil for v:#{v}"
414
- elsif val_idx != key_idx
415
- # puts "key_idx:#{key_idx} is out of sync with val_idx:#{val_idx} for key:#{key}"
416
- else
417
- response[:personal_data][key] = v
418
- end
419
-
420
- when /^error\((\d+)\)/
421
- error_idx = $1.to_i
422
- if response[:errors].length <= error_idx
423
- response[:errors] << { :parameters => [] }
424
- raise if response[:errors].length <= error_idx
425
- end
426
- case n
427
- when /^error\(\d+\)\.errorId$/
428
- response[:errors][error_idx][:error_id] = v
429
- =begin
430
- # Client should implement these with logging. PayPal doesn't distinguish
431
- # between errors which can be corrected by the user and errors which need
432
- # to be corrected by a developer or merchant, say, in configuration.
433
- # case v
434
- # when "520002"
435
- # when
436
- =end
437
- when /^error\(\d+\)\.domain$/
438
- response[:errors][error_idx][:domain] = v
439
- when /^error\(\d+\)\.subdomain$/
440
- response[:errors][error_idx][:subdomain] = v
441
- when /^error\(\d+\)\.severity$/
442
- response[:errors][error_idx][:severity] = v
443
- when /^error\(\d+\)\.category$/
444
- response[:errors][error_idx][:category] = v
445
- when /^error\(\d+\)\.message$/
446
- response[:errors][error_idx][:message] = v
447
- when /^error\(\d+\)\.parameter\((\d+)\)$/
448
- parameter_idx = $1.to_i
449
- if response[:errors][error_idx][:parameters].length <= parameter_idx
450
- response[:errors][error_idx][:parameters] << {}
451
- raise if response[:errors][error_idx][:parameters].length <= parameter_idx
452
- end
453
- response[:errors][error_idx][:parameters][parameter_idx] = v
454
- end
455
- end
456
- end
457
- rescue
458
- response[:errors][:unknown_error] << nvp.inspect
459
- end
460
- response
461
- end
462
195
 
463
196
  =begin
464
197
  private
@@ -1,3 +1,3 @@
1
1
  module PaypalPermissions
2
- VERSION = "0.0.5.1"
2
+ VERSION = "0.0.5.2"
3
3
  end
@@ -5,23 +5,23 @@ module ActiveMerchant #:nodoc:
5
5
  module Billing #:nodoc:
6
6
  module XPPAuthorization
7
7
  public
8
- def x_pp_authorization_header url, access_token, access_token_verifier
8
+ def x_pp_authorization_header url, api_user_id, api_password, access_token, access_token_verifier
9
9
  timestamp = Time.now.to_i.to_s
10
- signature = x_pp_authorization_signature url, timestamp, access_token, access_token_verifier
10
+ signature = x_pp_authorization_signature url, api_user_id, api_password, timestamp, access_token, access_token_verifier
11
11
  { 'X-PP-AUTHORIZATION' => "token=#{access_token},signature=#{signature},timestamp=#{timestamp}" }
12
12
  end
13
13
 
14
14
  public
15
- def x_pp_authorization_signature url, timestamp, access_token, access_token_verifier
15
+ def x_pp_authorization_signature url, api_user_id, api_password, timestamp, access_token, access_token_verifier
16
16
  # no query params, but if there were, this is where they'd go
17
17
  query_params = {}
18
18
  key = [
19
- URI.encode(@password),
19
+ URI.encode(api_password),
20
20
  URI.encode(access_token_verifier),
21
21
  ].join("&")
22
22
 
23
23
  params = query_params.dup.merge({
24
- "oauth_consumer_key" => @login,
24
+ "oauth_consumer_key" => api_user_id,
25
25
  "oauth_version" => "1.0",
26
26
  "oauth_signature_method" => "HMAC-SHA1",
27
27
  "oauth_token" => access_token,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paypal_permissions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5.1
4
+ version: 0.0.5.2
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-04-17 00:00:00.000000000Z
12
+ date: 2012-04-18 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &2156611040 !ruby/object:Gem::Requirement
16
+ requirement: &2156381840 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2156611040
24
+ version_requirements: *2156381840
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: vcr
27
- requirement: &2156559340 !ruby/object:Gem::Requirement
27
+ requirement: &2156319520 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.11'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2156559340
35
+ version_requirements: *2156319520
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: railties
38
- requirement: &2156534720 !ruby/object:Gem::Requirement
38
+ requirement: &2156308800 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '3.0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2156534720
46
+ version_requirements: *2156308800
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &2156532620 !ruby/object:Gem::Requirement
49
+ requirement: &2156304120 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '3.0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2156532620
57
+ version_requirements: *2156304120
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: activemerchant
60
- requirement: &2156524200 !ruby/object:Gem::Requirement
60
+ requirement: &2156301480 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *2156524200
68
+ version_requirements: *2156301480
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
- requirement: &2156520400 !ruby/object:Gem::Requirement
71
+ requirement: &2156299260 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '2.6'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *2156520400
79
+ version_requirements: *2156299260
80
80
  description: ! '"A gem to support PayPal Permissions API for Rails applications using
81
81
  ActiveMerchant."'
82
82
  email:
@@ -160,6 +160,13 @@ files:
160
160
  - lib/generators/templates/README.rdoc
161
161
  - lib/generators/templates/paypal_permissions.rb
162
162
  - lib/paypal_permissions.rb
163
+ - lib/paypal_permissions/parsers.rb
164
+ - lib/paypal_permissions/parsers/common.rb
165
+ - lib/paypal_permissions/parsers/get_access_token.rb
166
+ - lib/paypal_permissions/parsers/get_advanced_personal_data.rb
167
+ - lib/paypal_permissions/parsers/get_basic_personal_data.rb
168
+ - lib/paypal_permissions/parsers/personal_data.rb
169
+ - lib/paypal_permissions/parsers/request_permissions.rb
163
170
  - lib/paypal_permissions/paypal_permissions_gateway.rb
164
171
  - lib/paypal_permissions/version.rb
165
172
  - lib/paypal_permissions/x_pp_authorization.rb
@@ -181,7 +188,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
181
188
  version: '0'
182
189
  segments:
183
190
  - 0
184
- hash: -736704987918879819
191
+ hash: 4118521118431286841
185
192
  required_rubygems_version: !ruby/object:Gem::Requirement
186
193
  none: false
187
194
  requirements:
@@ -190,7 +197,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
197
  version: '0'
191
198
  segments:
192
199
  - 0
193
- hash: -736704987918879819
200
+ hash: 4118521118431286841
194
201
  requirements: []
195
202
  rubyforge_project: paypal_permissions
196
203
  rubygems_version: 1.8.10