Module: Transferuj

Defined in:
lib/transferuj.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

@@id =

ID of receiver

''
@@security_code =
''

Class Method Summary collapse

Class Method Details

.configured?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/transferuj.rb', line 40

def self.configured?
  self.id.present? && self.security_code.present?
end

.idObject



12
13
14
# File 'lib/transferuj.rb', line 12

def self.id
  @@id
end

.id=(new_id) ⇒ Object



8
9
10
# File 'lib/transferuj.rb', line 8

def self.id=(new_id)
  @@id = new_id
end

.pay_url(params = {}) ⇒ Object

Creates URL for redirection to pay page



26
27
28
29
30
31
# File 'lib/transferuj.rb', line 26

def self.pay_url(params = {})
  self.sanity_check!
  md5sum = Digest::MD5.hexdigest(self.id.to_s+params[:kwota].to_s+params[:crc].to_s+self.security_code.to_s)
  params.merge!({:id => self.id, :md5sum => md5sum})
  URI::HTTP.build(:host => "secure.transferuj.pl", :query => params.to_query).to_s
end

.sanity_check!Object



44
45
46
47
48
# File 'lib/transferuj.rb', line 44

def self.sanity_check!
  unless configured?
    raise Exception.new("Transferuj Gem not properly configured. See README to get help how to do it.")
  end
end

.security_codeObject



21
22
23
# File 'lib/transferuj.rb', line 21

def self.security_code
  @@security_code
end

.security_code=(new_security_code) ⇒ Object

Security code



17
18
19
# File 'lib/transferuj.rb', line 17

def self.security_code=(new_security_code)
  @@security_code = new_security_code
end

.webhook_valid?(transaction, ip) ⇒ Boolean

Checks MD5 checksum and IP of request

Returns:

  • (Boolean)


34
35
36
37
38
# File 'lib/transferuj.rb', line 34

def self.webhook_valid?(transaction, ip)
  self.sanity_check!
  md5sum = Digest::MD5.hexdigest(self.id.to_s+transaction[:tr_id].to_s+transaction[:tr_amount].to_s+transaction[:tr_crc].to_s+self.security_code.to_s)
   ip == '195.149.229.109' && transaction[:md5sum] == md5sum
end