solidus_paypal_commerce_platform 0.3.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +25 -2
  3. data/.rubocop.yml +6 -5
  4. data/CHANGELOG.md +180 -122
  5. data/Gemfile +16 -3
  6. data/README.md +27 -2
  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/orders_controller.rb +1 -1
  10. data/app/controllers/solidus_paypal_commerce_platform/payments_controller.rb +4 -2
  11. data/app/helpers/solidus_paypal_commerce_platform/button_options_helper.rb +4 -0
  12. data/app/models/solidus_paypal_commerce_platform/gateway.rb +20 -3
  13. data/app/models/solidus_paypal_commerce_platform/payment_method.rb +21 -1
  14. data/app/models/solidus_paypal_commerce_platform/payment_source.rb +12 -1
  15. data/app/models/solidus_paypal_commerce_platform/paypal_order.rb +6 -21
  16. data/app/models/solidus_paypal_commerce_platform/wizard.rb +1 -1
  17. data/bin/rails-engine +1 -1
  18. data/config/locales/en.yml +34 -1
  19. data/db/migrate/20211220133406_add_paypal_funding_source_to_paypal_commerce_platform_sources.rb +5 -0
  20. data/lib/paypal/access_token.rb +22 -0
  21. data/lib/paypal/lib.rb +19 -0
  22. data/lib/paypal/paypal_checkout_sdk/orders/orders_authorize_request.rb +44 -0
  23. data/lib/paypal/paypal_checkout_sdk/orders/orders_capture_request.rb +42 -0
  24. data/lib/paypal/paypal_checkout_sdk/orders/orders_create_request.rb +36 -0
  25. data/lib/paypal/paypal_checkout_sdk/orders/orders_get_request.rb +26 -0
  26. data/lib/paypal/paypal_checkout_sdk/orders/orders_patch_request.rb +77 -0
  27. data/lib/paypal/paypal_checkout_sdk/orders/orders_validate_request.rb +34 -0
  28. data/lib/paypal/paypal_checkout_sdk/payments/authorizations_capture_request.rb +38 -0
  29. data/lib/paypal/paypal_checkout_sdk/payments/authorizations_get_request.rb +26 -0
  30. data/lib/paypal/paypal_checkout_sdk/payments/authorizations_reauthorize_request.rb +45 -0
  31. data/lib/paypal/paypal_checkout_sdk/payments/authorizations_void_request.rb +27 -0
  32. data/lib/paypal/paypal_checkout_sdk/payments/captures_get_request.rb +26 -0
  33. data/lib/paypal/paypal_checkout_sdk/payments/captures_refund_request.rb +40 -0
  34. data/lib/paypal/paypal_checkout_sdk/payments/refunds_get_request.rb +26 -0
  35. data/lib/paypal/paypal_environment.rb +39 -0
  36. data/lib/paypal/paypal_http_client.rb +56 -0
  37. data/lib/paypal/token_requests.rb +42 -0
  38. data/lib/solidus_paypal_commerce_platform/access_token_authorization_request.rb +1 -1
  39. data/lib/solidus_paypal_commerce_platform/client.rb +4 -4
  40. data/lib/solidus_paypal_commerce_platform/configuration.rb +4 -4
  41. data/lib/solidus_paypal_commerce_platform/engine.rb +11 -3
  42. data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_authorize_request.rb +48 -0
  43. data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_capture_request.rb +46 -0
  44. data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_patch_request.rb +80 -0
  45. data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_validate_request.rb +36 -0
  46. data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/payments/authorizations_reauthorize_request.rb +50 -0
  47. data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/payments/captures_refund_request.rb +43 -0
  48. data/lib/solidus_paypal_commerce_platform/testing_support/factories.rb +2 -1
  49. data/lib/solidus_paypal_commerce_platform/version.rb +1 -1
  50. data/lib/solidus_paypal_commerce_platform.rb +1 -0
  51. data/lib/views/backend/spree/admin/payments/source_views/_paypal_commerce_platform.html.erb +3 -0
  52. data/lib/views/frontend/solidus_paypal_commerce_platform/payments/_payment.html.erb +4 -0
  53. data/lib/views/frontend/spree/checkout/payment/_paypal_commerce_platform.html.erb +17 -3
  54. data/solidus_paypal_commerce_platform.gemspec +9 -8
  55. metadata +52 -78
  56. data/spec/features/backend/new_payment_method_spec.rb +0 -40
  57. data/spec/features/frontend/cart_spec.rb +0 -46
  58. data/spec/features/frontend/checkout_spec.rb +0 -89
  59. data/spec/features/frontend/product_spec.rb +0 -91
  60. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.COMPLETED.v2.json +0 -121
  61. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.PROCESSED.v2.json +0 -121
  62. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v1.json +0 -50
  63. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v2.json +0 -72
  64. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v1.json +0 -50
  65. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v2.json +0 -68
  66. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v1.json +0 -51
  67. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v2.json +0 -63
  68. data/spec/jobs/solidus_paypal_commerce_platform/webhook_job_spec.rb +0 -44
  69. data/spec/lib/solidus_paypal_commerce_platform/client_spec.rb +0 -21
  70. data/spec/lib/solidus_paypal_commerce_platform/configuration_spec.rb +0 -91
  71. data/spec/models/solidus_paypal_commerce_platform/payment_method_spec.rb +0 -129
  72. data/spec/models/solidus_paypal_commerce_platform/payment_source_spec.rb +0 -62
  73. data/spec/models/solidus_paypal_commerce_platform/paypal_address_spec.rb +0 -67
  74. data/spec/models/solidus_paypal_commerce_platform/paypal_order_spec.rb +0 -33
  75. data/spec/models/solidus_paypal_commerce_platform/state_guesser_spec.rb +0 -38
  76. data/spec/models/solidus_paypal_commerce_platform/wizard_spec.rb +0 -9
  77. data/spec/requests/solidus_paypal_commerce_platform/orders_controller_spec.rb +0 -36
  78. data/spec/requests/solidus_paypal_commerce_platform/shipping_rates_controller_spec.rb +0 -44
  79. data/spec/requests/solidus_paypal_commerce_platform/wizard_controller_spec.rb +0 -44
  80. data/spec/spec_helper.rb +0 -32
  81. data/spec/support/capybara.rb +0 -11
  82. data/spec/support/paypal_sdk_script_tag_helper.rb +0 -13
