Class: Paymaster::UrlGenerator

Inherits:
BaseRequest show all
Defined in:
lib/paymaster/url_generator.rb

Instance Attribute Summary collapse

Attributes inherited from BaseRequest

#client

Instance Method Summary collapse

Methods inherited from BaseRequest

#initialize, #perform, #sign

Constructor Details

This class inherits a constructor from Paymaster::BaseRequest

Instance Attribute Details

#amountObject

Returns the value of attribute amount.



3
4
5
# File 'lib/paymaster/url_generator.rb', line 3

def amount
  @amount
end

#descriptionObject

Returns the value of attribute description.



5
6
7
# File 'lib/paymaster/url_generator.rb', line 5

def description
  @description
end

#emailObject

Returns the value of attribute email.



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

def email
  @email
end

#expiresObject

Returns the value of attribute expires.



6
7
8
# File 'lib/paymaster/url_generator.rb', line 6

def expires
  @expires
end

#fail_urlObject

Returns the value of attribute fail_url.



11
12
13
# File 'lib/paymaster/url_generator.rb', line 11

def fail_url
  @fail_url
end

#fail_url_methodObject

Returns the value of attribute fail_url_method.



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

def fail_url_method
  @fail_url_method
end

#numberObject

Returns the value of attribute number.



4
5
6
# File 'lib/paymaster/url_generator.rb', line 4

def number
  @number
end

#payment_systemObject

Returns the value of attribute payment_system.



13
14
15
# File 'lib/paymaster/url_generator.rb', line 13

def payment_system
  @payment_system
end

#phone_numberObject

Returns the value of attribute phone_number.



7
8
9
# File 'lib/paymaster/url_generator.rb', line 7

def phone_number
  @phone_number
end

#sim_modeObject

Returns the value of attribute sim_mode.



14
15
16
# File 'lib/paymaster/url_generator.rb', line 14

def sim_mode
  @sim_mode
end

#success_urlObject

Returns the value of attribute success_url.



9
10
11
# File 'lib/paymaster/url_generator.rb', line 9

def success_url
  @success_url
end

#success_url_methodObject

Returns the value of attribute success_url_method.



10
11
12
# File 'lib/paymaster/url_generator.rb', line 10

def success_url_method
  @success_url_method
end

Instance Method Details

#datetime(value) ⇒ Object



48
49
50
51
# File 'lib/paymaster/url_generator.rb', line 48

def datetime(value)
  return unless value
  value.strftime("%Y-%m-%d %H:%M:%S")
end

#endpointObject



16
17
18
# File 'lib/paymaster/url_generator.rb', line 16

def endpoint
  "https://lmi.paymaster.ua/index/get"
end

#generateObject



39
40
41
# File 'lib/paymaster/url_generator.rb', line 39

def generate
  "#{endpoint}?#{params_as_string}"
end

#methods(method) ⇒ Object



43
44
45
46
# File 'lib/paymaster/url_generator.rb', line 43

def methods(method)
  return unless method
  method.to_s == "post" ? 1 : 0
end

#paramsObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/paymaster/url_generator.rb', line 20

def params
  {
    LMI_MERCHANT_ID: client.merchant_id,
    LMI_PAYMENT_AMOUNT: amount,
    LMI_PAYMENT_NO: number,
    LMI_PAYMENT_DESC: description,
    LMI_EXPIRES: datetime(expires),
    LMI_PAYER_PHONE_NUMBER: phone_number,
    LMI_PAYER_EMAIL: email,
    LMI_SUCCESS_URL: success_url,
    LMI_SUCCESS_METHOD: methods(success_url_method),
    LMI_FAIL_URL: fail_url,
    LMI_FAIL_METHOD: methods(fail_url_method),
    LMI_PAYMENT_SYSTEM: payment_system,
    LMI_SIM_MODE: sim_mode,
    LMI_HASH: signature,
  }.compact
end

#params_as_stringObject



59
60
61
# File 'lib/paymaster/url_generator.rb', line 59

def params_as_string
  params.map { |k, v| "#{k}=#{v}" }.join("&")
end

#signatureObject



53
54
55
56
57
# File 'lib/paymaster/url_generator.rb', line 53

def signature
  return unless client.secret_key
  string = "#{client.merchant_id}#{number}#{amount}#{client.secret_key}"
  Digest::SHA256.hexdigest(string).upcase
end