This upgrades from the legacy version of Stripe's checkout system to the new version: > The legacy version of Checkout presented customers with a modal dialog > that collected card information, and returned a token or a source to > your website. In contrast, the new version of Checkout is a smart > payment page hosted by Stripe that creates payments or subscriptions. It > supports Apple Pay, Dynamic 3D Secure, and many other features. Basic overview of the new system: * We send the user to a checkout page on Stripe. * Stripe collects payment and sends us a webhook notification when the order is complete. * We receive the webhook notification and upgrade the user. Docs: * https://stripe.com/docs/payments/checkout * https://stripe.com/docs/payments/checkout/migration#client-products * https://stripe.com/docs/payments/handling-payment-events * https://stripe.com/docs/payments/checkout/fulfill-orders
14 lines
302 B
Ruby
14 lines
302 B
Ruby
class WebhooksController < ApplicationController
|
|
skip_forgery_protection only: :receive
|
|
rescue_with Stripe::SignatureVerificationError, status: 400
|
|
|
|
def receive
|
|
if params[:source] == "stripe"
|
|
UserUpgrade.receive_webhook(request)
|
|
head 200
|
|
else
|
|
head 400
|
|
end
|
|
end
|
|
end
|