solidus_paypal_commerce_platform 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +4 -0
  3. data/.rubocop.yml +4 -4
  4. data/CHANGELOG.md +46 -2
  5. data/Gemfile +2 -2
  6. data/README.md +25 -0
  7. data/app/assets/javascripts/spree/frontend/solidus_paypal_commerce_platform/button_actions.js +3 -1
  8. data/app/assets/javascripts/spree/frontend/solidus_paypal_commerce_platform/buttons.js +14 -0
  9. data/app/controllers/solidus_paypal_commerce_platform/payments_controller.rb +4 -2
  10. data/app/helpers/solidus_paypal_commerce_platform/button_options_helper.rb +4 -0
  11. data/app/models/solidus_paypal_commerce_platform/gateway.rb +20 -1
  12. data/app/models/solidus_paypal_commerce_platform/payment_method.rb +20 -0
  13. data/app/models/solidus_paypal_commerce_platform/payment_source.rb +11 -0
  14. data/app/models/solidus_paypal_commerce_platform/wizard.rb +1 -1
  15. data/bin/rails-engine +1 -1
  16. data/config/locales/en.yml +34 -1
  17. data/db/migrate/20211220133406_add_paypal_funding_source_to_paypal_commerce_platform_sources.rb +5 -0
  18. data/lib/solidus_paypal_commerce_platform/client.rb +3 -3
  19. data/lib/solidus_paypal_commerce_platform/configuration.rb +3 -3
  20. data/lib/solidus_paypal_commerce_platform/engine.rb +11 -3
  21. data/lib/solidus_paypal_commerce_platform/testing_support/factories.rb +2 -1
  22. data/lib/solidus_paypal_commerce_platform/version.rb +1 -1
  23. data/lib/views/backend/spree/admin/payments/source_views/_paypal_commerce_platform.html.erb +3 -0
  24. data/lib/views/frontend/solidus_paypal_commerce_platform/payments/_payment.html.erb +4 -0
  25. data/lib/views/frontend/spree/checkout/payment/_paypal_commerce_platform.html.erb +17 -3
  26. data/solidus_paypal_commerce_platform.gemspec +2 -2
  27. metadata +11 -63
  28. data/spec/features/backend/new_payment_method_spec.rb +0 -40
  29. data/spec/features/frontend/cart_spec.rb +0 -46
  30. data/spec/features/frontend/checkout_spec.rb +0 -89
  31. data/spec/features/frontend/product_spec.rb +0 -91
  32. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.COMPLETED.v2.json +0 -121
  33. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.PROCESSED.v2.json +0 -121
  34. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v1.json +0 -50
  35. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v2.json +0 -72
  36. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v1.json +0 -50
  37. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v2.json +0 -68
  38. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v1.json +0 -51
  39. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v2.json +0 -63
  40. data/spec/jobs/solidus_paypal_commerce_platform/webhook_job_spec.rb +0 -44
  41. data/spec/lib/solidus_paypal_commerce_platform/client_spec.rb +0 -21
  42. data/spec/lib/solidus_paypal_commerce_platform/configuration_spec.rb +0 -91
  43. data/spec/models/solidus_paypal_commerce_platform/payment_method_spec.rb +0 -129
  44. data/spec/models/solidus_paypal_commerce_platform/payment_source_spec.rb +0 -62
  45. data/spec/models/solidus_paypal_commerce_platform/paypal_address_spec.rb +0 -67
  46. data/spec/models/solidus_paypal_commerce_platform/paypal_order_spec.rb +0 -33
  47. data/spec/models/solidus_paypal_commerce_platform/state_guesser_spec.rb +0 -38
  48. data/spec/models/solidus_paypal_commerce_platform/wizard_spec.rb +0 -9
  49. data/spec/requests/solidus_paypal_commerce_platform/orders_controller_spec.rb +0 -36
  50. data/spec/requests/solidus_paypal_commerce_platform/shipping_rates_controller_spec.rb +0 -44
  51. data/spec/requests/solidus_paypal_commerce_platform/wizard_controller_spec.rb +0 -44
  52. data/spec/spec_helper.rb +0 -32
  53. data/spec/support/capybara.rb +0 -11
  54. data/spec/support/paypal_sdk_script_tag_helper.rb +0 -13
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_paypal_commerce_platform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Denny
8
8
  - Elia Schito
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2021-05-11 00:00:00.000000000 Z
12
+ date: 2022-06-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: deface
@@ -121,7 +121,7 @@ dependencies:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
123
  version: '2.5'