@@ -0,0 +1,80 @@
1
+ # frozen_string_literal: true
2
+
3
+ # frozen_string_literal :true
4
+
5
+ # This module was automatically generated from paypal_checkout_sdk 1.0.1
6
+ require 'cgi'
7
+
8
+ module SolidusPaypalCommercePlatform
9
+ module PayPalCheckoutSdk
10
+ module Orders
11
+ #
12
+ # Updates an order that has the `CREATED` or `APPROVED` status. You cannot update
13
+ # an order with `COMPLETED` status. You can patch these attributes and objects:
14
+ # <table>
15
+ # <thead>
16
+ # <tr>
17
+ # <th align="left">Attribute or object</th>
18
+ # <th align="left">Operations</th>
19
+ # </tr>
20
+ # </thead>
21
+ # <tbody>
22
+ # <tr>
23
+ # <td><code>intent</code></td>
24
+ # <td align="left">Replace</td>
25
+ # </tr>
26
+ # <tr>
27
+ # <td><code>purchase_units</code></td>
28
+ # <td align="left">Replace, add</td>
29
+ # </tr>
30
+ # <tr>
31
+ # <td><code>purchase_units[].custom_id</code></td>
32
+ # <td align="left">Replace, add, remove</td>
33
+ # </tr>
34
+ # <tr>
35
+ # <td><code>purchase_units[].description</code></td>
36
+ # <td align="left">Replace, add, remove</td>
37
+ # </tr>
38
+ # <tr>
39
+ # <td><code>purchase_units[].payee.email</code></td>
40
+ # <td align="left">Replace, add</td>
41
+ # </tr>
42
+ # <tr>
43
+ # <td><code>purchase_units[].shipping</code></td>
44
+ # <td align="left">Replace, add, remove</td>
45
+ # </tr>
46
+ # <tr>
47
+ # <td><code>purchase_units[].soft_descriptor</code></td>
48
+ # <td align="left">Replace, add, remove</td>
49
+ # </tr>
50
+ # <tr>
51
+ # <td><code>purchase_units[].amount</code></td>
52
+ # <td align="left">Replace</td>
53
+ # </tr>
54
+ # <tr>
55
+ # <td><code>purchase_units[].invoice_id</code></td>
56
+ # <td align="left">Replace, add, remove</td>
57
+ # </tr>
58
+ # </tbody>
59
+ # </table>
60
+ #
61
+ class OrdersPatchRequest
62
+ attr_accessor :path, :body, :headers, :verb
63
+
64
+ def initialize(order_id)
65
+ @headers = {}
66
+ @body = nil
67
+ @verb = "PATCH"
68
+ @path = "/v2/checkout/orders/{order_id}?"
69
+
70
+ @path = @path.gsub("{order_id}", CGI.escape(order_id.to_s))
71
+ @headers["Content-Type"] = "application/json"
72
+ end
73
+
74
+ def request_body(patch_request)
75
+ @body = patch_request
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # frozen_string_literal :true
4
+
5
+ # This module was automatically generated from paypal_checkout_sdk 1.0.1
6
+ require 'cgi'
7
+ module SolidusPaypalCommercePlatform
8
+ module PayPalCheckoutSdk
9
+ module Orders
10
+ #
11
+ # Validates a payment method and checks it for contingencies.
12
+ #
13
+ class OrdersValidateRequest
14
+ attr_accessor :path, :body, :headers, :verb
15
+
16
+ def initialize(order_id)
17
+ @headers = {}
18
+ @body = nil
19
+ @verb = "POST"
20
+ @path = "/v2/checkout/orders/{order_id}/validate-payment-method?"
21
+
22
+ @path = @path.gsub("{order_id}", CGI.escape(order_id.to_s))
23
+ @headers["Content-Type"] = "application/json"
24
+ end
25
+
26
+ def pay_pal_client_metadata_id(pay_pal_client_metadata_id)
27
+ @headers["PayPal-Client-Metadata-Id"] = pay_pal_client_metadata_id
28
+ end
29
+
30
+ def request_body(order_action_request)
31
+ @body = order_action_request
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ # frozen_string_literal :true
4
+
5
+ # This module was automatically generated from paypal_checkout_sdk 1.0.1
6
+ require 'cgi'
7
+
8
+ module SolidusPaypalCommercePlatform
9
+ module PayPalCheckoutSdk
10
+ module Payments
11
+ #
12
+ # Reauthorizes an authorized PayPal account payment, by ID. To ensure
13
+ # that funds are still available, reauthorize a payment after its
14
+ # initial three-day honor period expires. You can reauthorize a payment
15
+ # only once from days four to 29.<br/><br/>If 30 days have transpired since
16
+ # the date of the original authorization, you must create an authorized
17
+ # payment instead of reauthorizing the original authorized payment.<br/><br/>
18
+ # A reauthorized payment itself has a new honor period of three days.
19
+ # <br/><br/>You can reauthorize an authorized payment once for up to 115%
20
+ # of the original authorized amount, not to exceed an increase of
21
+ # $75 USD.<br/><br/>Supports only the `amount` request parameter.
22
+ #
23
+ class AuthorizationsReauthorizeRequest
24
+ attr_accessor :path, :body, :headers, :verb
25
+
26
+ def initialize(authorization_id)
27
+ @headers = {}
28
+ @body = nil
29
+ @verb = "POST"
30
+ @path = "/v2/payments/authorizations/{authorization_id}/reauthorize?"
31
+
32
+ @path = @path.gsub("{authorization_id}", CGI.escape(authorization_id.to_s))
33
+ @headers["Content-Type"] = "application/json"
34
+ end
35
+
36
+ def pay_pal_request_id(pay_pal_request_id)
37
+ @headers["PayPal-Request-Id"] = pay_pal_request_id
38
+ end
39
+
40
+ def prefer(prefer)
41
+ @headers["Prefer"] = prefer
42
+ end
43
+
44
+ def request_body(reauthorize_request)
45
+ @body = reauthorize_request
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ # frozen_string_literal :true
4
+
5
+ # This module was automatically generated from paypal_checkout_sdk 1.0.1
6
+ require 'cgi'
7
+
8
+ module SolidusPaypalCommercePlatform
9
+ module PayPalCheckoutSdk
10
+ module Payments
11
+ #
12
+ # Refunds a captured payment, by ID. For a full refund, include an
13
+ # empty payload in the JSON request body. For a partial refund,
14
+ # include an <code>amount</code> object in the JSON request body.
15
+ #
16
+ class CapturesRefundRequest
17
+ attr_accessor :path, :body, :headers, :verb
18
+
19
+ def initialize(capture_id)
20
+ @headers = {}
21
+ @body = nil
22
+ @verb = "POST"
23
+ @path = "/v2/payments/captures/{capture_id}/refund?"
24
+
25
+ @path = @path.gsub("{capture_id}", CGI.escape(capture_id.to_s))
26
+ @headers["Content-Type"] = "application/json"
27
+ end
28
+
29
+ def pay_pal_request_id(pay_pal_request_id)
30
+ @headers["PayPal-Request-Id"] = pay_pal_request_id
31
+ end
32
+
33
+ def prefer(prefer)
34
+ @headers["Prefer"] = prefer
35
+ end
36
+
37
+ def request_body(refund_request)
38
+ @body = refund_request
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -7,7 +7,8 @@ FactoryBot.define do
7
7
  preferences {
8
8
  {
9
9
  client_id: SecureRandom.hex(8),
10
- client_secret: SecureRandom.hex(10)
10
+ client_secret: SecureRandom.hex(10),
11
+ venmo_standalone: 'disabled'
11
12
  }
12
13
  }
