class Pay::Paddle::Charge
Attributes
pay_charge[R]
Public Class Methods
new(pay_charge)
click to toggle source
# File lib/pay/paddle/charge.rb, line 8 def initialize(pay_charge) @pay_charge = pay_charge end
Public Instance Methods
charge()
click to toggle source
# File lib/pay/paddle/charge.rb, line 12 def charge return unless customer.subscription payments = PaddlePay::Subscription::Payment.list({subscription_id: customer.subscription.processor_id}) charges = payments.select { |p| p[:id].to_s == processor_id } charges.try(:first) rescue ::PaddlePay::PaddlePayError => e raise Pay::Paddle::Error, e end
refund!(amount_to_refund)
click to toggle source
# File lib/pay/paddle/charge.rb, line 21 def refund!(amount_to_refund) return unless customer.subscription payments = PaddlePay::Subscription::Payment.list({subscription_id: customer.subscription.processor_id, is_paid: 1}) if payments.count > 0 PaddlePay::Subscription::Payment.refund(payments.last[:id], {amount: amount_to_refund}) pay_charge.update(amount_refunded: amount_to_refund) else raise Error, "Payment not found" end rescue ::PaddlePay::PaddlePayError => e raise Pay::Paddle::Error, e end