# frozen_string_literal: true # validates the given card token through the Stripe API class StripeCardTokenValidator def validate(record) return unless options[:token] res = Stripe::Token.retrieve(options[:token], api_key: Setting.get('stripe_secret_key')) if res[:id] != options[:token] record.errors.add(:card_token, "A problem occurred while retrieving the card with the specified token: #{res.id}") end rescue Stripe::InvalidRequestError => e record.errors.add(:card_token, e) end end