13
14
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusPaypalCommercePlatform
4
- VERSION = '0.3.2'
4
+ VERSION = '0.5.0'
5
5
  end
@@ -7,6 +7,7 @@ require 'solidus_paypal_commerce_platform/client'
7
7
  require 'solidus_paypal_commerce_platform/configuration'
8
8
  require 'solidus_paypal_commerce_platform/version'
9
9
  require 'solidus_paypal_commerce_platform/engine'
10
+ require 'paypal/lib'
10
11
 
11
12
  module SolidusPaypalCommercePlatform
12
13
  class << self
@@ -12,6 +12,9 @@
12
12
 
13
13
  <dt><%= I18n.t("paypal_email") %>:</dt>
14
14
  <dd><%= payment.source.paypal_email %></dd>
15
+
16
+ <dt><%= I18n.t("paypal_funding_source") %>:</dt>
17
+ <dd><%= payment.source.display_paypal_funding_source %></dd>
15
18
  </dl>
16
19
  </div>
17
20
  </div>
@@ -1,3 +1,7 @@
1
+ <% if payment.source.respond_to?(:paypal_funding_source) %>
2
+ <br />
3
+ <%= t('paypal_funding', funding: payment.source.display_paypal_funding_source) %>
4
+ <% end %>
1
5
  <% if payment.source.respond_to?(:paypal_email) %>
