- Update Stripe & Braintree default card automatically when the customer is accessed (ie. on charge, subscribe, etc) #300 - @excid3
- Add passthrough fallback for paddle payment succeeded webhook #302 - @nm
- Add Stripe
payment_intent.succeeded
webhook listener
- Improve error wrappers to delegate message to original cause
- [NEW] Raise error if payment processor name is nil
- [FIX] Pay::Error now uses the correct message in to_s
- Create braintree customer on update_card if needed
- [NEW] Fake payment processor for testing and giving users free access to your application
- [FIX] Delegate trial_ends_at for subscriptions - @archonic
- [FIX] Default to empty hash when default_url_options is nil so proper error is raised
- [FIX] Fix inquiry when processor is nil
- [FIX] Correctly handle updating payment method in Stripe
- [NEW] Add Stripe Customer Billing Portal - @excid3
- Include
customer
on Stripe Checkout sessions - @excid3
- [NEW] Stripe Checkout support - @excid3
- [BREAKING] Webhooks that can't be verified respond with 400 instead of 200 - @excid3
- [BREAKING] Remove StripeEvent dependency - excid3
- [BREAKING] Remove old configuration for mailer subjects in favor of locales - @excid3
- [NEW] Add
Pay::Webhook.delegator
for subscribing to webhooks - @excid3
- [Fix] Fixed missing require for version file - @excid3
- Add Stripe app info and join the Stripe Partner program for better support for Pay! - @excid3
- [FIX] Update migration to check for symobl keys on ActiveRecord adapter with Rails 6.1 - @excid3
- [FIX] Move Paddle logic into paddle methods - @excid3
- [BREAKING] Use locales for email subjects and remove configuration - @excid3
- [FIX] Subject for payment action required emails referenced an invalid config - @excid3
- Add
data
json column to Charge and Subscription models - @excid3
To add the new migrations to your app, run:
rails pay:install:migrations
- Add Paddle initial support - @nm
Pay.model_parent_class
defaults toApplicationRecord
- @excid3- Test suite now runs against sqlite, mysql, and postgresql - @excid3
- [FIX] Lookup billable on invoice.payment_action_required events - @excid3
- Bugfixes
- [NEW] Allow passing
?back=/path/to/item
for customizing the back link for SCA payments page
Stripe API 2020-08-27 changes:
- Use
proration_behavior
instead ofprorate
for Stripe subscription changes - Switch to
::Stripe::Subscription.create
instead ofcustomer.subscriptions
as Stripe no longer includes this by default for performance - Set Stripe API version for easier gem management
- Add support for
quantity
option onsubscribe
for subscription quantities - Added
Pay::BraintreeAuthorizationError
to catch Braintree actions with malformed data or unauthorized API access.
- [FIX] Remove old billable migration
- [FIX] The
charge
method now raisesPay::BraintreeError
when a charge fails. This makes it work consistently with the Stripe implementation which raises an error on charge failure.
-
[BREAKING] Subscription & Charge associations to
owner
are now polymorphic.Requires adding
owner_type:string
to both Pay::Charge and Pay::Subscription models and setting the value for all existing records to your model name.
class AddOwnerTypeToPay < ActiveRecord::Migration[6.0]
def change
add_column :pay_charges, :owner_type, :string
add_column :pay_subscriptions, :owner_type, :string
# Backfill owner_type column to match your Billable model
Pay::Charge.update_all owner_type: "User"
Pay::Subscription.update_all owner_type: "User"
end
end
Pay.billable_class
is now deprecated and will be removed in a future version. You should also update your existing Pay migrations to reference the :users
table rather than Pay.billable_class
and any other code you may have that references this method.
- [FIX] Stripe subscription cancel shouldn't change status
- [FIX] Stripe test payment methods should now work (ie.
pm_card_visa
)
- [FIX] Styling tweaks for payment intent page
- [FIX] Stripe Refund and Charge references weren't matching the right class
- [NEW] Stripe SCA support
- [BREAKING] Requires using PaymentMethods instead of Source and Tokens
- [BREAKING] Drops Ruby 2.4 support
- [BREAKING]
automount_webhook_routes
config option has been renamed toautomount_routes
- [BREAKING]
webhooks_path
config option has been renamed toroutes_path
- Added
status
column to payments to keep in sync with Stripe. We're also adding statuses to Braintree subscriptions to keep them in sync as best we can. - Added
payments#show
route to handle SCA payments that require action - Added webhook handler for payments that require action
- Added
trial_period_days
when creating a subscription that works the same on Stripe and Braintree
- Set default from email to
Pay.support_email
- Add
on_trial_or_subscribed?
convenience method
- Removed Rails HTML Sanitizer dependency since it wasn't being used
- Add
stripe?
,braintree?
, andpaypal?
to Pay::Charge - Add webhook mounting and path options
- Makes
stripe?
,braintree?
, andpaypal?
helper methods always available on Billable.
- Update migration to reference Billable instead of Users
- Check ENV first when looking up keys to allow for overrides