Class: TinkoffClient::Payment::Request

Inherits:
Object
  • Object
show all
Includes:
SendRequest
Defined in:
lib/tinkoff_client/payment/request.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from SendRequest

#request

Constructor Details

#initialize(url) ⇒ Request

Returns a new instance of Request.



12
13
14
# File 'lib/tinkoff_client/payment/request.rb', line 12

def initialize(url)
  @url = "https://securepay.tinkoff.ru/v2/".freeze
end

Instance Attribute Details

#urlObject (readonly)

Returns the value of attribute url.



10
11
12
# File 'lib/tinkoff_client/payment/request.rb', line 10

def url
  @url
end

Class Method Details

.request(*args, &block) ⇒ Object



16
17
18
19
# File 'lib/tinkoff_client/payment/request.rb', line 16

def self.request(*args, &block)
  params = args[0]
  new(*args, &block).request(path: params[:path], keys: params[:keys])
end

Instance Method Details

#generate_token(keys) ⇒ Object



32
33
34
35
# File 'lib/tinkoff_client/payment/request.rb', line 32

def generate_token(keys)
  params = keys.except(:Receipt, :Shops, :DATA).sort.transpose[1].join
  digest = Digest::SHA2.new(256).hexdigest params
end

#init_params(keys) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/tinkoff_client/payment/request.rb', line 21

def init_params(keys)
  payload = {
    TerminalKey: TinkoffClient.configuration.payment_terminal_key,
    Password: TinkoffClient.configuration.payment_terminal_secret,
    **keys,
  }

  payload[:Token] = generate_token(payload)
  payload.except(:Password)
end