discourse-subscriptions/app/controllers/patrons_controller.rb

42 lines
1015 B
Ruby
Raw Normal View History

2019-09-11 05:11:02 -04:00
# frozen_string_literal: true
module DiscoursePatrons
class PatronsController < ApplicationController
2019-09-11 05:55:35 -04:00
skip_before_action :verify_authenticity_token, only: [:create]
2019-09-11 05:11:02 -04:00
def index
result = {}
render json: result
end
def create
2019-09-11 05:55:35 -04:00
::Stripe.api_key = SiteSetting.discourse_patrons_secret_key
begin
response = ::Stripe::PaymentIntent.create(
2019-09-11 21:49:52 -04:00
amount: param_currency_to_number,
2019-09-11 05:55:35 -04:00
currency: SiteSetting.discourse_patrons_currency,
payment_method_types: ['card'],
payment_method: params[:paymentMethodId],
description: SiteSetting.discourse_patrons_payment_description,
2019-09-11 05:55:35 -04:00
confirm: true,
)
rescue ::Stripe::InvalidRequestError => e
response = { error: e }
rescue ::Stripe::CardError => e
response = { error: 'Card Declined' }
end
render json: response
2019-09-11 05:11:02 -04:00
end
2019-09-11 21:49:52 -04:00
private
def param_currency_to_number
params[:amount].to_s.sub('.', '').to_i
end
2019-09-11 03:13:12 -04:00
end
end