class Hps::HpsCheckResponse

Attributes

authorization_code[RW]
customer_id[RW]
details[RW]

Public Class Methods

from_hash(rsp, txn_type) click to toggle source
# File lib/hps/entities/hps_check_response.rb, line 7
def self.from_hash(rsp, txn_type)
  header = rsp["Header"]
  data = rsp["Transaction"][txn_type.to_s]

  result = HpsCheckResponse.new(HpsService.new.hydrate_transaction_header(header))
  result.transaction_id = header["GatewayTxnId"]
  result.authorization_code = data["AuthCode"]
  result.reference_number = data["RefNbr"]
  result.response_code = data["RspCode"]
  result.response_text = data["RspMessage"]

  if data["CheckRspInfo"]
    result.details = []
    check_info = data["CheckRspInfo"]
    if check_info.is_a? Hash
      result.details = HpsCheckResponse.hydrate_rsp_details(check_info)
    else
      check_info.map { |details|
        result.details.push HpsCheckResponse.hydrate_rsp_details(details)
      }
    end
  end

  result
end

Private Class Methods

hydrate_rsp_details(check_info) click to toggle source
# File lib/hps/entities/hps_check_response.rb, line 35
def self.hydrate_rsp_details(check_info)
  details = HpsCheckResponseDetails.new
  details.message_type = check_info["Type"]
  details.code = check_info["Code"]
  details.message = check_info["Message"]
  details.field_number = check_info["FieldNumber"]
  details.field_name = check_info["FieldName"]
  details
end