Module: SpreeRazorpayCheckout::Spree::RefundDecorator

Defined in:
app/models/spree_razorpay_checkout/spree/refund_decorator.rb

Instance Method Summary collapse

Instance Method Details

#process!(credit_cents) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/models/spree_razorpay_checkout/spree/refund_decorator.rb', line 4

def process!(credit_cents)
  response = if payment.payment_method.payment_profiles_supported?
               payment.payment_method.credit(
                 credit_cents,
                 payment.source,
                 payment.transaction_id,
                 originator: self
               )
             else
               razorpay_payment_id = payment.source&.razorpay_payment_id || payment.transaction_id
               payment.payment_method.credit(
                 credit_cents,
                 razorpay_payment_id,
                 originator: self
               )
             end

  unless response.success?
    Rails.logger.error(Spree.t(:gateway_error) + "  #{response.to_yaml}")
    text = response.params['message'] || response.params['response_reason_text'] || response.message
    raise Core::GatewayError, text
  end

  response
rescue ActiveMerchant::ConnectionError => e
  Rails.logger.error(Spree.t(:gateway_error) + "  #{e.inspect}")
  raise Core::GatewayError, Spree.t(:unable_to_connect_to_gateway)
end