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
- .configured? ⇒ Boolean
- .id ⇒ Object
- .id=(new_id) ⇒ Object
-
.pay_url(params = {}) ⇒ Object
Creates URL for redirection to pay page.
- .sanity_check! ⇒ Object
- .security_code ⇒ Object
-
.security_code=(new_security_code) ⇒ Object
Security code.
-
.webhook_valid?(transaction, ip) ⇒ Boolean
Checks MD5 checksum and IP of request.
Class Method Details
.configured? ⇒ Boolean
40 41 42 |
# File 'lib/transferuj.rb', line 40 def self.configured? self.id.present? && self.security_code.present? end |
.id ⇒ Object
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_code ⇒ Object
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
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 |