class Vnpay::Verify

Constants

REJECTED_PARAMS

Attributes

normalized_params[R]
params[R]

Public Class Methods

new(params) click to toggle source
# File lib/vnpay/verify.rb, line 8
def initialize(params)
  @params = params.permit!.to_h
end

Public Instance Methods

verify() click to toggle source
# File lib/vnpay/verify.rb, line 12
def verify
  normalize_params

  return false unless success_code?
  return false unless valid_hash?

  true
end

Private Instance Methods

calculated_secure_hash() click to toggle source
# File lib/vnpay/verify.rb, line 31
def calculated_secure_hash
  REJECTED_PARAMS.each { |key| params.delete(key) }
  data = params.sort.map { |k, v| "#{k}=#{v}" }.join('&')
  Digest::MD5.hexdigest(Vnpay::Config.configuration.secret_key + data)
end
normalize_params() click to toggle source
# File lib/vnpay/verify.rb, line 37
def normalize_params
  @normalized_params ||= {}
end
success_code?() click to toggle source
# File lib/vnpay/verify.rb, line 23
def success_code?
  params['vnp_ResponseCode'] == '00'
end
valid_hash?() click to toggle source
# File lib/vnpay/verify.rb, line 27
def valid_hash?
  params['vnp_SecureHash'] == calculated_secure_hash
end