class SuntechRails::Payment::BuySafe

Constants

DEFAULT_MODE
MODES

Attributes

Card_Type[RW]
ChkValue[RW]
Country_Type[RW]
MN[RW]
OrderInfo[RW]
Td[RW]
email[RW]
note1[RW]
note2[RW]
sdt[RW]
sna[RW]
web[RW]

Public Class Methods

check(params) click to toggle source
# File lib/suntech_rails/payment/buysafe.rb, line 52
def self.check(params)
 
  if SuntechRails::Core::Config.config.buy_safe_id == params["web"] && check_chkvalue?(params)
    return params
  else
    return nil
  end
end
check_chkvalue?(params) click to toggle source
# File lib/suntech_rails/payment/buysafe.rb, line 20
def self.check_chkvalue?(params)
  Digest::SHA1.hexdigest("#{params["web"]}#{SuntechRails::Core::Config.config.transaction_code}#{params["buysafeno"]}#{params["MN"]}#{params["errcode"]}").upcase == params["ChkValue"]
end
new(options = {}) click to toggle source
# File lib/suntech_rails/payment/buysafe.rb, line 10
def initialize(options = {})
  @web = SuntechRails::Core::Config.config.buy_safe_id
  merge!(options)
  @ChkValue = generate_chkvalue
end
success?(params) click to toggle source
# File lib/suntech_rails/payment/buysafe.rb, line 48
def self.success?(params)
  params["errcode"] == "00"
end

Public Instance Methods

generate_chkvalue() click to toggle source
# File lib/suntech_rails/payment/buysafe.rb, line 16
def generate_chkvalue
  Digest::SHA1.hexdigest("#{@web}#{SuntechRails::Core::Config.config.transaction_code}#{@MN}").upcase
end
merge!(options, &block) click to toggle source
# File lib/suntech_rails/payment/buysafe.rb, line 24
def merge!(options, &block)
  if options.is_a? Hash
    options.each do |key, value|
      set(key, value)
    end
  else
    raise ArgumentError, "invalid data(#{options.inspect}) for #{self.class.name} class"
  end
  self.instance_eval(&block) if block
  self
end
set(key, value) click to toggle source

Set value for given member

Arguments

  • key – member name

  • value – value for member

# File lib/suntech_rails/payment/buysafe.rb, line 40
def set(key, value)
  send("#{key}=", value)
rescue NoMethodError => error
  SuntechRails.logger.warn error.message
rescue TypeError, ArgumentError => error
  raise TypeError, "#{error.message}(#{value.inspect}) for #{self.class.name}.#{key} member"
end