124
- description:
124
+ description:
125
125
  email: contact@solidus.io
126
126
  executables: []
127
127
  extensions: []
@@ -186,6 +186,7 @@ files:
186
186
  - config/locales/en.yml
187
187
  - config/routes.rb
188
188
  - db/migrate/20200521190038_add_paypal_commerce_platform_sources.rb
189
+ - db/migrate/20211220133406_add_paypal_funding_source_to_paypal_commerce_platform_sources.rb
189
190
  - lib/generators/solidus_paypal_commerce_platform/install/install_generator.rb
190
191
  - lib/generators/solidus_paypal_commerce_platform/install/templates/initializer.rb
191
192
  - lib/solidus_paypal_commerce_platform.rb
@@ -208,33 +209,6 @@ files:
208
209
  - lib/views/frontend/spree/orders/payment/_paypal_commerce_platform.html.erb
209
210
  - lib/views/frontend/spree/products/payment/_paypal_commerce_platform.html.erb
210
211
  - solidus_paypal_commerce_platform.gemspec
211
- - spec/features/backend/new_payment_method_spec.rb
212
- - spec/features/frontend/cart_spec.rb
213
- - spec/features/frontend/checkout_spec.rb
214
- - spec/features/frontend/product_spec.rb
215
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.COMPLETED.v2.json
216
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.PROCESSED.v2.json
217
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v1.json
218
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v2.json
219
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v1.json
220
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v2.json
221
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v1.json
222
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v2.json
223
- - spec/jobs/solidus_paypal_commerce_platform/webhook_job_spec.rb
224
- - spec/lib/solidus_paypal_commerce_platform/client_spec.rb
225
- - spec/lib/solidus_paypal_commerce_platform/configuration_spec.rb
226
- - spec/models/solidus_paypal_commerce_platform/payment_method_spec.rb
227
- - spec/models/solidus_paypal_commerce_platform/payment_source_spec.rb
228
- - spec/models/solidus_paypal_commerce_platform/paypal_address_spec.rb
229
- - spec/models/solidus_paypal_commerce_platform/paypal_order_spec.rb
230
- - spec/models/solidus_paypal_commerce_platform/state_guesser_spec.rb
231
- - spec/models/solidus_paypal_commerce_platform/wizard_spec.rb
232
- - spec/requests/solidus_paypal_commerce_platform/orders_controller_spec.rb
233
- - spec/requests/solidus_paypal_commerce_platform/shipping_rates_controller_spec.rb
234
- - spec/requests/solidus_paypal_commerce_platform/wizard_controller_spec.rb
235
- - spec/spec_helper.rb
236
- - spec/support/capybara.rb
237
- - spec/support/paypal_sdk_script_tag_helper.rb
238
212
  homepage: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform
239
213
  licenses:
240
214
  - BSD-3-Clause
@@ -242,13 +216,14 @@ metadata:
242
216
  homepage_uri: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform
243
217
  source_code_uri: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform
244
218
  changelog_uri: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform/releases
245
- post_install_message:
219
+ rubygems_mfa_required: 'true'
220
+ post_install_message:
246
221
  rdoc_options: []
247
222
  require_paths:
248
223
  - lib
249
224
  required_ruby_version: !ruby/object:Gem::Requirement
250
225
  requirements:
251
- - - ">="
226
+ - - "~>"
252
227
  - !ruby/object:Gem::Version
253
228
  version: '2.5'
254
229
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -257,35 +232,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
257
232
  - !ruby/object:Gem::Version
258
233
  version: '0'
259
234
  requirements: []
