paypal-sdk-rest 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1369829fd94d5e5c88efc0b2eb125d831530db5c
4
- data.tar.gz: 4edb7a761901ad85b11d9f4bb1c088dbefec5a08
3
+ metadata.gz: 56a51c751103c35d5b89fae2c5f706cbc6d52538
4
+ data.tar.gz: 3d0891c29c2cf27a44908b16ae784620c8fc957d
5
5
  SHA512:
6
- metadata.gz: 3a71e40ce13cca8caed3e4baa7b69f74b3b7c3a86bb642a5bed156674ad8046d8959a5f16c83366f4692beecaccc5a143739df6f5b19c562b41c40719e88d5df
7
- data.tar.gz: b59fcd91ee22538d89df29297b990286dc89df150fc111864ef55019c2781bcfa7306266848c741dfd52f582d078d6c1faa4960ce9126aae03be7040c1e64fd3
6
+ metadata.gz: 4f32d3aa53f21ac022debe5a4723676a7e0af39ceca7b4589bfd2c27733d4f5a5c20f6b59b11939e89bc9cd08ebbeef9cf9e123176558377653f961b4d694065
7
+ data.tar.gz: 48bf8528e105b3f7c578f5809e0020d8b2d8c256d6f7226eacbd48ade7adb1087b1dbcc2db6c8d992abb4ba7df4349adc6a3a7591bfc98d4d33700fb24dfdebe
data/README.md CHANGED
@@ -131,7 +131,7 @@ PayPal::SDK::REST.set_config(
131
131
  :funding_instruments => [{
132
132
  :credit_card => {
133
133
  :type => "visa",
134
- :number => "4417119669820331",
134
+ :number => "4567516310777851",
135
135
  :expire_month => "11",
136
136
  :expire_year => "2018",
137
137
  :cvv2 => "874",
@@ -191,7 +191,7 @@ end
191
191
  ```
192
192
 
193
193
  ## Create Future Payment
194
- [Future Payments](https://developer.paypal.com/docs/integration/mobile/make-future-payment/) sample is available [here](https://github.com/paypal/rest-api-sdk-ruby/blob/master/spec/payments_examples_spec.rb#L149)
194
+ [Future Payments](https://developer.paypal.com/docs/integration/mobile/make-future-payment/) sample is available [here](https://github.com/paypal/rest-api-sdk-ruby/blob/master/samples/payment/create_future_payment.rb#L149)
195
195
 
196
196
  ## Webhook event validation
197
197
  See [webhook event validation code sample](https://github.com/paypal/PayPal-Ruby-SDK/blob/master/samples/notifications/verify_webhook_event.rb) and [webhook event validation docs](https://developer.paypal.com/docs/integration/direct/rest-webhooks-overview/#event-signature)
@@ -55,8 +55,16 @@ module PayPal::SDK
55
55
  class Tokeninfo < Base
56
56
  include RequestDataType
57
57
  PATH = "v1/identity/openidconnect/tokenservice"
58
+ FP_PATH = "v1/oauth2/token"
58
59
 
59
60
  class << self
61
+
62
+ def basic_auth_header(options)
63
+ credentials = options[:client_id].to_s + ":" + options[:client_secret].to_s
64
+ encoded = Base64.encode64(credentials.force_encoding('UTF-8')).gsub!(/\n/, "")
65
+ "Basic #{encoded}"
66
+ end
67
+
60
68
  def create_from_authorization_code(options, http_header = {})
61
69
  options = { :code => options } if options.is_a? String
62
70
  options = options.merge( :grant_type => "authorization_code" )
@@ -71,6 +79,16 @@ module PayPal::SDK
71
79
  end
72
80
  alias_method :refresh, :create_from_refresh_token
73
81
 
82
+ def create_from_future_payment_auth_code(options, http_header = {})
83
+ options = { :code => options } if options.is_a? String
84
+ options = options.merge( { :grant_type => "authorization_code", :response_type => "token", :redirect_uri => "urn:ietf:wg:oauth:2.0:oob" } )
85
+ http_header = http_header.merge( { "Content-Type" => "application/x-www-form-urlencoded", "Authorization" => basic_auth_header(with_credentials(options)) } )
86
+
87
+ Tokeninfo.new(api.post(FP_PATH, options, http_header))
88
+ end
89
+ alias_method :token_hash, :create_from_future_payment_auth_code
90
+ alias_method :create_fp, :create_from_future_payment_auth_code
91
+
74
92
  def with_credentials(options = {})
75
93
  options = options.dup
76
94
  [ :client_id, :client_secret ].each do |key|
@@ -89,10 +89,12 @@ module PayPal::SDK::Core
89
89
  # * payload - Hash(:http, :method, :uri, :body, :header)
90
90
  def log_http_call(payload)
91
91
  logger.info "Request[#{payload[:method]}]: #{payload[:uri].to_s}"
92
+ logger.debug "Request.body=#{payload[:body]}\trequest.header=#{payload[:header]}"
92
93
  start_time = Time.now
93
94
  response = yield
94
95
  logger.info sprintf("Response[%s]: %s, Duration: %.3fs", response.code,
95
96
  response.message, Time.now - start_time)
97
+ logger.debug "Response.body: #{response.body}"
96
98
  response
97
99
  end
98
100
 
@@ -99,16 +99,6 @@ module PayPal::SDK
99
99
 
100
100
  class FuturePayment < Payment
101
101
 
102
- include PayPal::SDK::OpenIDConnect
103
-
104
- def self.exch_token(auth_code)
105
- if auth_code
106
- tokeninfo = Tokeninfo.create(auth_code)
107
- puts "tokeninfo=", tokeninfo.to_hash
108
- tokeninfo
109
- end
110
- end
111
-
112
102
  def create(correlation_id=nil)
113
103
  path = "v1/payments/payment"
114
104
  if correlation_id != nil
@@ -120,6 +110,18 @@ module PayPal::SDK
120
110
  self.merge!(response)
121
111
  success?
122
112
  end
113
+
114
+ class << self
115
+
116
+ def exch_token(auth_code)
117
+ if auth_code
118
+ PayPal::SDK::OpenIDConnect::DataTypes::Tokeninfo.token_hash(auth_code)
119
+ else
120
+ raise ArgumentError.new("authorization code required") if auth_code.to_s.strip.empty?
121
+ end
122
+ end
123
+
124
+ end
123
125
  end
124
126
 
125
127
  class Payer < Base
@@ -892,9 +894,19 @@ module PayPal::SDK
892
894
 
893
895
  class CreditCardList < Base
894
896
  def self.load_members
895
- array_of :credit_cards, CreditCard
896
- object_of :count, Integer
897
- object_of :next_id, String
897
+ array_of :items, CreditCard
898
+ object_of :total_items, Integer
899
+ object_of :total_pages, Integer
900
+ array_of :links, Links
901
+ end
902
+
903
+ class << self
904
+ def list(options={})
905
+ # for entire list of filter options, see https://developer.paypal.com/webapps/developer/docs/api/#list-credit-card-resources
906
+ path = "v1/vault/credit-cards"
907
+ response = api.get(path, options)
908
+ self.new(response)
909
+ end
898
910
  end
899
911
  end
900
912
 
@@ -1,7 +1,7 @@
1
1
  module PayPal
2
2
  module SDK
3
3
  module REST
4
- VERSION = "1.3.0"
4
+ VERSION = "1.3.1"
5
5
  end
6
6
  end
7
7
  end
data/spec/README.md CHANGED
@@ -31,4 +31,4 @@ The SDK tests are composed of two groups: unit test group and integration (funct
31
31
  - e.g., to run any tests with "Sa" in test description (for the time being, it will be "Sale" tests)
32
32
  - ```
33
33
  $ bundle exec rspec -e "Sa"
34
- ```
34
+ ```
@@ -97,7 +97,7 @@ describe PayPal::SDK::Core::API::REST do
97
97
  "funding_instruments" => [{
98
98
  "credit_card" => {
99
99
  "type" => "visa",
100
- "number" => "4417119669820331",
100
+ "number" => "4567516310777851",
101
101
  "expire_month" => "11", "expire_year" => "2018",
102
102
  "first_name" => "Joe", "last_name" => "Shopper" }}]},
103
103
  "transactions" => [{
data/spec/log/http.log CHANGED
@@ -1,107 +0,0 @@
1
- opening connection to api.sandbox.paypal.com:443...
2
- opened
3
- starting SSL for api.sandbox.paypal.com:443...
4
- SSL established
5
- <- "POST /v1/notifications/webhooks HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015utd2WErH9umRC.Jj7PryFIBwmu-2qGw7Evx6gx6P8t0\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.3.0 (paypal-sdk-core 1.3.0; ruby 2.1.2p95-x86_64-darwin13.0)\r\nPaypal-Request-Id: 18a117b6-aa14-4705-bf80-d9fe6552a133\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 161\r\n\r\n"
6
- <- "{\"url\":\"https://www.yeowza.com/paypal_webhook_f8c3f96af18fb8b7\",\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\"}]}"
7
- -> "HTTP/1.1 201 Created\r\n"
8
- -> "Date: Mon, 29 Jun 2015 00:16:47 GMT\r\n"
9
- -> "Server: Apache\r\n"
10
- -> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=199\r\n"
11
- -> "Paypal-Debug-Id: ca3b32418d9db\r\n"
12
- -> "Content-Language: *\r\n"
13
- -> "Content-Length: 650\r\n"
14
- -> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1871614037; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
15
- -> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
16
- -> "Vary: Authorization\r\n"
17
- -> "Connection: close\r\n"
18
- -> "Content-Type: application/json\r\n"
19
- -> "\r\n"
20
- reading 650 bytes...
21
- -> "{\"id\":\"50T98599JH617711K\",\"url\":\"https://www.yeowza.com/paypal_webhook_f8c3f96af18fb8b7\",\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\",\"description\":\"A payment authorization was created\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\",\"description\":\"A payment authorization was voided\"}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"update\",\"method\":\"PATCH\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"delete\",\"method\":\"DELETE\"}]}"
22
- read 650 bytes
23
- Conn close
24
- opening connection to api.sandbox.paypal.com:443...
25
- opened
26
- starting SSL for api.sandbox.paypal.com:443...
27
- SSL established
28
- <- "GET /v1/notifications/webhooks/50T98599JH617711K HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015utd2WErH9umRC.Jj7PryFIBwmu-2qGw7Evx6gx6P8t0\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.3.0 (paypal-sdk-core 1.3.0; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
29
- -> "HTTP/1.1 200 OK\r\n"
30
- -> "Date: Mon, 29 Jun 2015 00:16:47 GMT\r\n"
31
- -> "Server: Apache\r\n"
32
- -> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=528494\r\n"
33
- -> "Paypal-Debug-Id: 655c05e28d8fa\r\n"
34
- -> "Content-Language: *\r\n"
35
- -> "Content-Length: 650\r\n"
36
- -> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1871614037; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
37
- -> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
38
- -> "Vary: Authorization\r\n"
39
- -> "Connection: close\r\n"
40
- -> "Content-Type: application/json\r\n"
41
- -> "\r\n"
42
- reading 650 bytes...
43
- -> "{\"id\":\"50T98599JH617711K\",\"url\":\"https://www.yeowza.com/paypal_webhook_f8c3f96af18fb8b7\",\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\",\"description\":\"A payment authorization was created\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\",\"description\":\"A payment authorization was voided\"}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"update\",\"method\":\"PATCH\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"delete\",\"method\":\"DELETE\"}]}"
44
- read 650 bytes
45
- Conn close
46
- opening connection to api.sandbox.paypal.com:443...
47
- opened
48
- starting SSL for api.sandbox.paypal.com:443...
49
- SSL established
50
- <- "GET /v1/notifications/webhooks HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015utd2WErH9umRC.Jj7PryFIBwmu-2qGw7Evx6gx6P8t0\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.3.0 (paypal-sdk-core 1.3.0; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
51
- -> "HTTP/1.1 200 OK\r\n"
52
- -> "Date: Mon, 29 Jun 2015 00:16:48 GMT\r\n"
53
- -> "Server: Apache\r\n"
54
- -> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=600\r\n"
55
- -> "Paypal-Debug-Id: 666c52848db49\r\n"
56
- -> "Content-Language: *\r\n"
57
- -> "Content-Length: 1311\r\n"
58
- -> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1888391253; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
59
- -> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
60
- -> "Vary: Authorization\r\n"
61
- -> "Connection: close\r\n"
62
- -> "Content-Type: application/json\r\n"
63
- -> "\r\n"
64
- reading 1311 bytes...
65
- -> "{\"webhooks\":[{\"id\":\"8VM94926UH399150D\",\"url\":\"https://requestb.in/10ujt3c1?uniqid=558f54001056e\",\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\",\"description\":\"A payment authorization was created\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\",\"description\":\"A payment authorization was voided\"}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/8VM94926UH399150D\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/8VM94926UH399150D\",\"rel\":\"update\",\"method\":\"PATCH\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/8VM94926UH399150D\",\"rel\":\"delete\",\"method\":\"DELETE\"}]},{\"id\":\"50T98599JH617711K\",\"url\":\"https://www.yeowza.com/paypal_webhook_f8c3f96af18fb8b7\",\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\",\"description\":\"A payment authorization was created\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\",\"description\":\"A payment authorization was voided\"}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"update\",\"method\":\"PATCH\"},{\"href\":\"https://api.sandbox.paypal.com/v1/notifications/webhooks/50T98599JH617711K\",\"rel\":\"delete\",\"method\":\"DELETE\"}]}]}"
66
- read 1311 bytes
67
- Conn close
68
- opening connection to api.sandbox.paypal.com:443...
69
- opened
70
- starting SSL for api.sandbox.paypal.com:443...
71
- SSL established
72
- <- "GET /v1/notifications/webhooks/50T98599JH617711K/event-types HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015utd2WErH9umRC.Jj7PryFIBwmu-2qGw7Evx6gx6P8t0\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.3.0 (paypal-sdk-core 1.3.0; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
73
- -> "HTTP/1.1 200 OK\r\n"
74
- -> "Date: Mon, 29 Jun 2015 00:16:49 GMT\r\n"
75
- -> "Server: Apache\r\n"
76
- -> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=526559\r\n"
77
- -> "Paypal-Debug-Id: 748c1aeb8d5ba\r\n"
78
- -> "Content-Language: *\r\n"
79
- -> "Content-Length: 201\r\n"
80
- -> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1905168469; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
81
- -> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
82
- -> "Vary: Authorization\r\n"
83
- -> "Connection: close\r\n"
84
- -> "Content-Type: application/json\r\n"
85
- -> "\r\n"
86
- reading 201 bytes...
87
- -> "{\"event_types\":[{\"name\":\"PAYMENT.AUTHORIZATION.CREATED\",\"description\":\"A payment authorization was created\"},{\"name\":\"PAYMENT.AUTHORIZATION.VOIDED\",\"description\":\"A payment authorization was voided\"}]}"
88
- read 201 bytes
89
- Conn close
90
- opening connection to api.sandbox.paypal.com:443...
91
- opened
92
- starting SSL for api.sandbox.paypal.com:443...
93
- SSL established
94
- <- "DELETE /v1/notifications/webhooks/50T98599JH617711K HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015utd2WErH9umRC.Jj7PryFIBwmu-2qGw7Evx6gx6P8t0\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/PayPal-Ruby-SDK 1.3.0 (paypal-sdk-core 1.3.0; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
95
- -> "HTTP/1.1 204 No Content\r\n"
96
- -> "Date: Mon, 29 Jun 2015 00:16:49 GMT\r\n"
97
- -> "Server: Apache\r\n"
98
- -> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=624\r\n"
99
- -> "Paypal-Debug-Id: 594920158d7fe\r\n"
100
- -> "Content-Language: *\r\n"
101
- -> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1905168469; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
102
- -> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
103
- -> "Vary: Authorization\r\n"
104
- -> "Connection: close\r\n"
105
- -> "Content-Type: text/plain; charset=ISO-8859-1\r\n"
106
- -> "\r\n"
107
- Conn close
@@ -2,116 +2,45 @@ opening connection to api.sandbox.paypal.com:443...
2
2
  opened
3
3
  starting SSL for api.sandbox.paypal.com:443...
4
4
  SSL established
5
- <- "POST /v1/payments/payment HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015DOFRpuzFpZfHX0ilj8893ElG2peUPhPPO1bzZaUlDTE\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/rest-sdk-ruby 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 286\r\n\r\n"
6
- <- "{\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"4417119669820331\",\"expire_month\":\"11\",\"expire_year\":\"2018\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"7.47\",\"currency\":\"USD\"}}]}"
7
- -> "HTTP/1.1 400 Bad Request\r\n"
8
- -> "Date: Wed, 17 Jun 2015 16:03:02 GMT\r\n"
9
- -> "Server: Apache\r\n"
10
- -> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=205660\r\n"
11
- -> "Paypal-Debug-Id: 4902c6a25a289\r\n"
12
- -> "Content-Language: *\r\n"
13
- -> "Connection: close\r\n"
14
- -> "Connection: close\r\n"
15
- -> "Content-Length: 185\r\n"
16
- -> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D916095317; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
17
- -> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
18
- -> "Vary: Authorization\r\n"
19
- -> "Content-Type: application/json\r\n"
20
- -> "\r\n"
21
- reading 185 bytes...
22
- -> "{\"name\":\"UNKNOWN_ERROR\",\"message\":\"An unknown error has occurred\",\"information_link\":\"https://developer.paypal.com/webapps/developer/docs/api/#UNKNOWN_ERROR\",\"debug_id\":\"4902c6a25a289\"}"
23
- read 185 bytes
24
- Conn close
25
- opening connection to api.sandbox.paypal.com:443...
26
- opened
27
- starting SSL for api.sandbox.paypal.com:443...
28
- SSL established
29
- <- "GET /v1/payments/payment?count=10 HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015DOFRpuzFpZfHX0ilj8893ElG2peUPhPPO1bzZaUlDTE\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/rest-sdk-ruby 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
30
- -> "HTTP/1.1 200 OK\r\n"
31
- -> "Date: Wed, 17 Jun 2015 16:03:14 GMT\r\n"
5
+ <- "GET /v1/payments/payment/PAY-1234 HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015L7-5a9a9WxiKZ3.imHj5JgriF7lV8prm0ZYyamGCGoI\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/rest-sdk-ruby 1.3.1 (paypal-sdk-core 1.3.1; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
6
+ -> "HTTP/1.1 404 Not Found\r\n"
7
+ -> "Date: Thu, 02 Jul 2015 18:51:07 GMT\r\n"
32
8
  -> "Server: Apache\r\n"
33
- -> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=27108\r\n"
34
- -> "Paypal-Debug-Id: 7d7c9b58552a5\r\n"
9
+ -> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=476\r\n"
10
+ -> "Paypal-Debug-Id: 1ad36fab73506\r\n"
35
11
  -> "Content-Language: *\r\n"
36
- -> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1117421909; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
12
+ -> "Content-Length: 207\r\n"
13
+ -> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D461935957; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
37
14
  -> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
38
15
  -> "Vary: Authorization\r\n"
39
16
  -> "Connection: close\r\n"
40
- -> "Transfer-Encoding: chunked\r\n"
41
17
  -> "Content-Type: application/json\r\n"
42
18
  -> "\r\n"
43
- -> "2000\r\n"
44
- reading 8192 bytes...
45
- -> ""
46
- -> "{\"payments\":[{\"id\":\"PAY-4RG04167Y3679044FKWAZUJA\",\"create_time\":\"2015-06-17T16:02:44Z\",\"update_time\":\"2015-06-17T16:02:46Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx2259\",\"expire_month\":\"11\",\"expire_year\":\"2019\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"55819a94a9f6d\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Ground Coffee 40 oz\",\"tax\":\"0.30\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\",\"description\":\"Granola Bars with Peanuts\",\"tax\":\"0.20\"}]},\"related_resources\":[{\"sale\":{\"id\":\"1S363116N1212452J\",\"create_time\":\"2015-06-17T16:02:44Z\",\"update_time\":\"2015-06-17T16:02:46Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-4RG04167Y3679044FKWAZUJA\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/1S363116N1212452J\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/1S363116N1212452J/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-4RG04167Y3679044FKWAZUJA\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-4RG04167Y3679044FKWAZUJA\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-94W42352G3625413LKWAZFEA\",\"create_time\":\"2015-06-17T15:30:24Z\",\"update_time\":\"2015-06-17T15:30:26Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx2259\",\"expire_month\":\"11\",\"expire_year\":\"2019\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"5581928f8dd0c\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Ground Coffee 40 oz\",\"tax\":\"0.30\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\",\"description\":\"Granola Bars with Peanuts\",\"tax\":\"0.20\"}]},\"related_resources\":[{\"sale\":{\"id\":\"7EG93024KM342302E\",\"create_time\":\"2015-06-17T15:30:24Z\",\"update_time\":\"2015-06-17T15:30:26Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-94W42352G3625413LKWAZFEA\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/7EG93024KM342302E\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/7EG93024KM342302E/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-94W42352G3625413LKWAZFEA\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-94W42352G3625413LKWAZFEA\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-78S39199MJ676670TKWAZE3I\",\"create_time\":\"2015-06-17T15:29:49Z\",\"update_time\":\"2015-06-17T15:29:51Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx2259\",\"expire_month\":\"11\",\"expire_year\":\"2019\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"5581926cd1ef2\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Ground Coffee 40 oz\",\"tax\":\"0.30\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\",\"description\":\"Granola Bars with Peanuts\",\"tax\":\"0.20\"}]},\"related_resources\":[{\"sale\":{\"id\":\"4FV54189LD8932322\",\"create_time\":\"2015-06-17T15:29:49Z\",\"update_time\":\"2015-06-17T15:29:51Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-78S39199MJ676670TKWAZE3I\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/4FV54189LD8932322\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/4FV54189LD8932322/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-78S39199MJ676670TKWAZE3I\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-78S39199MJ676670TKWAZE3I\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-9DN27361C2703300EKWAZDIQ\",\"create_time\":\"2015-06-17T15:26:26Z\",\"update_time\":\"2015-06-17T15:26:28Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card_token\":{\"credit_card_id\":\"CARD-19321487CE645782DKWAZDII\",\"last4\":\"7702\",\"type\":\"visa\",\"expire_month\":\"11\",\"expire_year\":\"2019\"}}]},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"558191a21aaed\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\"}]},\"related_resources\":[{\"sale\":{\"id\":\"0UT44837MG029733C\",\"create_time\":\"2015-06-17T15:26:26Z\",\"update_time\":\"2015-06-17T15:26:28Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-9DN27361C2703300EKWAZDIQ\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/0UT44837MG029733C\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/0UT44837MG029733C/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-9DN27361C2703300EKWAZDIQ\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-9DN27361C2703300EKWAZDIQ\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-1FJ72485FN6485823KWAZCZA\",\"create_time\":\"2015-06-17T15:25:24Z\",\"update_time\":\"2015-06-17T15:25:26Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx2259\",\"expire_month\":\"11\",\"expire_year\":\"2019\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"55819163c08f9\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Ground Coffee 40 oz\",\"tax\":\"0.30\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\",\"description\":\"Granola Bars with Peanuts\",\"tax\":\"0.20\"}]},\"related_resources\":[{\"sale\":{\"id\":\"9S673821UG796180S\",\"create_time\":\"2015-06-17T15:25:24Z\",\"update_time\":\"2015-06-17T15:25:26Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-1FJ72485FN6485823KWAZCZA\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/9S673821UG796180S\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/9S673821UG796180S/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1FJ72485FN6485823KWAZCZA\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1FJ72485FN6485823KWAZCZA\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-6JY80631CT282263PKWAWPUI\",\"create_time\":\"2015-06-17T12:28:01Z\",\"update_time\":\"2015-06-17T12:28:12Z\",\"state\":\"approved\",\"intent\":\"authorize\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"mastercard\",\"number\":\"xxxxxxxxxxxx5559\",\"expire_month\":\"11\",\"expire_year\":\"2018\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"billing_address\":{\"line1\":\"52 N Main ST\",\"city\":\"Johnstown\",\"state\":\"OH\",\"postal_code\":\"43210\",\"country_code\":\"US\"}}}]},\"transactions\":["
47
- read 8192 bytes
48
- reading 2 bytes...
49
- -> ""
50
- -> "\r\n"
51
- read 2 bytes
52
- -> "2000\r\n"
53
- reading 8192 bytes...
54
- -> ""
55
- -> "{\"amount\":{\"total\":\"107.47\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"107.41\",\"tax\":\"0.03\",\"shipping\":\"0.03\"}},\"description\":\"This is the payment transaction description.\",\"related_resources\":[{\"authorization\":{\"id\":\"0F879792UF348410B\",\"create_time\":\"2015-06-17T12:28:01Z\",\"update_time\":\"2015-06-17T12:28:12Z\",\"amount\":{\"total\":\"107.47\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"107.41\",\"tax\":\"0.03\",\"shipping\":\"0.03\"}},\"state\":\"authorized\",\"parent_payment\":\"PAY-6JY80631CT282263PKWAWPUI\",\"valid_until\":\"2015-07-16T12:28:01Z\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/authorization/0F879792UF348410B\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/authorization/0F879792UF348410B/capture\",\"rel\":\"capture\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/authorization/0F879792UF348410B/void\",\"rel\":\"void\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-6JY80631CT282263PKWAWPUI\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-6JY80631CT282263PKWAWPUI\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-2FN79792JL482730FKWAWKBI\",\"create_time\":\"2015-06-17T12:16:05Z\",\"update_time\":\"2015-06-17T12:16:49Z\",\"state\":\"approved\",\"intent\":\"order\",\"payer\":{\"payment_method\":\"paypal\",\"status\":\"VERIFIED\",\"payer_info\":{\"email\":\"passionarya@gmail.com\",\"first_name\":\"passion\",\"last_name\":\"arya\",\"payer_id\":\"LJQW7QV5CMGKJ\",\"shipping_address\":{\"line1\":\"1 Main St\",\"city\":\"San Jose\",\"state\":\"CA\",\"postal_code\":\"95131\",\"country_code\":\"US\",\"recipient_name\":\"passion arya\"}}},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"558165052e585\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\"}]},\"related_resources\":[{\"order\":{\"id\":\"O-1EH64738GR325874S\",\"create_time\":\"2015-06-17T12:16:05Z\",\"update_time\":\"2015-06-17T12:16:38Z\",\"state\":\"authorized\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"parent_payment\":\"PAY-2FN79792JL482730FKWAWKBI\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/orders/O-1EH64738GR325874S\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-2FN79792JL482730FKWAWKBI\",\"rel\":\"parent_payment\",\"method\":\"GET\"}],\"reason_code\":\"order\"}},{\"authorization\":{\"id\":\"6CW979277C8653353\",\"create_time\":\"2015-06-17T12:16:48Z\",\"update_time\":\"2015-06-17T12:16:49Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-2FN79792JL482730FKWAWKBI\",\"valid_until\":\"2015-07-16T12:16:48Z\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/authorization/6CW979277C8653353\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/authorization/6CW979277C8653353/capture\",\"rel\":\"capture\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/authorization/6CW979277C8653353/void\",\"rel\":\"void\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/authorization/6CW979277C8653353/reauthorize\",\"rel\":\"reauthorize\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-2FN79792JL482730FKWAWKBI\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-2FN79792JL482730FKWAWKBI\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-2AD33606NT514341KKWAWJXA\",\"create_time\":\"2015-06-17T12:15:24Z\",\"update_time\":\"2015-06-17T12:15:26Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"credit_card\",\"funding_instruments\":[{\"credit_card\":{\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx2259\",\"expire_month\":\"11\",\"expire_year\":\"2019\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}}]},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"558164dc5226c\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Ground Coffee 40 oz\",\"tax\":\"0.30\"},{\"name\":\"Granola bars\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\",\"description\":\"Granola Bars with Peanuts\",\"tax\":\"0.20\"}]},\"related_resources\":[{\"sale\":{\"id\":\"31344398DP987593P\",\"create_time\":\"2015-06-17T12:15:24Z\",\"update_time\":\"2015-06-17T12:15:26Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"state\":\"completed\",\"parent_payment\":\"PAY-2AD33606NT514341KKWAWJXA\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/31344398DP987593P\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/31344398DP987593P/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-2AD33606NT514341KKWAWJXA\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-2AD33606NT514341KKWAWJXA\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-1AV94905D05234514KWAWJAY\",\"create_time\":\"2015-06-17T12:13:55Z\",\"update_time\":\"2015-06-17T12:14:37Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"paypal\",\"status\":\"VERIFIED\",\"payer_info\":{\"email\":\"passionarya@gmail.com\",\"first_name\":\"passion\",\"last_name\":\"arya\",\"payer_id\":\"LJQW7QV5CMGKJ\",\"shipping_address\":{\"line1\":\"1 Main St\",\"city\":\"San Jose\",\"state\":\"CA\",\"postal_code\":\"95131\",\"country_code\":\"US\",\"recipient_name\":\"passion arya\"}}},\"transactions\":[{\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"17.50\",\"tax\":\"1.30\",\"shipping\":\"1.20\"}},\"description\":\"Payment description\",\"invoice_number\":\"5581648074c1e\",\"item_list\":{\"items\":[{\"name\":\"Ground Coffee 40 oz\",\"sku\":\"123123\",\"price\":\"7.50\",\"currency\":\"USD\",\"quantity\":\"1\"},{\"name\":\"Granola bars\",\"sku\":\"321321\",\"price\":\"2.00\",\"currency\":\"USD\",\"quantity\":\"5\"}]},\"related_resources\":[{\"sale\":{\"id\":\"2K505029HN1211825\",\"create_time\":\"2015-06-17T12:13:55Z\",\"update_time\":\"2015-06-17T12:14:37Z\",\"amount\":{\"total\":\"20.00\",\"currency\":\"USD\"},\"payment_mode\":\"INSTANT_TRANSFER\",\"state\":\"completed\",\"protection_eligibility\":\"ELIGIBLE\",\"protection_eligibility_type\":\"ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE\",\"parent_payment\":\"PAY-1AV94905D05234514KWAWJAY\",\"transaction_fee\":{\"value\":\"0.88\",\"currency\":\"USD\"},\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/2K505029HN1211825\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/2K505029HN1211825/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1AV94905D05234514KWAWJAY\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1AV94905D05234514KWAWJAY\",\"rel\":\"self\",\"method\":\"GET\"}]},{\"id\":\"PAY-6053768531209024AKWAV22A\",\"create_time\":\"2015-06-17T11:43:36Z\",\"update_time\":\"2015-06-17T11:44:56Z\",\"state\":\"approved\",\"intent\":\"sale\",\"payer\":{\"payment_method\":\"paypal\",\"status\":\"VERIFIED\",\"payer_info\":{\"email\":\"dubeyvikass22@live.com\",\"first_name\":\"vikas\",\"last_name\":\"dubey\",\"payer_id\":\"6NZTQBCPLCD9S\",\"shipping_address\":{\"line1\":\"101 10 floore\",\"line2\":\"City Center\",\"city\":\"Ahmedabad\",\"state\":\"Gujarat\",\"postal_code\":\"3800054\",\"country_code\":\"IN\",\"recipient_name\":\"Ronak Prajapati\"}}},\"transactions\":[{\"amount\":{\"total\":\"0.66\",\"currency\":\"USD\",\"details\":{\"subtotal\":\"0.66\"}},\"description\":\"Payment description\",\"invoice_number\":\"TBH_55815d68082f0\",\"item_list\":{\"items\":[{\"name\":\"Afrikaaans to Arabic Translation\",\"price\":\"0.22\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Afrikaaans to Arabic Translation\"},{\"name\":\"Afrikaaans to English Translation\",\"price\":\"0.22\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Afrikaaans to English Translation\"},{\"name\":\"Afrikaaans to Gujarati Translation\",\"price\":\"0.22\",\"currency\":\"USD\",\"quantity\":\"1\",\"description\":\"Afrikaaans to Gujarati Translation\"}]},\"related_resources\":[{\"sale\":{\"id\":\"0YX952993U1445832\",\"create_time\":\"2015-06-17T11:43:36Z\",\"update_time\":\"2015-06-17"
56
- read 8192 bytes
57
- reading 2 bytes...
58
- -> ""
59
- -> "\r\n"
60
- read 2 bytes
61
- -> "371\r\n"
62
- reading 881 bytes...
63
- -> ""
64
- -> "T11:44:56Z\",\"amount\":{\"total\":\"0.66\",\"currency\":\"USD\"},\"payment_mode\":\"INSTANT_TRANSFER\",\"state\":\"completed\",\"protection_eligibility\":\"ELIGIBLE\",\"protection_eligibility_type\":\"ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE\",\"parent_payment\":\"PAY-6053768531209024AKWAV22A\",\"transaction_fee\":{\"value\":\"0.32\",\"currency\":\"USD\"},\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/0YX952993U1445832\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/sale/0YX952993U1445832/refund\",\"rel\":\"refund\",\"method\":\"POST\"},{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-6053768531209024AKWAV22A\",\"rel\":\"parent_payment\",\"method\":\"GET\"}]}}]}],\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/payments/payment/PAY-6053768531209024AKWAV22A\",\"rel\":\"self\",\"method\":\"GET\"}]}],\"count\":10,\"next_id\":\"PAY-2U295199GL626082MKWAVKJY\"}"
65
- read 881 bytes
66
- reading 2 bytes...
67
- -> ""
68
- -> "\r\n"
69
- read 2 bytes
70
- -> "0\r\n"
71
- -> "\r\n"
19
+ reading 207 bytes...
20
+ -> "{\"name\":\"INVALID_RESOURCE_ID\",\"message\":\"The requested resource ID was not found\",\"information_link\":\"https://developer.paypal.com/webapps/developer/docs/api/#INVALID_RESOURCE_ID\",\"debug_id\":\"1ad36fab73506\"}"
21
+ read 207 bytes
72
22
  Conn close
73
23
  opening connection to api.sandbox.paypal.com:443...
74
24
  opened
75
25
  starting SSL for api.sandbox.paypal.com:443...
76
26
  SSL established
77
- <- "POST /v1/vault/credit-card HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015hHEMGKOcPqeg2Ngcw8AQ-IN2MfFF5VPkpM-hU.XFXVg\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/rest-sdk-ruby 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 138\r\n\r\n"
78
- <- "{\"type\":\"visa\",\"number\":\"4111111111111111\",\"expire_month\":\"11\",\"expire_year\":\"2018\",\"cvv2\":\"874\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\"}"
79
- -> "HTTP/1.1 201 Created\r\n"
80
- -> "Date: Wed, 17 Jun 2015 16:03:26 GMT\r\n"
27
+ <- "POST /v1/payments/payment HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015L7-5a9a9WxiKZ3.imHj5JgriF7lV8prm0ZYyamGCGoI\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/rest-sdk-ruby 1.3.1 (paypal-sdk-core 1.3.1; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\nContent-Length: 2\r\n\r\n"
28
+ <- "{}"
29
+ -> "HTTP/1.1 400 Bad Request\r\n"
30
+ -> "Date: Thu, 02 Jul 2015 18:51:07 GMT\r\n"
81
31
  -> "Server: Apache\r\n"
82
- -> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=28161\r\n"
83
- -> "Paypal-Debug-Id: 087b04e850bf0\r\n"
32
+ -> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=295\r\n"
33
+ -> "Paypal-Debug-Id: 069a291c73040\r\n"
84
34
  -> "Content-Language: *\r\n"
85
- -> "Content-Length: 667\r\n"
86
- -> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1318748501; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
87
- -> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
88
- -> "Vary: Authorization\r\n"
89
35
  -> "Connection: close\r\n"
90
- -> "Content-Type: application/json\r\n"
91
- -> "\r\n"
92
- reading 667 bytes...
93
- -> "{\"id\":\"CARD-6F200375X0174994DKWAZUTQ\",\"state\":\"ok\",\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx1111\",\"expire_month\":\"11\",\"expire_year\":\"2018\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"valid_until\":\"2018-06-16T00:00:00Z\",\"create_time\":\"2015-06-17T16:03:26Z\",\"update_time\":\"2015-06-17T16:03:26Z\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-6F200375X0174994DKWAZUTQ\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-6F200375X0174994DKWAZUTQ\",\"rel\":\"delete\",\"method\":\"DELETE\"},{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-6F200375X0174994DKWAZUTQ\",\"rel\":\"patch\",\"method\":\"PATCH\"}]}"
94
- read 667 bytes
95
- Conn close
96
- opening connection to api.sandbox.paypal.com:443...
97
- opened
98
- starting SSL for api.sandbox.paypal.com:443...
99
- SSL established
100
- <- "GET /v1/vault/credit-card/CARD-6F200375X0174994DKWAZUTQ HTTP/1.1\r\nX-Paypal-Sandbox-Email-Address: Platform.sdk.seller@gmail.com\r\nAuthorization: Bearer A015hHEMGKOcPqeg2Ngcw8AQ-IN2MfFF5VPkpM-hU.XFXVg\r\nContent-Type: application/json\r\nUser-Agent: PayPalSDK/rest-sdk-ruby 1.2.2 (paypal-sdk-core 1.2.2; ruby 2.1.2p95-x86_64-darwin13.0)\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nHost: api.sandbox.paypal.com\r\n\r\n"
101
- -> "HTTP/1.1 200 OK\r\n"
102
- -> "Date: Wed, 17 Jun 2015 16:03:26 GMT\r\n"
103
- -> "Server: Apache\r\n"
104
- -> "PROXY_SERVER_INFO: host=slcsbplatformapiserv3001.slc.paypal.com;threadId=44734\r\n"
105
- -> "Paypal-Debug-Id: ee7797e650dd2\r\n"
106
- -> "Content-Language: *\r\n"
107
- -> "Content-Length: 667\r\n"
108
- -> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D1318748501; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
36
+ -> "Connection: close\r\n"
37
+ -> "Content-Length: 306\r\n"
38
+ -> "Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D880%26app%3Dplatformapiserv%26TIME%3D461935957; domain=.paypal.com; path=/; Secure; HttpOnly\r\n"
109
39
  -> "Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT\r\n"
110
40
  -> "Vary: Authorization\r\n"
111
- -> "Connection: close\r\n"
112
41
  -> "Content-Type: application/json\r\n"
113
42
  -> "\r\n"
114
- reading 667 bytes...
115
- -> "{\"id\":\"CARD-6F200375X0174994DKWAZUTQ\",\"state\":\"ok\",\"type\":\"visa\",\"number\":\"xxxxxxxxxxxx1111\",\"expire_month\":\"11\",\"expire_year\":\"2018\",\"first_name\":\"Joe\",\"last_name\":\"Shopper\",\"valid_until\":\"2018-06-16T00:00:00Z\",\"create_time\":\"2015-06-17T16:03:26Z\",\"update_time\":\"2015-06-17T16:03:26Z\",\"links\":[{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-6F200375X0174994DKWAZUTQ\",\"rel\":\"self\",\"method\":\"GET\"},{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-6F200375X0174994DKWAZUTQ\",\"rel\":\"delete\",\"method\":\"DELETE\"},{\"href\":\"https://api.sandbox.paypal.com/v1/vault/credit-card/CARD-6F200375X0174994DKWAZUTQ\",\"rel\":\"patch\",\"method\":\"PATCH\"}]}"
116
- read 667 bytes
43
+ reading 306 bytes...
44
+ -> "{\"name\":\"VALIDATION_ERROR\",\"details\":[{\"field\":\"payer\",\"issue\":\"Required field missing\"},{\"field\":\"intent\",\"issue\":\"Required field missing\"}],\"message\":\"Invalid request - see details\",\"information_link\":\"https://developer.paypal.com/webapps/developer/docs/api/#VALIDATION_ERROR\",\"debug_id\":\"069a291c73040\"}"
45
+ read 306 bytes
117
46
  Conn close
@@ -9,7 +9,7 @@ describe "Payments" do
9
9
  "funding_instruments" => [ {
10
10
  "credit_card" => {
11
11
  "type" => "visa",
12
- "number" => "4417119669820331",
12
+ "number" => "4567516310777851",
13
13
  "expire_month" => "11", "expire_year" => "2018",
14
14
  "cvv2" => "874",
15
15
  "first_name" => "Joe", "last_name" => "Shopper",
@@ -150,11 +150,14 @@ describe "Payments" do
150
150
  access_token = nil
151
151
 
152
152
  it "Exchange Authorization Code for Refresh / Access Tokens" do
153
+
153
154
  # put your authorization code for testing here
154
155
  auth_code = ''
156
+
155
157
  if auth_code != ''
156
- access_token = FuturePayment.exch_token(auth_code)
157
- access_token.should_not be_nil
158
+ tokeninfo = FuturePayment.exch_token(auth_code)
159
+ tokeninfo.access_token.should_not be_nil
160
+ tokeninfo.refresh_token.should_not be_nil
158
161
  end
159
162
  end
160
163
 
@@ -296,7 +299,7 @@ describe "Payments" do
296
299
  it "Create" do
297
300
  credit_card = CreditCard.new({
298
301
  "type" => "visa",
299
- "number" => "4417119669820331",
302
+ "number" => "4567516310777851",
300
303
  "expire_month" => "11", "expire_year" => "2018",
301
304
  "cvv2" => "874",
302
305
  "first_name" => "Joe", "last_name" => "Shopper",
@@ -317,7 +320,7 @@ describe "Payments" do
317
320
  it "Delete" do
318
321
  credit_card = CreditCard.new({
319
322
  "type" => "visa",
320
- "number" => "4417119669820331",
323
+ "number" => "4567516310777851",
321
324
  "expire_month" => "11", "expire_year" => "2018" })
322
325
  expect(credit_card.create).to be_truthy
323
326
  expect(credit_card.delete).to be_truthy
@@ -342,6 +345,15 @@ describe "Payments" do
342
345
  credit_card.error["details"][0]["issue"].should eql "Required field missing"
343
346
  end
344
347
  end
348
+ end
349
+
350
+ describe 'CreditCardList', :integration => true do
351
+
352
+ it "List" do
353
+ options = { :create_time => "2015-03-28T15:33:43Z" }
354
+ credit_card_list = CreditCardList.list()
355
+ expect(credit_card_list.total_items).to be > 0
356
+ end
345
357
 
346
358
  end
347
359
 
@@ -224,4 +224,4 @@ describe "Subscription" do
224
224
  end
225
225
 
226
226
  end
227
- end
227
+ end
@@ -90,4 +90,4 @@ describe "WebProfiles" do
90
90
  end
91
91
  end
92
92
  end
93
- end
93
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paypal-sdk-rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - PayPal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-29 00:00:00.000000000 Z
11
+ date: 2015-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coveralls