class MandarinApi::Responder

Processes callbacks from mandarinpay

Attributes

data[R]

Public Class Methods

new(data) click to toggle source
# File lib/mandarin_api/responder.rb, line 6
def initialize(data)
  @data = data
  @secret = MandarinApi.config.secret
  if sign_is_valid
    @process_status = @data[:status]
  else
    @process_status = 'failed'
    @data = { sign: 'Wrong signature!' }
  end
end

Public Instance Methods

failure() click to toggle source
# File lib/mandarin_api/responder.rb, line 21
def failure
  @process_status == 'failed'
end
success() click to toggle source
# File lib/mandarin_api/responder.rb, line 17
def success
  @process_status == 'success'
end

Private Instance Methods

sign_is_valid() click to toggle source
# File lib/mandarin_api/responder.rb, line 27
def sign_is_valid
  return false if !(@data.nil? || @data.empty?) && @data.class != Hash
  sign = @data.delete(:sign)
  Digest::SHA256.hexdigest(temp_string) == sign
end
temp_string() click to toggle source
# File lib/mandarin_api/responder.rb, line 33
def temp_string
  temp_string = ''
  @data.sort.to_h.keys.each do |key|
    temp_string += @data[key].to_s + '-'
    temp_string
  end
  temp_string + @secret
end