260
- rubygems_version: 3.1.4
261
- signing_key:
235
+ rubygems_version: 3.1.6
236
+ signing_key:
262
237
  specification_version: 4
263
238
  summary: Integrate Solidus with Paypal Commerce Platform
264
- test_files:
265
- - spec/features/backend/new_payment_method_spec.rb
266
- - spec/features/frontend/cart_spec.rb
267
- - spec/features/frontend/checkout_spec.rb
268
- - spec/features/frontend/product_spec.rb
269
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.COMPLETED.v2.json
270
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.PROCESSED.v2.json
271
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v1.json
272
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v2.json
273
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v1.json
274
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v2.json
275
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v1.json
276
- - spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v2.json
277
- - spec/jobs/solidus_paypal_commerce_platform/webhook_job_spec.rb
278
- - spec/lib/solidus_paypal_commerce_platform/client_spec.rb
279
- - spec/lib/solidus_paypal_commerce_platform/configuration_spec.rb
280
- - spec/models/solidus_paypal_commerce_platform/payment_method_spec.rb
281
- - spec/models/solidus_paypal_commerce_platform/payment_source_spec.rb
282
- - spec/models/solidus_paypal_commerce_platform/paypal_address_spec.rb
283
- - spec/models/solidus_paypal_commerce_platform/paypal_order_spec.rb
284
- - spec/models/solidus_paypal_commerce_platform/state_guesser_spec.rb
285
- - spec/models/solidus_paypal_commerce_platform/wizard_spec.rb
286
- - spec/requests/solidus_paypal_commerce_platform/orders_controller_spec.rb
287
- - spec/requests/solidus_paypal_commerce_platform/shipping_rates_controller_spec.rb
288
- - spec/requests/solidus_paypal_commerce_platform/wizard_controller_spec.rb
289
- - spec/spec_helper.rb
290
- - spec/support/capybara.rb
291
- - spec/support/paypal_sdk_script_tag_helper.rb
239
+ test_files: []
@@ -1,40 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe "creating a new payment" do
4
- stub_authorization!
5
-
6
- it "displays PayPal Commerce Platform as an option" do
7
- visit "/admin/payment_methods/new"
8
- expect(page).to have_select('payment_method_type', options: [
9
- "PayPal Commerce Platform",
10
- "Bogus Credit Card Payments",
11
- "Check Payments",
12
- "Simple Bogus Credit Card Payments",
13
- "Store Credit Payments",
14
- ])
15
- select "PayPal Commerce Platform", from: 'payment_method_type'
16
- fill_in "Name", with: "PayPal!"
17
- click_on "Create"
18
- expect(page).to have_text("Payment Method has been successfully created!")
19
-
20
- fill_in "Client", with: "cli-123"
21
- fill_in "Client secret", with: "cli-sec-123"
22
- click_on "Update"
23
- expect(page).to have_text("Payment Method has been successfully updated!")
24
- end
25
-
26
- it "displays the onboarding button", :js do
27
- visit "/admin/payment_methods"
28
-
29
- # main_window = current_window
30
-
31
- within ".setup-wizard" do
32
- paypal_button = page.find("button")
33
- expect(paypal_button.text).to eq("Setup PayPal Commerce Platform")
34
- # TODO: make this more complete
35
- # paypal_window = window_opened_by do
36
- # paypal_button.click
37
- # end
38
- end
39
- end
40
- end
@@ -1,46 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe "Cart page" do
4
- describe "paypal payment method" do
5
- let(:order) { Spree::TestingSupport::OrderWalkthrough.up_to(:address) }
6
- let(:paypal_payment_method) { create(:paypal_payment_method) }
7
-
8
- before do
9
- user = create(:user)
10
- order.user = user
11
-
12
- paypal_payment_method
13
- allow_any_instance_of(Spree::OrdersController).to receive_messages(
14
- current_order: order,
15
- try_spree_current_user: user
16
- )
17
- end
18
-
19
- context "when generating a script tag" do
20
- it "generates a url with the correct credentials attached" do
21
- visit '/cart'
22
- expect(js_sdk_script_query).to include("client-id=#{paypal_payment_method.preferences[:client_id]}")
23
- end
24
-
25
- it "generates a partner_id attribute with the correct partner code attached" do
26
- visit '/cart'
27
- expect(js_sdk_script_partner_id).to eq("Solidus_PCP_SP")
28
- end
29
-
30
- it "generates a URL with the correct currency" do
31
- allow(order).to receive(:currency).and_return "EUR"
32
- visit '/cart'
33
- expect(js_sdk_script_query).to include("currency=EUR")
34
- end
35
-
36
- context "when auto-capture is set to true" do
37
- it "generates a url with intent capture" do
38
- paypal_payment_method.update(auto_capture: true)
39
- visit '/cart'
40
- expect(js_sdk_script_query).to include("client-id=#{paypal_payment_method.preferences[:client_id]}")
41
- expect(js_sdk_script_query).to include("intent=capture")
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,89 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe "Checkout" do
4
- describe "paypal payment method" do
5
- let(:order) { Spree::TestingSupport::OrderWalkthrough.up_to(:payment) }
6
- let(:paypal_payment_method) { create(:paypal_payment_method) }
7
- let(:failed_response) { OpenStruct.new(status_code: 500) }
8
-
9
- before do
10
- user = create(:user)
11
- order.user = user
12
- order.recalculate
13
-
14
- paypal_payment_method
15
- allow_any_instance_of(Spree::CheckoutController).to receive_messages(
16
- current_order: order, try_spree_current_user: user
17
- )
18
- end
19
-
20
- context "when generating a script tag" do
21
- it "generates a url with the correct credentials attached" do
22
- visit '/checkout/payment'
23
- expect(js_sdk_script_query).to include("client-id=#{paypal_payment_method.preferences[:client_id]}")
24
- end
25
-
26
- it "generates a partner_id attribute with the correct partner code attached" do
27
- visit '/checkout/payment'
28
- expect(js_sdk_script_partner_id).to eq("Solidus_PCP_SP")
29
- end
30
-
31
- it "generates a URL with the correct currency" do
32
- allow(order).to receive(:currency).and_return "EUR"
33
- visit '/checkout/payment'
34
- expect(js_sdk_script_query).to include("currency=EUR")
35
- end
36
-
37
- context "when auto-capture is set to true" do
38
- it "generates a url with intent capture" do
39
- paypal_payment_method.update(auto_capture: true)
40
- visit '/checkout/payment'
41
- expect(js_sdk_script_query).to include("client-id=#{paypal_payment_method.preferences[:client_id]}")
42
- expect(js_sdk_script_query).to include("intent=capture")
43
- end
44
- end
45
- end
46
-
47
- context "when no payment has been made" do
48
- it "fails to process" do
49
- visit '/checkout/payment'
50
- choose(option: paypal_payment_method.id)
51
- click_button("Save and Continue")
52
- expect(page).to have_content("Payments source PayPal order can't be blank")
53
- end
54
- end
55
-
56
- context "when a payment has been made" do
57
- it "proceeds to the next step" do
58
- visit '/checkout/payment'
59
- choose(option: paypal_payment_method.id)
60
- find(:xpath, "//input[@id='payments_source_paypal_order_id']", visible: false).set SecureRandom.hex(8)
61
- click_button("Save and Continue")
62
- expect(page).to have_css(".current", text: "Confirm")
63
- end
64
-
65
- it "records the paypal email address" do
66
- visit '/checkout/payment'
67
- choose(option: paypal_payment_method.id)
68
- find(:xpath, "//input[@id='payments_source_paypal_order_id']", visible: false).set SecureRandom.hex(8)
69
- find(:xpath, "//input[@id='payments_source_paypal_email']", visible: false).set "fake@email.com"
70
- click_button("Save and Continue")
71
- expect(Spree::Payment.last.source.paypal_email).to eq "fake@email.com"
72
- end
73
- end
74
-
75
- context "when a payment fails" do
76
- before { allow_any_instance_of(PayPal::PayPalHttpClient).to receive(:execute) { failed_response } }
77
-
78
- it "redirects the user back to the payments page" do
79
- visit '/checkout/payment'
80
- choose(option: paypal_payment_method.id)
81
- find(:xpath, "//input[@id='payments_source_paypal_order_id']", visible: false).set SecureRandom.hex(8)
82
- click_button("Save and Continue")
83
- click_button("Place Order")
84
- expect(page).to have_current_path("/checkout/payment")
85
- expect(page).to have_content("Your payment was declined")
86
- end
87
- end
88
- end
89
- end
@@ -1,91 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe "Product page", js: true do
4
- describe "paypal button" do
5
- let(:paypal_payment_method) { create(:paypal_payment_method) }
6
- let(:product) { create(:product, variants: [variant, variant_two]) }
7
- let(:store) { create(:store) }
8
- let(:variant) { create(:variant) }
9
- let(:variant_two) { create(:variant) }
10
-
11
- before do
12
- paypal_payment_method
13
- end
14
-
15
- context "when generating a script tag" do
16
- it "generates a url with the correct credentials attached" do
17
- visit "/products/#{product.slug}"
18
- expect(js_sdk_script_query).to include("client-id=#{paypal_payment_method.preferences[:client_id]}")
19
- end
20
-
21
- it "generates a partner_id attribute with the correct partner code attached" do
22
- visit "/products/#{product.slug}"
23
- expect(js_sdk_script_partner_id).to eq("Solidus_PCP_SP")
24
- end
25
-
26
- it "generates a URL with the correct currency" do
27
- allow_any_instance_of(SolidusPaypalCommercePlatform::PricingOptions).to receive(:currency).and_return "EUR"
28
- visit "/products/#{product.slug}"
29
- expect(js_sdk_script_query).to include("currency=EUR")
30
- end
31
-
32
- context "when auto-capture is set to true" do
33
- it "generates a url with intent capture" do
34
- paypal_payment_method.update(auto_capture: true)
35
- visit "/products/#{product.slug}"
36
- expect(js_sdk_script_query).to include("client-id=#{paypal_payment_method.preferences[:client_id]}")
37
- expect(js_sdk_script_query).to include("intent=capture")
38
- end
39
- end
40
- end
41
-
42
- describe "order creation" do
43
- before do
44
- allow_any_instance_of(Spree::Core::ControllerHelpers::Store).to receive(:current_store) { store }
45
- visit "/products/#{product.slug}"
46
-
47
- # Stubbing out paypal methods since their JS doesn't load in correctly on tests
48
- page.execute_script("paypal = {}")
49
- page.execute_script("paypal.render = function(){}")
50
- page.execute_script("paypal.Buttons = function(){return paypal}")
51
-
52
- # Waiting until the paypal button becomes available, because the SPCP namespace
53
- # isn't immediately available
54
- page.find("#paypal-button-container")
55
- end
56
-
57
- it "creates an order successfully" do
58
- page.evaluate_script("SolidusPaypalCommercePlatform.createOrder()")
59
- page.driver.wait_for_network_idle
60
-
61
- expect(Spree::Order.last).not_to be nil
62
- end
63
-
64
- it "sets the Spree number and token variables" do
65
- page.evaluate_script("SolidusPaypalCommercePlatform.createOrder()")
66
- page.driver.wait_for_network_idle
67
-
68
- expect(page.evaluate_script("Spree.current_order_id")).to eq Spree::Order.last.number
69
- expect(page.evaluate_script("Spree.current_order_token")).to eq Spree::Order.last.guest_token
70
- end
71
-
72
- it "uses the specified quantity" do
73
- quantity = 12
74
- fill_in('quantity', with: quantity)
75
-
76
- page.evaluate_script("SolidusPaypalCommercePlatform.createOrder()")
77
- page.driver.wait_for_network_idle
78
-
79
- expect(Spree::Order.last.line_items.first.quantity).to eq quantity
80
- end
81
-
82
- it "uses the selected variant" do
83
- page.choose("variant_id_#{variant_two.id}")
84
- page.evaluate_script("SolidusPaypalCommercePlatform.createOrder()")
85
- page.driver.wait_for_network_idle
86
-
87
- expect(Spree::Order.last.line_items.first.variant_id).to eq variant_two.id
88
- end
89
- end
90
- end
91
- end
@@ -1,121 +0,0 @@
1
- {
2
- "id": "WH-COC11055RA711503B-4YM959094A144403T",
3
- "create_time": "2018-04-16T21:21:49.000Z",
4
- "resource_type": "checkout-order",
5
- "event_type": "CHECKOUT.ORDER.COMPLETED",
6
- "summary": "Checkout Order Completed",
7
- "resource": {
8
- "update_time": "2018-04-01T21:20:49Z",
9
- "create_time": "2018-04-01T21:18:49Z",
10
- "purchase_units": [
11
- {
12
- "reference_id": "d9f80740-38f0-11e8-b467-0ed5f89f718b",
13
- "amount": {
14
- "currency_code": "USD",
15
- "value": "100.00"
16
- },
17
- "payee": {
18
- "email_address": "seller@example.com"
19
- },
20
- "shipping": {
21
- "method": "United States Postal Service",
22
- "address": {
23
- "address_line_1": "2211 N First Street",
24
- "address_line_2": "Building 17",
25
- "admin_area_2": "San Jose",
26
- "admin_area_1": "CA",
27
- "postal_code": "95131",
28
- "country_code": "US"
29
- }
30
- },
31
- "payments": {
32
- "captures": [
33
- {
34
- "id": "3C679366HH908993F",
35
- "status": "COMPLETED",
36
- "amount": {
37
- "currency_code": "USD",
38
- "value": "100.00"
39
- },
40
- "seller_protection": {
41
- "status": "ELIGIBLE",
42
- "dispute_categories": [
43
- "ITEM_NOT_RECEIVED",
44
- "UNAUTHORIZED_TRANSACTION"
45
- ]
46
- },
47
- "final_capture": true,
48
- "seller_receivable_breakdown": {
49
- "gross_amount": {
50
- "currency_code": "USD",
51
- "value": "100.00"
52
- },
53
- "paypal_fee": {
54
- "currency_code": "USD",
55
- "value": "3.00"
56
- },
57
- "net_amount": {
58
- "currency_code": "USD",
59
- "value": "97.00"
60
- }
61
- },
62
- "create_time": "2018-04-01T21:20:49Z",
63
- "update_time": "2018-04-01T21:20:49Z",
64
- "links": [
65
- {
66
- "href": "https://api.paypal.com/v2/payments/captures/3C679366HH908993F",
67
- "rel": "self",
68
- "method": "GET"
69
- },
70
- {
71
- "href": "https://api.paypal.com/v2/payments/captures/3C679366HH908993F/refund",
72
- "rel": "refund",
73
- "method": "POST"
74
- }
75
- ]
76
- }
77
- ]
78
- }
79
- }
80
- ],
81
- "links": [
82
- {
83
- "href": "https://api.paypal.com/v2/checkout/orders/5O190127TN364715T",
84
- "rel": "self",
85
- "method": "GET"
86
- }
87
- ],
88
- "id": "5O190127TN364715T",
89
- "gross_amount": {
90
- "currency_code": "USD",
91
- "value": "100.00"
92
- },
93
- "intent": "CAPTURE",
94
- "payer": {
95
- "name": {
96
- "given_name": "John",
97
- "surname": "Doe"
98
- },
99
- "email_address": "buyer@example.com",
100
- "payer_id": "QYR5Z8XDVJNXQ"
101
- },
102
- "status": "COMPLETED"
103
- },
104
- "links": [
105
- {
106
- "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-COC11055RA711503B-4YM959094A144403T",
107
- "rel": "self",
108
- "method": "GET",
109
- "encType": "application/json"
110
- },
111
- {
112
- "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-COC11055RA711503B-4YM959094A144403T/resend",
113
- "rel": "resend",
114
- "method": "POST",
115
- "encType": "application/json"
116
- }
117
- ],
118
- "event_version": "1.0",
119
- "zts": 1494957670,
120
- "resource_version": "2.0"
121
- }
@@ -1,121 +0,0 @@
1
- {
2
- "id": "WH-COC11055RA711503B-4YM959094A144403T",
3
- "create_time": "2018-04-16T21:21:49.000Z",
4
- "resource_type": "checkout-order",
5
- "event_type": "CHECKOUT.ORDER.COMPLETED",
6
- "summary": "Checkout Order Completed",
7
- "resource": {
8
- "update_time": "2018-04-01T21:20:49Z",
9
- "create_time": "2018-04-01T21:18:49Z",
10
- "purchase_units": [
11
- {
12
- "reference_id": "d9f80740-38f0-11e8-b467-0ed5f89f718b",
13
- "amount": {
14
- "currency_code": "USD",
15
- "value": "100.00"
16
- },
17
- "payee": {
18
- "email_address": "seller@example.com"
19
- },
20
- "shipping": {
21
- "method": "United States Postal Service",
22
- "address": {
23
- "address_line_1": "2211 N First Street",
24
- "address_line_2": "Building 17",
25
- "admin_area_2": "San Jose",
26
- "admin_area_1": "CA",
27
- "postal_code": "95131",
28
- "country_code": "US"
29
- }
30
- },
31
- "payments": {
32
- "captures": [
33
- {
34
- "id": "3C679366HH908993F",
35
- "status": "COMPLETED",
36
- "amount": {
37
- "currency_code": "USD",
38
- "value": "100.00"
39
- },
40
- "seller_protection": {
41
- "status": "ELIGIBLE",
42
- "dispute_categories": [
43
- "ITEM_NOT_RECEIVED",
44
- "UNAUTHORIZED_TRANSACTION"
45
- ]
46
- },
47
- "final_capture": true,
48
- "seller_receivable_breakdown": {
49
- "gross_amount": {
50
- "currency_code": "USD",
51
- "value": "100.00"
52
- },
53
- "paypal_fee": {
54
- "currency_code": "USD",
55
- "value": "3.00"
56
- },
57
- "net_amount": {
58
- "currency_code": "USD",
59
- "value": "97.00"
60
- }
61
- },
62
- "create_time": "2018-04-01T21:20:49Z",
63
- "update_time": "2018-04-01T21:20:49Z",
64
- "links": [
65
- {
66
- "href": "https://api.paypal.com/v2/payments/captures/3C679366HH908993F",
67
- "rel": "self",
68
- "method": "GET"
69
- },
70
- {
71
- "href": "https://api.paypal.com/v2/payments/captures/3C679366HH908993F/refund",
72
- "rel": "refund",
73
- "method": "POST"
74
- }
75
- ]
76
- }
77
- ]
78
- }
79
- }
80
- ],
81
- "links": [
82
- {
83
- "href": "https://api.paypal.com/v2/checkout/orders/5O190127TN364715T",
84
- "rel": "self",
85
- "method": "GET"
86
- }
87
- ],
88
- "id": "5O190127TN364715T",
89
- "gross_amount": {
90
- "currency_code": "USD",
91
- "value": "100.00"
92
- },
93
- "intent": "CAPTURE",
94
- "payer": {
95
- "name": {
96
- "given_name": "John",
97
- "surname": "Doe"
98
- },
99
- "email_address": "buyer@example.com",
100
- "payer_id": "QYR5Z8XDVJNXQ"
101
- },
102
- "status": "COMPLETED"
103
- },
104
- "links": [
105
- {
106
- "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-COC11055RA711503B-4YM959094A144403T",
107
- "rel": "self",
108
- "method": "GET",
109
- "encType": "application/json"
110
- },
111
- {
112
- "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-COC11055RA711503B-4YM959094A144403T/resend",
113
- "rel": "resend",
114
- "method": "POST",
115
- "encType": "application/json"
116
- }
117
- ],
118
- "event_version": "1.0",
119
- "zts": 1494957670,
120
- "resource_version": "2.0"
121
- }