2
6
  <br />
3
7
  <%= t('payment_email', email: payment.source.paypal_email) %>
@@ -6,13 +6,27 @@
6
6
 
7
7
  <input type="hidden" name="payment_source[<%= payment_method.id %>][paypal_order_id]" id="payments_source_paypal_order_id">
8
8
  <input type="hidden" name="payment_source[<%= payment_method.id %>][paypal_email]" id="payments_source_paypal_email">
9
+ <input type="hidden" name="payment_source[<%= payment_method.id %>][paypal_funding_source]" id="payments_source_paypal_funding_source">
9
10
 
10
11
  <script>
11
12
  Spree.current_order_id = "<%= @order.number %>"
12
13
  Spree.current_order_token = "<%= @order.guest_token %>"
13
- $( document ).ready(function() {
14
- SolidusPaypalCommercePlatform.renderButton("<%= payment_method.id %>",<%= raw payment_method.button_style.to_json %>)
15
- })
16
14
  </script>
17
15
 
16
+ <% unless payment_method.render_only_venmo_standalone? %>
17
+ <script>
18
+ $( document ).ready(function() {
19
+ SolidusPaypalCommercePlatform.renderButton("<%= payment_method.id %>",<%= raw payment_method.button_style.to_json %>)
20
+ })
21
+ </script>
22
+ <% end %>
23
+
24
+ <% if payment_method.venmo_standalone_enabled? %>
25
+ <script>
26
+ $( document ).ready(function() {
27
+ SolidusPaypalCommercePlatform.renderVenmoStandalone("<%= payment_method.id %>",<%= raw payment_method.button_style.to_json %>)
28
+ })
29
+ </script>
30
+ <% end %>
31
+
18
32
  <div id="paypal_commerce_platform_overlay"></div>
@@ -9,31 +9,32 @@ Gem::Specification.new do |spec|
9
9
  spec.email = 'contact@solidus.io'
10
10
 
11
11
  spec.summary = 'Integrate Solidus with Paypal Commerce Platform'
12
- spec.homepage = 'https://github.com/solidusio-contrib/solidus_paypal_commerce_platform'
12
+ spec.homepage = 'https://github.com/solidusio/solidus_paypal_commerce_platform'
13
13
  spec.license = 'BSD-3-Clause'
14
14
 
15
15
  spec.metadata['homepage_uri'] = spec.homepage
