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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +25 -2
- data/.rubocop.yml +6 -5
- data/CHANGELOG.md +180 -122
- data/Gemfile +16 -3
- data/README.md +27 -2
- data/app/assets/javascripts/spree/frontend/solidus_paypal_commerce_platform/button_actions.js +3 -1
- data/app/assets/javascripts/spree/frontend/solidus_paypal_commerce_platform/buttons.js +14 -0
- data/app/controllers/solidus_paypal_commerce_platform/orders_controller.rb +1 -1
- data/app/controllers/solidus_paypal_commerce_platform/payments_controller.rb +4 -2
- data/app/helpers/solidus_paypal_commerce_platform/button_options_helper.rb +4 -0
- data/app/models/solidus_paypal_commerce_platform/gateway.rb +20 -3
- data/app/models/solidus_paypal_commerce_platform/payment_method.rb +21 -1
- data/app/models/solidus_paypal_commerce_platform/payment_source.rb +12 -1
- data/app/models/solidus_paypal_commerce_platform/paypal_order.rb +6 -21
- data/app/models/solidus_paypal_commerce_platform/wizard.rb +1 -1
- data/bin/rails-engine +1 -1
- data/config/locales/en.yml +34 -1
- data/db/migrate/20211220133406_add_paypal_funding_source_to_paypal_commerce_platform_sources.rb +5 -0
- data/lib/paypal/access_token.rb +22 -0
- data/lib/paypal/lib.rb +19 -0
- data/lib/paypal/paypal_checkout_sdk/orders/orders_authorize_request.rb +44 -0
- data/lib/paypal/paypal_checkout_sdk/orders/orders_capture_request.rb +42 -0
- data/lib/paypal/paypal_checkout_sdk/orders/orders_create_request.rb +36 -0
- data/lib/paypal/paypal_checkout_sdk/orders/orders_get_request.rb +26 -0
- data/lib/paypal/paypal_checkout_sdk/orders/orders_patch_request.rb +77 -0
- data/lib/paypal/paypal_checkout_sdk/orders/orders_validate_request.rb +34 -0
- data/lib/paypal/paypal_checkout_sdk/payments/authorizations_capture_request.rb +38 -0
- data/lib/paypal/paypal_checkout_sdk/payments/authorizations_get_request.rb +26 -0
- data/lib/paypal/paypal_checkout_sdk/payments/authorizations_reauthorize_request.rb +45 -0
- data/lib/paypal/paypal_checkout_sdk/payments/authorizations_void_request.rb +27 -0
- data/lib/paypal/paypal_checkout_sdk/payments/captures_get_request.rb +26 -0
- data/lib/paypal/paypal_checkout_sdk/payments/captures_refund_request.rb +40 -0
- data/lib/paypal/paypal_checkout_sdk/payments/refunds_get_request.rb +26 -0
- data/lib/paypal/paypal_environment.rb +39 -0
- data/lib/paypal/paypal_http_client.rb +56 -0
- data/lib/paypal/token_requests.rb +42 -0
- data/lib/solidus_paypal_commerce_platform/access_token_authorization_request.rb +1 -1
- data/lib/solidus_paypal_commerce_platform/client.rb +4 -4
- data/lib/solidus_paypal_commerce_platform/configuration.rb +4 -4
- data/lib/solidus_paypal_commerce_platform/engine.rb +11 -3
- data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_authorize_request.rb +48 -0
- data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_capture_request.rb +46 -0
- data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_patch_request.rb +80 -0
- data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_validate_request.rb +36 -0
- data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/payments/authorizations_reauthorize_request.rb +50 -0
- data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/payments/captures_refund_request.rb +43 -0
- data/lib/solidus_paypal_commerce_platform/testing_support/factories.rb +2 -1
- data/lib/solidus_paypal_commerce_platform/version.rb +1 -1
- data/lib/solidus_paypal_commerce_platform.rb +1 -0
- data/lib/views/backend/spree/admin/payments/source_views/_paypal_commerce_platform.html.erb +3 -0
- data/lib/views/frontend/solidus_paypal_commerce_platform/payments/_payment.html.erb +4 -0
- data/lib/views/frontend/spree/checkout/payment/_paypal_commerce_platform.html.erb +17 -3
- data/solidus_paypal_commerce_platform.gemspec +9 -8
- metadata +52 -78
- data/spec/features/backend/new_payment_method_spec.rb +0 -40
- data/spec/features/frontend/cart_spec.rb +0 -46
- data/spec/features/frontend/checkout_spec.rb +0 -89
- data/spec/features/frontend/product_spec.rb +0 -91
- data/spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.COMPLETED.v2.json +0 -121
- data/spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.PROCESSED.v2.json +0 -121
- data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v1.json +0 -50
- data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v2.json +0 -72
- data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v1.json +0 -50
- data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v2.json +0 -68
- data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v1.json +0 -51
- data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v2.json +0 -63
- data/spec/jobs/solidus_paypal_commerce_platform/webhook_job_spec.rb +0 -44
- data/spec/lib/solidus_paypal_commerce_platform/client_spec.rb +0 -21
- data/spec/lib/solidus_paypal_commerce_platform/configuration_spec.rb +0 -91
- data/spec/models/solidus_paypal_commerce_platform/payment_method_spec.rb +0 -129
- data/spec/models/solidus_paypal_commerce_platform/payment_source_spec.rb +0 -62
- data/spec/models/solidus_paypal_commerce_platform/paypal_address_spec.rb +0 -67
- data/spec/models/solidus_paypal_commerce_platform/paypal_order_spec.rb +0 -33
- data/spec/models/solidus_paypal_commerce_platform/state_guesser_spec.rb +0 -38
- data/spec/models/solidus_paypal_commerce_platform/wizard_spec.rb +0 -9
- data/spec/requests/solidus_paypal_commerce_platform/orders_controller_spec.rb +0 -36
- data/spec/requests/solidus_paypal_commerce_platform/shipping_rates_controller_spec.rb +0 -44
- data/spec/requests/solidus_paypal_commerce_platform/wizard_controller_spec.rb +0 -44
- data/spec/spec_helper.rb +0 -32
- data/spec/support/capybara.rb +0 -11
- 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
|
data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/orders/orders_validate_request.rb
ADDED
@@ -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
|
data/lib/solidus_paypal_commerce_platform/paypal_checkout_sdk/payments/captures_refund_request.rb
ADDED
@@ -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,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
|
@@ -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
|
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
|
17
|
-
spec.metadata['changelog_uri'] = 'https://github.com/solidusio
|
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.
|
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 '
|
33
|
-
spec.add_dependency '
|
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 '
|
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.
|
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:
|
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:
|
29
|
+
name: solidus_api
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
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:
|
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: '
|
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:
|
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
|
-
|
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
|
243
|
-
source_code_uri: https://github.com/solidusio
|
244
|
-
changelog_uri: https://github.com/solidusio
|
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.
|
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.
|
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
|