Class: OrderPayment

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/order_payment.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#sage_pay_resultsObject

Returns the value of attribute sage_pay_results.



6
7
8
# File 'app/models/order_payment.rb', line 6

def sage_pay_results
  @sage_pay_results
end

Class Method Details

.load_from_sage_pay_response(system_id, crypt) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/models/order_payment.rb', line 8

def self.load_from_sage_pay_response(system_id, crypt)
  results = {}
  dec = Order.sage_decrypt(system_id, crypt.gsub(' ', '+'))
  dec.split('&').each do |vv|
    n,v = vv.split('=')
    results[n] = v
  end
  ref = results["VendorTxCode"].split('-')
  order_id = ref[1]
  payment_id = ref[3]

  op = OrderPayment.sys(system_id).where(:id=>payment_id).first
  
  return nil if op.order_id.to_s != order_id.to_s

  op.sage_pay_results = results 
  return op
end

Instance Method Details

#update_from_sage_pay_resultsObject



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/models/order_payment.rb', line 27

def update_from_sage_pay_results
  self.status = self.sage_pay_results["StatusDetail"]
  self.address_status = self.sage_pay_results["AddressResult"]
  self.postcode_status = self.sage_pay_results["PostCodeResult"]
  self.cv2_status = self.sage_pay_results["CV2Result"]
  self.threed_secure_status = self.sage_pay_results["3DSecureStatus"]
  self.card_identifier = self.sage_pay_results["Last4Digits"]
  self.card_type = self.sage_pay_results["CardType"]
  self.auth_code = self.sage_pay_results["TxAuthNo"]
  self.tx_id = self.sage_pay_results["VPSTxId"]
  self.processed_at = Time.now
  self.save

  self.order.status = self.sage_pay_results["Status"]
  self.order.save
end