Class: Killbill::Litle::LitleResponse

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/litle/models/litle_response.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_response(api_call, kb_payment_id, response) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/litle/models/litle_response.rb', line 48

def self.from_response(api_call, kb_payment_id, response)
  LitleResponse.new({
                        :api_call => api_call,
                        :kb_payment_id => kb_payment_id,
                        :message => response.message,
                        :authorization => response.authorization,
                        :fraud_review => response.fraud_review?,
                        :test => response.test?,
                        :params_litleonelineresponse_message => extract(response, "litleOnlineResponse", "message"),
                        :params_litleonelineresponse_response => extract(response, "litleOnlineResponse", "response"),
                        :params_litleonelineresponse_version => extract(response, "litleOnlineResponse", "version"),
                        :params_litleonelineresponse_xmlns => extract(response, "litleOnlineResponse", "xmlns"),
                        :params_litleonelineresponse_saleresponse_customer_id => extract(response, "litleOnlineResponse", "saleResponse", "customerId"),
                        :params_litleonelineresponse_saleresponse_id => extract(response, "litleOnlineResponse", "saleResponse", "id"),
                        :params_litleonelineresponse_saleresponse_report_group => extract(response, "litleOnlineResponse", "saleResponse", "reportGroup"),
                        :params_litleonelineresponse_saleresponse_litle_txn_id => extract(response, "litleOnlineResponse", "saleResponse", "litleTxnId"),
                        :params_litleonelineresponse_saleresponse_order_id => extract(response, "litleOnlineResponse", "saleResponse", "orderId"),
                        :params_litleonelineresponse_saleresponse_response => extract(response, "litleOnlineResponse", "saleResponse", "response"),
                        :params_litleonelineresponse_saleresponse_response_time => extract(response, "litleOnlineResponse", "saleResponse", "responseTime"),
                        :params_litleonelineresponse_saleresponse_message => extract(response, "litleOnlineResponse", "saleResponse", "message"),
                        :params_litleonelineresponse_saleresponse_auth_code => extract(response, "litleOnlineResponse", "saleResponse", "authCode"),
                        :avs_result_code => response.avs_result.kind_of?(ActiveMerchant::Billing::AVSResult) ? response.avs_result.code : response.avs_result['code'],
                        :avs_result_message => response.avs_result.kind_of?(ActiveMerchant::Billing::AVSResult) ? response.avs_result.message : response.avs_result['message'],
                        :avs_result_street_match => response.avs_result.kind_of?(ActiveMerchant::Billing::AVSResult) ? response.avs_result.street_match : response.avs_result['street_match'],
                        :avs_result_postal_match => response.avs_result.kind_of?(ActiveMerchant::Billing::AVSResult) ? response.avs_result.postal_match : response.avs_result['postal_match'],
                        :cvv_result_code => response.cvv_result.kind_of?(ActiveMerchant::Billing::CVVResult) ? response.cvv_result.code : response.cvv_result['code'],
                        :cvv_result_message => response.cvv_result.kind_of?(ActiveMerchant::Billing::CVVResult) ? response.cvv_result.message : response.cvv_result['message'],
                        :success => response.success?
                    })
end

Instance Method Details

#litle_tokenObject



32
33
34
# File 'lib/litle/models/litle_response.rb', line 32

def litle_token
  authorization
end

#litle_txn_idObject



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/litle/models/litle_response.rb', line 36

def litle_txn_id
  potential_litle_txn_id = params_litleonelineresponse_saleresponse_litle_txn_id || authorization
  if potential_litle_txn_id.blank?
    nil
  else
    # Litle seems to return the precision sometimes along with the txnId (e.g. 053499651324799+19)
    # And sometimes it adds a ;credit
    # TODO Figure out WTF is going on here
    potential_litle_txn_id.to_s.split(';')[0].split('+')[0]
  end
end

#to_payment_responseObject



79
80
81
# File 'lib/litle/models/litle_response.rb', line 79

def to_payment_response
  to_killbill_response :payment
end

#to_refund_responseObject



83
84
85
# File 'lib/litle/models/litle_response.rb', line 83

def to_refund_response
  to_killbill_response :refund
end