solidus_paypal_commerce_platform 0.3.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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