16
- spec.metadata['source_code_uri'] = 'https://github.com/solidusio-contrib/solidus_paypal_commerce_platform'
17
- spec.metadata['changelog_uri'] = 'https://github.com/solidusio-contrib/solidus_paypal_commerce_platform/releases'
16
+ spec.metadata['source_code_uri'] = 'https://github.com/solidusio/solidus_paypal_commerce_platform'
17
+ spec.metadata['changelog_uri'] = 'https://github.com/solidusio/solidus_paypal_commerce_platform/releases'
18
+ spec.metadata['rubygems_mfa_required'] = 'true'
18
19
 
19
- spec.required_ruby_version = Gem::Requirement.new('>= 2.5')
20
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.7')
20
21
 
21
22
  # Specify which files should be added to the gem when it is released.
22
23
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
24
  files = Dir.chdir(__dir__) { `git ls-files -z`.split("\x0") }
24
25
 
25
26
  spec.files = files.grep_v(%r{^(test|spec|features)/})
26
- spec.test_files = files.grep(%r{^(test|spec|features)/})
27
27
  spec.bindir = "exe"
28
28
  spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ["lib"]
30
30
 
31
31
  spec.add_dependency 'deface', '~> 1.5'
32
- spec.add_dependency 'solidus_core', ['>= 2.0.0', '< 4']
33
- spec.add_dependency 'solidus_support', [">= 0.8.0", "< 1"]
32
+ spec.add_dependency 'solidus_api'
33
+ spec.add_dependency 'solidus_core', '~> 3.0'
34
+ spec.add_dependency 'solidus_support', '>= 0.8.0'
34
35
  spec.add_dependency 'solidus_webhooks', '~> 0.2'
35
36
 
36
- spec.add_dependency 'paypal-checkout-sdk'
37
+ spec.add_dependency 'paypalhttp'
37
38
 
38
39
  spec.add_development_dependency 'cuprite'
39
40
  spec.add_development_dependency 'solidus_dev_support', '~> 2.5'
metadata CHANGED
@@ -1,7 +1,7 @@
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.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Denny
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2021-05-11 00:00:00.000000000 Z
12
+ date: 2022-10-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: deface
@@ -26,25 +26,33 @@ dependencies:
26
26
  - !ruby/object:Gem::Version
27
27
  version: '1.5'
28
28
  - !ruby/object:Gem::Dependency
29
- name: solidus_core
29
+ name: solidus_api
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 2.0.0
35
- - - "<"
36
- - !ruby/object:Gem::Version
37
- version: '4'
34
+ version: '0'
38
35
  type: :runtime
39
36
  prerelease: false
40
37
  version_requirements: !ruby/object:Gem::Requirement
41
38
  requirements:
42
39
  - - ">="
43
40
  - !ruby/object:Gem::Version
44
- version: 2.0.0
45
- - - "<"
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: solidus_core
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
46
47
  - !ruby/object:Gem::Version
47
- version: '4'
48
+ version: '3.0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '3.0'
48
56
  - !ruby/object:Gem::Dependency
49
57
  name: solidus_support
50
58
  requirement: !ruby/object:Gem::Requirement
@@ -52,9 +60,6 @@ dependencies:
52
60
  - - ">="
53
61
  - !ruby/object:Gem::Version
54
62
  version: 0.8.0
55
- - - "<"
56
- - !ruby/object:Gem::Version
57
- version: '1'
58
63
  type: :runtime
59
64
  prerelease: false
60
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -62,9 +67,6 @@ dependencies:
62
67
  - - ">="
63
68
  - !ruby/object:Gem::Version
64
69
  version: 0.8.0
65
- - - "<"
66
- - !ruby/object:Gem::Version
67
- version: '1'
68
70
  - !ruby/object:Gem::Dependency
69
71
  name: solidus_webhooks
70
72
  requirement: !ruby/object:Gem::Requirement
@@ -80,7 +82,7 @@ dependencies:
80
82
  - !ruby/object:Gem::Version
81
83
  version: '0.2'
82
84
  - !ruby/object:Gem::Dependency
83
- name: paypal-checkout-sdk
85
+ name: paypalhttp
84
86
  requirement: !ruby/object:Gem::Requirement
85
87
  requirements:
86
88
  - - ">="
@@ -186,14 +188,39 @@ files:
186
188
  - config/locales/en.yml
187
189
  - config/routes.rb
188
190
  - db/migrate/20200521190038_add_paypal_commerce_platform_sources.rb
