pay 3.0.24 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of pay might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/controllers/pay/webhooks/braintree_controller.rb +1 -1
- data/app/controllers/pay/webhooks/paddle_controller.rb +1 -1
- data/app/controllers/pay/webhooks/stripe_controller.rb +1 -1
- data/app/jobs/pay/customer_sync_job.rb +0 -2
- data/app/mailers/pay/application_mailer.rb +1 -1
- data/app/mailers/pay/user_mailer.rb +2 -2
- data/app/models/pay/charge.rb +23 -0
- data/app/models/pay/customer.rb +2 -6
- data/app/models/pay/merchant.rb +6 -0
- data/app/models/pay/subscription.rb +35 -8
- data/app/views/pay/user_mailer/receipt.html.erb +6 -6
- data/app/views/pay/user_mailer/refund.html.erb +6 -6
- data/config/locales/en.yml +31 -24
- data/config/routes.rb +3 -3
- data/lib/pay/attributes.rb +28 -2
- data/lib/pay/billable/sync_customer.rb +3 -3
- data/lib/pay/braintree/billable.rb +61 -48
- data/lib/pay/braintree/subscription.rb +8 -3
- data/lib/pay/braintree/webhooks/subscription_canceled.rb +6 -1
- data/lib/pay/braintree/webhooks/subscription_charged_successfully.rb +2 -2
- data/lib/pay/braintree/webhooks/subscription_trial_ended.rb +1 -1
- data/lib/pay/braintree.rb +6 -2
- data/lib/pay/currency.rb +8 -2
- data/lib/pay/engine.rb +22 -4
- data/lib/pay/fake_processor/billable.rb +0 -4
- data/lib/pay/fake_processor/subscription.rb +8 -3
- data/lib/pay/paddle/billable.rb +0 -4
- data/lib/pay/paddle/subscription.rb +2 -2
- data/lib/pay/paddle/webhooks/signature_verifier.rb +45 -41
- data/lib/pay/paddle/webhooks/subscription_cancelled.rb +7 -2
- data/lib/pay/paddle/webhooks/subscription_payment_refunded.rb +3 -3
- data/lib/pay/paddle/webhooks/subscription_payment_succeeded.rb +7 -7
- data/lib/pay/paddle/webhooks/subscription_updated.rb +15 -15
- data/lib/pay/paddle.rb +14 -2
- data/lib/pay/receipts.rb +106 -32
- data/lib/pay/stripe/billable.rb +50 -18
- data/lib/pay/stripe/charge.rb +93 -11
- data/lib/pay/stripe/merchant.rb +1 -1
- data/lib/pay/stripe/subscription.rb +132 -30
- data/lib/pay/stripe/webhooks/charge_refunded.rb +2 -2
- data/lib/pay/stripe/webhooks/charge_succeeded.rb +2 -2
- data/lib/pay/stripe/webhooks/payment_action_required.rb +5 -5
- data/lib/pay/stripe/webhooks/subscription_renewing.rb +5 -9
- data/lib/pay/stripe/webhooks/subscription_updated.rb +1 -1
- data/lib/pay/stripe.rb +10 -1
- data/lib/pay/version.rb +1 -1
- data/lib/pay.rb +23 -4
- data/lib/tasks/pay.rake +1 -1
- metadata +3 -4
- data/lib/pay/merchant.rb +0 -37
data/lib/pay.rb
CHANGED
@@ -35,10 +35,6 @@ module Pay
|
|
35
35
|
mattr_accessor :business_logo
|
36
36
|
mattr_accessor :support_email
|
37
37
|
|
38
|
-
# Email configuration
|
39
|
-
mattr_accessor :send_emails
|
40
|
-
@@send_emails = true
|
41
|
-
|
42
38
|
mattr_accessor :automount_routes
|
43
39
|
@@automount_routes = true
|
44
40
|
|
@@ -51,7 +47,30 @@ module Pay
|
|
51
47
|
mattr_accessor :routes_path
|
52
48
|
@@routes_path = "/pay"
|
53
49
|
|
50
|
+
mattr_accessor :enabled_processors
|
51
|
+
@@enabled_processors = [:stripe, :braintree, :paddle]
|
52
|
+
|
53
|
+
mattr_accessor :emails
|
54
|
+
@@emails = ActiveSupport::OrderedOptions.new
|
55
|
+
@@emails.payment_action_required = true
|
56
|
+
@@emails.receipt = true
|
57
|
+
@@emails.refund = true
|
58
|
+
# This only applies to Stripe, therefor we supply the second argument of price
|
59
|
+
@@emails.subscription_renewing = ->(pay_subscription, price) {
|
60
|
+
(price&.type == "recurring") && (price.recurring&.interval == "year")
|
61
|
+
}
|
62
|
+
|
54
63
|
def self.setup
|
55
64
|
yield self
|
56
65
|
end
|
66
|
+
|
67
|
+
def self.send_email?(email_option, *remaining_args)
|
68
|
+
config_option = emails.send(email_option)
|
69
|
+
|
70
|
+
if config_option.respond_to?(:call)
|
71
|
+
config_option.call(*remaining_args)
|
72
|
+
else
|
73
|
+
config_option
|
74
|
+
end
|
75
|
+
end
|
57
76
|
end
|
data/lib/tasks/pay.rake
CHANGED
@@ -21,7 +21,7 @@ def sync_default_payment_method(pay_customer, retries: 2)
|
|
21
21
|
payment_method_id = pay_customer.customer.invoice_settings.default_payment_method
|
22
22
|
Pay::Stripe::PaymentMethod.sync(payment_method_id) if payment_method_id
|
23
23
|
when "paddle"
|
24
|
-
Pay::Paddle::PaymentMethod.sync(pay_customer)
|
24
|
+
Pay::Paddle::PaymentMethod.sync(pay_customer: pay_customer)
|
25
25
|
end
|
26
26
|
rescue
|
27
27
|
sleep 0.5
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Charnes
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-05-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -153,7 +153,6 @@ files:
|
|
153
153
|
- lib/pay/fake_processor/error.rb
|
154
154
|
- lib/pay/fake_processor/payment_method.rb
|
155
155
|
- lib/pay/fake_processor/subscription.rb
|
156
|
-
- lib/pay/merchant.rb
|
157
156
|
- lib/pay/nano_id.rb
|
158
157
|
- lib/pay/paddle.rb
|
159
158
|
- lib/pay/paddle/billable.rb
|
@@ -217,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
216
|
- !ruby/object:Gem::Version
|
218
217
|
version: '0'
|
219
218
|
requirements: []
|
220
|
-
rubygems_version: 3.
|
219
|
+
rubygems_version: 3.3.7
|
221
220
|
signing_key:
|
222
221
|
specification_version: 4
|
223
222
|
summary: Payments engine for Ruby on Rails
|
data/lib/pay/merchant.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
module Pay
|
2
|
-
module Merchant
|
3
|
-
extend ActiveSupport::Concern
|
4
|
-
|
5
|
-
# Keep track of which Merchant models we have
|
6
|
-
class << self
|
7
|
-
attr_reader :includers
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.included(base = nil, &block)
|
11
|
-
@includers ||= []
|
12
|
-
@includers << base if base
|
13
|
-
super
|
14
|
-
end
|
15
|
-
|
16
|
-
included do
|
17
|
-
store_accessor :pay_data, :stripe_connect_account_id
|
18
|
-
store_accessor :pay_data, :onboarding_complete
|
19
|
-
end
|
20
|
-
|
21
|
-
def merchant
|
22
|
-
@merchant ||= merchant_processor_for(merchant_processor).new(self)
|
23
|
-
end
|
24
|
-
|
25
|
-
def merchant_processor_for(name)
|
26
|
-
"Pay::#{name.to_s.classify}::Merchant".constantize
|
27
|
-
end
|
28
|
-
|
29
|
-
def stripe_connect_account_id?
|
30
|
-
!!stripe_connect_account_id
|
31
|
-
end
|
32
|
-
|
33
|
-
def onboarding_complete?
|
34
|
-
!!onboarding_complete
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|