pay 2.7.2 → 3.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 +34 -731
- data/app/controllers/pay/webhooks/braintree_controller.rb +10 -3
- data/app/controllers/pay/webhooks/paddle_controller.rb +7 -8
- data/app/controllers/pay/webhooks/stripe_controller.rb +6 -3
- data/app/jobs/pay/{email_sync_job.rb → customer_sync_job.rb} +3 -4
- data/app/models/pay/application_record.rb +0 -5
- data/app/models/pay/charge.rb +31 -18
- data/app/models/pay/customer.rb +87 -0
- data/app/models/pay/merchant.rb +19 -0
- data/app/models/pay/payment_method.rb +41 -0
- data/app/models/pay/subscription.rb +32 -30
- data/app/models/pay/webhook.rb +36 -0
- data/app/views/layouts/pay/application.html.erb +2 -3
- data/app/views/pay/payments/show.html.erb +109 -81
- data/app/views/pay/user_mailer/receipt.html.erb +2 -2
- data/app/views/pay/user_mailer/refund.html.erb +2 -2
- data/config/locales/en.yml +1 -1
- data/db/migrate/1_create_pay_tables.rb +72 -0
- data/lib/pay/attributes.rb +74 -0
- data/lib/pay/billable/sync_customer.rb +30 -0
- data/lib/pay/braintree/billable.rb +126 -108
- data/lib/pay/braintree/payment_method.rb +33 -0
- data/lib/pay/braintree/subscription.rb +7 -12
- data/lib/pay/braintree/webhooks/subscription_canceled.rb +1 -1
- data/lib/pay/braintree/webhooks/subscription_charged_successfully.rb +4 -4
- data/lib/pay/braintree/webhooks/subscription_charged_unsuccessfully.rb +1 -1
- data/lib/pay/braintree/webhooks/subscription_expired.rb +1 -1
- data/lib/pay/braintree/webhooks/subscription_trial_ended.rb +2 -2
- data/lib/pay/braintree/webhooks/subscription_went_active.rb +1 -1
- data/lib/pay/braintree/webhooks/subscription_went_past_due.rb +1 -1
- data/lib/pay/braintree.rb +3 -2
- data/lib/pay/engine.rb +6 -1
- data/lib/pay/fake_processor/billable.rb +45 -21
- data/lib/pay/fake_processor/payment_method.rb +21 -0
- data/lib/pay/fake_processor/subscription.rb +11 -10
- data/lib/pay/fake_processor.rb +2 -1
- data/lib/pay/nano_id.rb +13 -0
- data/lib/pay/paddle/billable.rb +18 -48
- data/lib/pay/paddle/charge.rb +5 -5
- data/lib/pay/paddle/payment_method.rb +58 -0
- data/lib/pay/paddle/response.rb +0 -0
- data/lib/pay/paddle/subscription.rb +47 -8
- data/lib/pay/paddle/webhooks/subscription_cancelled.rb +6 -3
- data/lib/pay/paddle/webhooks/subscription_created.rb +1 -40
- data/lib/pay/paddle/webhooks/subscription_payment_refunded.rb +3 -3
- data/lib/pay/paddle/webhooks/subscription_payment_succeeded.rb +26 -28
- data/lib/pay/paddle/webhooks/subscription_updated.rb +2 -2
- data/lib/pay/paddle.rb +7 -3
- data/lib/pay/payment.rb +1 -1
- data/lib/pay/receipts.rb +35 -7
- data/lib/pay/stripe/billable.rb +50 -64
- data/lib/pay/stripe/charge.rb +18 -15
- data/lib/pay/stripe/merchant.rb +10 -10
- data/lib/pay/stripe/payment_method.rb +61 -0
- data/lib/pay/stripe/subscription.rb +22 -17
- data/lib/pay/stripe/webhooks/account_updated.rb +2 -3
- data/lib/pay/stripe/webhooks/charge_refunded.rb +1 -1
- data/lib/pay/stripe/webhooks/charge_succeeded.rb +2 -2
- data/lib/pay/stripe/webhooks/checkout_session_async_payment_succeeded.rb +3 -1
- data/lib/pay/stripe/webhooks/checkout_session_completed.rb +3 -1
- data/lib/pay/stripe/webhooks/customer_deleted.rb +7 -15
- data/lib/pay/stripe/webhooks/customer_updated.rb +10 -3
- data/lib/pay/stripe/webhooks/payment_action_required.rb +2 -2
- data/lib/pay/stripe/webhooks/payment_intent_succeeded.rb +6 -8
- data/lib/pay/stripe/webhooks/payment_method_attached.rb +2 -4
- data/lib/pay/stripe/webhooks/payment_method_detached.rb +1 -6
- data/lib/pay/stripe/webhooks/payment_method_updated.rb +10 -4
- data/lib/pay/stripe/webhooks/subscription_created.rb +1 -1
- data/lib/pay/stripe/webhooks/subscription_deleted.rb +2 -1
- data/lib/pay/stripe/webhooks/subscription_renewing.rb +12 -2
- data/lib/pay/stripe.rb +6 -3
- data/lib/pay/version.rb +1 -1
- data/lib/pay/webhooks/delegator.rb +4 -0
- data/lib/pay/webhooks/process_job.rb +9 -0
- data/lib/pay/webhooks.rb +1 -0
- data/lib/pay.rb +7 -78
- metadata +20 -37
- data/db/migrate/20170205020145_create_pay_subscriptions.rb +0 -17
- data/db/migrate/20170727235816_create_pay_charges.rb +0 -18
- data/db/migrate/20190816015720_add_status_to_pay_subscriptions.rb +0 -14
- data/db/migrate/20200603134434_add_data_to_pay_models.rb +0 -6
- data/db/migrate/20210309004259_add_data_to_pay_billable.rb +0 -10
- data/db/migrate/20210406215234_add_currency_to_pay_charges.rb +0 -5
- data/db/migrate/20210406215506_add_application_fee_to_pay_models.rb +0 -7
- data/db/migrate/20210714175351_add_uniqueness_to_pay_models.rb +0 -6
- data/lib/pay/billable/sync_email.rb +0 -40
- data/lib/pay/billable.rb +0 -172
- data/lib/pay/stripe/webhooks/payment_method_automatically_updated.rb +0 -17
@@ -4,12 +4,18 @@ module Pay
|
|
4
4
|
class PaymentMethodUpdated
|
5
5
|
def call(event)
|
6
6
|
object = event.data.object
|
7
|
-
billable = Pay.find_billable(processor: :stripe, processor_id: object.customer)
|
8
7
|
|
9
|
-
|
10
|
-
|
8
|
+
if object.customer
|
9
|
+
pay_customer = Pay::Customer.find_by(processor: :stripe, processor_id: object.customer)
|
11
10
|
|
12
|
-
|
11
|
+
# Couldn't find user, we can skip
|
12
|
+
return unless pay_customer.present?
|
13
|
+
|
14
|
+
Pay::Stripe::PaymentMethod.sync(object.id, stripe_account: event.try(:account))
|
15
|
+
else
|
16
|
+
# If customer was removed, we should delete the payment method if it exists
|
17
|
+
Pay::PaymentMethod.find_by_processor_and_id(:stripe, object.id)&.destroy
|
18
|
+
end
|
13
19
|
end
|
14
20
|
end
|
15
21
|
end
|
@@ -3,7 +3,8 @@ module Pay
|
|
3
3
|
module Webhooks
|
4
4
|
class SubscriptionDeleted
|
5
5
|
def call(event)
|
6
|
-
|
6
|
+
# Canceled subscriptions are still accessible via the API, so we can sync their details
|
7
|
+
Pay::Stripe::Subscription.sync(event.data.object.id, stripe_account: event.try(:account))
|
7
8
|
end
|
8
9
|
end
|
9
10
|
end
|
@@ -2,13 +2,23 @@ module Pay
|
|
2
2
|
module Stripe
|
3
3
|
module Webhooks
|
4
4
|
class SubscriptionRenewing
|
5
|
+
# Handles `invoice.upcoming` webhook from Stripe
|
6
|
+
# Occurs X number of days before a subscription is scheduled to create an invoice that is automatically charged—where X is determined by your subscriptions settings. Note: The received Invoice object will not have an invoice ID.
|
7
|
+
|
5
8
|
def call(event)
|
6
9
|
# Event is of type "invoice" see:
|
7
10
|
# https://stripe.com/docs/api/invoices/object
|
8
|
-
subscription = Pay.
|
11
|
+
subscription = Pay::Subscription.find_by_processor_and_id(:stripe, event.data.object.subscription)
|
9
12
|
return unless subscription
|
10
13
|
|
11
|
-
|
14
|
+
# Stripe subscription items all have the same interval
|
15
|
+
price = event.data.object.lines.data.first.price
|
16
|
+
return unless price.type == "recurring"
|
17
|
+
|
18
|
+
interval = price.recurring.interval
|
19
|
+
return unless interval == "year"
|
20
|
+
|
21
|
+
notify_user(subscription.customer.owner, subscription, Time.zone.at(event.data.object.next_payment_attempt))
|
12
22
|
end
|
13
23
|
|
14
24
|
def notify_user(billable, subscription, date)
|
data/lib/pay/stripe.rb
CHANGED
@@ -2,9 +2,10 @@ module Pay
|
|
2
2
|
module Stripe
|
3
3
|
autoload :Billable, "pay/stripe/billable"
|
4
4
|
autoload :Charge, "pay/stripe/charge"
|
5
|
-
autoload :Subscription, "pay/stripe/subscription"
|
6
5
|
autoload :Error, "pay/stripe/error"
|
7
6
|
autoload :Merchant, "pay/stripe/merchant"
|
7
|
+
autoload :PaymentMethod, "pay/stripe/payment_method"
|
8
|
+
autoload :Subscription, "pay/stripe/subscription"
|
8
9
|
|
9
10
|
module Webhooks
|
10
11
|
autoload :AccountUpdated, "pay/stripe/webhooks/account_updated"
|
@@ -16,6 +17,8 @@ module Pay
|
|
16
17
|
autoload :CustomerUpdated, "pay/stripe/webhooks/customer_updated"
|
17
18
|
autoload :PaymentActionRequired, "pay/stripe/webhooks/payment_action_required"
|
18
19
|
autoload :PaymentIntentSucceeded, "pay/stripe/webhooks/payment_intent_succeeded"
|
20
|
+
autoload :PaymentMethodAttached, "pay/stripe/webhooks/payment_method_attached"
|
21
|
+
autoload :PaymentMethodDetached, "pay/stripe/webhooks/payment_method_detached"
|
19
22
|
autoload :PaymentMethodUpdated, "pay/stripe/webhooks/payment_method_updated"
|
20
23
|
autoload :SubscriptionCreated, "pay/stripe/webhooks/subscription_created"
|
21
24
|
autoload :SubscriptionDeleted, "pay/stripe/webhooks/subscription_deleted"
|
@@ -81,10 +84,10 @@ module Pay
|
|
81
84
|
events.subscribe "stripe.customer.deleted", Pay::Stripe::Webhooks::CustomerDeleted.new
|
82
85
|
|
83
86
|
# If a customer's payment source was deleted in Stripe, we should update as well
|
84
|
-
events.subscribe "stripe.payment_method.attached", Pay::Stripe::Webhooks::
|
87
|
+
events.subscribe "stripe.payment_method.attached", Pay::Stripe::Webhooks::PaymentMethodAttached.new
|
85
88
|
events.subscribe "stripe.payment_method.updated", Pay::Stripe::Webhooks::PaymentMethodUpdated.new
|
86
89
|
events.subscribe "stripe.payment_method.card_automatically_updated", Pay::Stripe::Webhooks::PaymentMethodUpdated.new
|
87
|
-
events.subscribe "stripe.payment_method.detached", Pay::Stripe::Webhooks::
|
90
|
+
events.subscribe "stripe.payment_method.detached", Pay::Stripe::Webhooks::PaymentMethodDetached.new
|
88
91
|
|
89
92
|
# If an account is updated in stripe, we should update it as well
|
90
93
|
events.subscribe "stripe.account.updated", Pay::Stripe::Webhooks::AccountUpdated.new
|
data/lib/pay/version.rb
CHANGED
@@ -35,6 +35,10 @@ module Pay
|
|
35
35
|
backend.instrument name_with_namespace(type), event
|
36
36
|
end
|
37
37
|
|
38
|
+
def listening?(type)
|
39
|
+
backend.notifier.listening? name_with_namespace(type)
|
40
|
+
end
|
41
|
+
|
38
42
|
# Strips down to event data only
|
39
43
|
class NotificationAdapter
|
40
44
|
def initialize(subscriber)
|
data/lib/pay/webhooks.rb
CHANGED
data/lib/pay.rb
CHANGED
@@ -4,9 +4,9 @@ require "pay/errors"
|
|
4
4
|
require "pay/adapter"
|
5
5
|
|
6
6
|
module Pay
|
7
|
-
autoload :
|
7
|
+
autoload :Attributes, "pay/attributes"
|
8
8
|
autoload :Env, "pay/env"
|
9
|
-
autoload :
|
9
|
+
autoload :NanoId, "pay/nano_id"
|
10
10
|
autoload :Payment, "pay/payment"
|
11
11
|
autoload :Receipts, "pay/receipts"
|
12
12
|
|
@@ -18,27 +18,15 @@ module Pay
|
|
18
18
|
|
19
19
|
autoload :Webhooks, "pay/webhooks"
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
mattr_accessor :braintree_gateway
|
21
|
+
module Billable
|
22
|
+
autoload :SyncCustomer, "pay/billable/sync_customer"
|
23
|
+
end
|
25
24
|
|
26
|
-
|
27
|
-
@@billable_table = @@billable_class.tableize
|
25
|
+
mattr_accessor :braintree_gateway
|
28
26
|
|
29
27
|
mattr_accessor :model_parent_class
|
30
28
|
@@model_parent_class = "ApplicationRecord"
|
31
29
|
|
32
|
-
mattr_accessor :chargeable_class
|
33
|
-
mattr_accessor :chargeable_table
|
34
|
-
@@chargeable_class = "Pay::Charge"
|
35
|
-
@@chargeable_table = "pay_charges"
|
36
|
-
|
37
|
-
mattr_accessor :subscription_class
|
38
|
-
mattr_accessor :subscription_table
|
39
|
-
@@subscription_class = "Pay::Subscription"
|
40
|
-
@@subscription_table = "pay_subscriptions"
|
41
|
-
|
42
30
|
# Business details for receipts
|
43
31
|
mattr_accessor :application_name
|
44
32
|
mattr_accessor :business_address
|
@@ -54,6 +42,7 @@ module Pay
|
|
54
42
|
|
55
43
|
mattr_accessor :default_product_name
|
56
44
|
@@default_product_name = "default"
|
45
|
+
|
57
46
|
mattr_accessor :default_plan_name
|
58
47
|
@@default_plan_name = "default"
|
59
48
|
|
@@ -64,66 +53,6 @@ module Pay
|
|
64
53
|
yield self
|
65
54
|
end
|
66
55
|
|
67
|
-
def self.billable_models
|
68
|
-
Pay::Billable.includers
|
69
|
-
end
|
70
|
-
|
71
|
-
def self.merchant_models
|
72
|
-
Pay::Merchant.includers
|
73
|
-
end
|
74
|
-
|
75
|
-
def self.find_merchant(account_key, account_value)
|
76
|
-
merchant_models.each do |model|
|
77
|
-
case Pay::Adapter.current_adapter
|
78
|
-
when "postgresql"
|
79
|
-
return model.find_by("pay_data @> ?", {account_key.to_sym => account_value}.to_json)
|
80
|
-
when "mysql2"
|
81
|
-
return model.find_by("JSON_CONTAINS(pay_data, ?)", {account_key.to_sym => account_value}.to_json)
|
82
|
-
when "sqlite3"
|
83
|
-
return model.find_by("json_extract(pay_data, ?) =?", "$.#{account_key}", account_value)
|
84
|
-
else
|
85
|
-
model.find_by(pay_data: {account_key.to_sym => account_value})
|
86
|
-
end
|
87
|
-
end
|
88
|
-
nil
|
89
|
-
end
|
90
|
-
|
91
|
-
def self.find_billable(processor:, processor_id:)
|
92
|
-
billable_models.each do |model|
|
93
|
-
if (record = model.find_by(processor: processor, processor_id: processor_id))
|
94
|
-
return record
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
nil
|
99
|
-
end
|
100
|
-
|
101
|
-
def self.user_model
|
102
|
-
ActiveSupport::Deprecation.warn("Pay.user_model is deprecated and will be removed in v3. Instead, use `Pay.billable_models` now to support more than one billable model.")
|
103
|
-
|
104
|
-
if Rails.application.config.cache_classes
|
105
|
-
@@user_model ||= billable_class.constantize
|
106
|
-
else
|
107
|
-
billable_class.constantize
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
def self.charge_model
|
112
|
-
if Rails.application.config.cache_classes
|
113
|
-
@@charge_model ||= chargeable_class.constantize
|
114
|
-
else
|
115
|
-
chargeable_class.constantize
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
def self.subscription_model
|
120
|
-
if Rails.application.config.cache_classes
|
121
|
-
@@subscription_model ||= subscription_class.constantize
|
122
|
-
else
|
123
|
-
subscription_class.constantize
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
56
|
def self.receipts_supported?
|
128
57
|
charge_model.respond_to?(:receipt) &&
|
129
58
|
application_name.present? &&
|
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: 3.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: 2021-
|
12
|
+
date: 2021-09-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -17,34 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: 6.0.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: minitest-rails
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - ">="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '6'
|
35
|
-
- - "<"
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '7.0'
|
38
|
-
type: :development
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
requirements:
|
42
|
-
- - ">="
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: '6'
|
45
|
-
- - "<"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '7.0'
|
27
|
+
version: 6.0.0
|
48
28
|
- !ruby/object:Gem::Dependency
|
49
29
|
name: mocha
|
50
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,12 +102,16 @@ files:
|
|
122
102
|
- app/controllers/pay/webhooks/stripe_controller.rb
|
123
103
|
- app/helpers/pay/application_helper.rb
|
124
104
|
- app/jobs/pay/application_job.rb
|
125
|
-
- app/jobs/pay/
|
105
|
+
- app/jobs/pay/customer_sync_job.rb
|
126
106
|
- app/mailers/pay/application_mailer.rb
|
127
107
|
- app/mailers/pay/user_mailer.rb
|
128
108
|
- app/models/pay/application_record.rb
|
129
109
|
- app/models/pay/charge.rb
|
110
|
+
- app/models/pay/customer.rb
|
111
|
+
- app/models/pay/merchant.rb
|
112
|
+
- app/models/pay/payment_method.rb
|
130
113
|
- app/models/pay/subscription.rb
|
114
|
+
- app/models/pay/webhook.rb
|
131
115
|
- app/views/layouts/pay/application.html.erb
|
132
116
|
- app/views/pay/payments/show.html.erb
|
133
117
|
- app/views/pay/stripe/_checkout_button.html.erb
|
@@ -137,14 +121,7 @@ files:
|
|
137
121
|
- app/views/pay/user_mailer/subscription_renewing.html.erb
|
138
122
|
- config/locales/en.yml
|
139
123
|
- config/routes.rb
|
140
|
-
- db/migrate/
|
141
|
-
- db/migrate/20170727235816_create_pay_charges.rb
|
142
|
-
- db/migrate/20190816015720_add_status_to_pay_subscriptions.rb
|
143
|
-
- db/migrate/20200603134434_add_data_to_pay_models.rb
|
144
|
-
- db/migrate/20210309004259_add_data_to_pay_billable.rb
|
145
|
-
- db/migrate/20210406215234_add_currency_to_pay_charges.rb
|
146
|
-
- db/migrate/20210406215506_add_application_fee_to_pay_models.rb
|
147
|
-
- db/migrate/20210714175351_add_uniqueness_to_pay_models.rb
|
124
|
+
- db/migrate/1_create_pay_tables.rb
|
148
125
|
- lib/generators/active_record/billable_generator.rb
|
149
126
|
- lib/generators/active_record/merchant_generator.rb
|
150
127
|
- lib/generators/active_record/templates/billable_migration.rb
|
@@ -156,13 +133,14 @@ files:
|
|
156
133
|
- lib/generators/pay/views_generator.rb
|
157
134
|
- lib/pay.rb
|
158
135
|
- lib/pay/adapter.rb
|
159
|
-
- lib/pay/
|
160
|
-
- lib/pay/billable/
|
136
|
+
- lib/pay/attributes.rb
|
137
|
+
- lib/pay/billable/sync_customer.rb
|
161
138
|
- lib/pay/braintree.rb
|
162
139
|
- lib/pay/braintree/authorization_error.rb
|
163
140
|
- lib/pay/braintree/billable.rb
|
164
141
|
- lib/pay/braintree/charge.rb
|
165
142
|
- lib/pay/braintree/error.rb
|
143
|
+
- lib/pay/braintree/payment_method.rb
|
166
144
|
- lib/pay/braintree/subscription.rb
|
167
145
|
- lib/pay/braintree/webhooks/subscription_canceled.rb
|
168
146
|
- lib/pay/braintree/webhooks/subscription_charged_successfully.rb
|
@@ -178,12 +156,16 @@ files:
|
|
178
156
|
- lib/pay/fake_processor/billable.rb
|
179
157
|
- lib/pay/fake_processor/charge.rb
|
180
158
|
- lib/pay/fake_processor/error.rb
|
159
|
+
- lib/pay/fake_processor/payment_method.rb
|
181
160
|
- lib/pay/fake_processor/subscription.rb
|
182
161
|
- lib/pay/merchant.rb
|
162
|
+
- lib/pay/nano_id.rb
|
183
163
|
- lib/pay/paddle.rb
|
184
164
|
- lib/pay/paddle/billable.rb
|
185
165
|
- lib/pay/paddle/charge.rb
|
186
166
|
- lib/pay/paddle/error.rb
|
167
|
+
- lib/pay/paddle/payment_method.rb
|
168
|
+
- lib/pay/paddle/response.rb
|
187
169
|
- lib/pay/paddle/subscription.rb
|
188
170
|
- lib/pay/paddle/webhooks/signature_verifier.rb
|
189
171
|
- lib/pay/paddle/webhooks/subscription_cancelled.rb
|
@@ -198,6 +180,7 @@ files:
|
|
198
180
|
- lib/pay/stripe/charge.rb
|
199
181
|
- lib/pay/stripe/error.rb
|
200
182
|
- lib/pay/stripe/merchant.rb
|
183
|
+
- lib/pay/stripe/payment_method.rb
|
201
184
|
- lib/pay/stripe/subscription.rb
|
202
185
|
- lib/pay/stripe/webhooks/account_updated.rb
|
203
186
|
- lib/pay/stripe/webhooks/charge_refunded.rb
|
@@ -209,7 +192,6 @@ files:
|
|
209
192
|
- lib/pay/stripe/webhooks/payment_action_required.rb
|
210
193
|
- lib/pay/stripe/webhooks/payment_intent_succeeded.rb
|
211
194
|
- lib/pay/stripe/webhooks/payment_method_attached.rb
|
212
|
-
- lib/pay/stripe/webhooks/payment_method_automatically_updated.rb
|
213
195
|
- lib/pay/stripe/webhooks/payment_method_detached.rb
|
214
196
|
- lib/pay/stripe/webhooks/payment_method_updated.rb
|
215
197
|
- lib/pay/stripe/webhooks/subscription_created.rb
|
@@ -219,6 +201,7 @@ files:
|
|
219
201
|
- lib/pay/version.rb
|
220
202
|
- lib/pay/webhooks.rb
|
221
203
|
- lib/pay/webhooks/delegator.rb
|
204
|
+
- lib/pay/webhooks/process_job.rb
|
222
205
|
homepage: https://github.com/pay-rails/pay
|
223
206
|
licenses:
|
224
207
|
- MIT
|
@@ -238,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
238
221
|
- !ruby/object:Gem::Version
|
239
222
|
version: '0'
|
240
223
|
requirements: []
|
241
|
-
rubygems_version: 3.2.
|
224
|
+
rubygems_version: 3.2.22
|
242
225
|
signing_key:
|
243
226
|
specification_version: 4
|
244
227
|
summary: Payments engine for Ruby on Rails
|
@@ -1,17 +0,0 @@
|
|
1
|
-
class CreatePaySubscriptions < ActiveRecord::Migration[4.2]
|
2
|
-
def change
|
3
|
-
create_table :pay_subscriptions do |t|
|
4
|
-
# Some Billable objects use string as ID, add `type: :string` if needed
|
5
|
-
t.references :owner, polymorphic: true
|
6
|
-
t.string :name, null: false
|
7
|
-
t.string :processor, null: false
|
8
|
-
t.string :processor_id, null: false
|
9
|
-
t.string :processor_plan, null: false
|
10
|
-
t.integer :quantity, default: 1, null: false
|
11
|
-
t.datetime :trial_ends_at
|
12
|
-
t.datetime :ends_at
|
13
|
-
|
14
|
-
t.timestamps
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
class CreatePayCharges < ActiveRecord::Migration[4.2]
|
2
|
-
def change
|
3
|
-
create_table :pay_charges do |t|
|
4
|
-
# Some Billable objects use string as ID, add `type: :string` if needed
|
5
|
-
t.references :owner, polymorphic: true
|
6
|
-
t.string :processor, null: false
|
7
|
-
t.string :processor_id, null: false
|
8
|
-
t.integer :amount, null: false
|
9
|
-
t.integer :amount_refunded
|
10
|
-
t.string :card_type
|
11
|
-
t.string :card_last4
|
12
|
-
t.string :card_exp_month
|
13
|
-
t.string :card_exp_year
|
14
|
-
|
15
|
-
t.timestamps
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|