191
+ - db/migrate/20211220133406_add_paypal_funding_source_to_paypal_commerce_platform_sources.rb
189
192
  - lib/generators/solidus_paypal_commerce_platform/install/install_generator.rb
190
193
  - lib/generators/solidus_paypal_commerce_platform/install/templates/initializer.rb
194
+ - lib/paypal/access_token.rb
195
+ - lib/paypal/lib.rb
196
+ - lib/paypal/paypal_checkout_sdk/orders/orders_authorize_request.rb
197
+ - lib/paypal/paypal_checkout_sdk/orders/orders_capture_request.rb
198
+ - lib/paypal/paypal_checkout_sdk/orders/orders_create_request.rb
199
+ - lib/paypal/paypal_checkout_sdk/orders/orders_get_request.rb
200
+ - lib/paypal/paypal_checkout_sdk/orders/orders_patch_request.rb
201
+ - lib/paypal/paypal_checkout_sdk/orders/orders_validate_request.rb
202
+ - lib/paypal/paypal_checkout_sdk/payments/authorizations_capture_request.rb
203
+ - lib/paypal/paypal_checkout_sdk/payments/authorizations_get_request.rb
204
+ - lib/paypal/paypal_checkout_sdk/payments/authorizations_reauthorize_request.rb
205
+ - lib/paypal/paypal_checkout_sdk/payments/authorizations_void_request.rb
206
+ - lib/paypal/paypal_checkout_sdk/payments/captures_get_request.rb
207
+ - lib/paypal/paypal_checkout_sdk/payments/captures_refund_request.rb
208
+ - lib/paypal/paypal_checkout_sdk/payments/refunds_get_request.rb
209
+ - lib/paypal/paypal_environment.rb
210
+ - lib/paypal/paypal_http_client.rb
211
+ - lib/paypal/token_requests.rb
191
212
  - lib/solidus_paypal_commerce_platform.rb
192
213
  - lib/solidus_paypal_commerce_platform/access_token_authorization_request.rb
193
214
  - lib/solidus_paypal_commerce_platform/client.rb
194
215
  - lib/solidus_paypal_commerce_platform/configuration.rb
195
216
  - lib/solidus_paypal_commerce_platform/engine.rb
196
217
  - lib/solidus_paypal_commerce_platform/fetch_merchant_credentials_request.rb
218
+ - lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_authorize_request.rb
219
+ - lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_capture_request.rb
220
+ - lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_patch_request.rb
221
+ - lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_validate_request.rb
222
+ - lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/payments/authorizations_reauthorize_request.rb
223
+ - lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/payments/captures_refund_request.rb
197
224
  - lib/solidus_paypal_commerce_platform/testing_support/factories.rb
198
225
  - lib/solidus_paypal_commerce_platform/version.rb
199
226
  - lib/views/api/spree/api/payments/source_views/_paypal_commerce_platform.json.jbuilder
@@ -208,40 +235,14 @@ files:
208
235
  - lib/views/frontend/spree/orders/payment/_paypal_commerce_platform.html.erb
209
236
  - lib/views/frontend/spree/products/payment/_paypal_commerce_platform.html.erb
210
237
  - 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
- homepage: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform
238
+ homepage: https://github.com/solidusio/solidus_paypal_commerce_platform
239
239
  licenses:
240
240
  - BSD-3-Clause
241
241
  metadata:
242
- homepage_uri: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform
243
- source_code_uri: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform
244
- changelog_uri: https://github.com/solidusio-contrib/solidus_paypal_commerce_platform/releases
242
+ homepage_uri: https://github.com/solidusio/solidus_paypal_commerce_platform
243
+ source_code_uri: https://github.com/solidusio/solidus_paypal_commerce_platform
244
+ changelog_uri: https://github.com/solidusio/solidus_paypal_commerce_platform/releases
245
+ rubygems_mfa_required: 'true'
245
246
  post_install_message:
246
247
  rdoc_options: []
247
248
  require_paths:
@@ -250,42 +251,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
250
251
  requirements:
251
252
  - - ">="
252
253
  - !ruby/object:Gem::Version
253
- version: '2.5'
254
+ version: '2.7'
254
255
  required_rubygems_version: !ruby/object:Gem::Requirement
255
256
  requirements:
256
257
  - - ">="
257
258
  - !ruby/object:Gem::Version
258
259
  version: '0'
259
260
  requirements: []
260
- rubygems_version: 3.1.4
261
+ rubygems_version: 3.3.21
261
262
  signing_key:
262
263
  specification_version: 4
263
264
  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
265
+ 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