conekta_handler.rb
1001 Bytes
module Var
class ConektaHandler
PAYMENT_METHOD_STRING = 'Conekta_payment'.freeze
class << self
def analyze(event)
process_payment event[:data][:object] if
event[:data][:object][:status] == 'paid'
process_charge event[:data][:object]
end
def process_payment(payment_info)
object = Var.find_charge payment_info[:id]
time = Time.strptime payment_info[:paid_at].to_s, '%s'
amount = payment_info[:amount].to_f / 100.0
fee = payment_info[:fee].to_f / 100.0
object.update(var_fee: fee, var_paid_amount: amount,
var_payment_method: self::PAYMENT_METHOD_STRING,
var_payment_at: time,
var_status: payment_info[:status])
end
def process_charge(charge_info)
# TODO: raise error if object is nil
object = Var.find_charge charge_info[:id]
object.update(var_status: charge_info[:status])
end
end
end
end