module OffsitePayments::Integrations::WirecardCheckoutPage::Common

Public Instance Methods

message() click to toggle source
# File lib/offsite_payments/integrations/wirecard_checkout_page.rb, line 56
def message
  @message
end
verify_response(params, secret) click to toggle source
# File lib/offsite_payments/integrations/wirecard_checkout_page.rb, line 60
def verify_response(params, secret)
  logstr = ''
  params.each { |key, value|
    logstr += "#{key} #{value}\n"
  }

  @paymentstate = 'FAILURE'

  unless params.has_key?('paymentState')
    @message = "paymentState is missing"
    return false
  end

  if params['paymentState'] == 'SUCCESS' || params['paymentState'] == 'PENDING'
    unless params.has_key?('responseFingerprint')
      @message = "responseFingerprint is missing"
      return false
    end

    unless params.has_key?('responseFingerprintOrder')
      @message = "responseFingerprintOrder is missing"
      return false
    end

  end

  if params['paymentState'] == 'SUCCESS' || params['paymentState'] == 'PENDING'
    fields = params['responseFingerprintOrder'].split(",")
    values = ''
    fields.each { |f|
      values += f == 'secret' ? secret : params[f]
    }


    if Digest::MD5.hexdigest(values) != params['responseFingerprint']
      @message = "responseFingerprint verification failed"
      return false
    end
  end

  @paymentstate = params['paymentState']
  true
end